The Strawberry’s Journey: From Your Local Farm to Your Table

What to expect from this series?

This series explains how we build a new service to enable our e-commerce platform to support home delivery. It will walk through all steps we take from scoping business requirements, architecting, and implementation.

In this first post, we will start with scoping business requirements. We will elaborate a standard setup of delivery business operation and unique challenges we face in fresh product delivery. Then we will highlight trade-off decisions between project scope and delivery timeline. Like most technical design, there is no right and wrong. Everything is about trade-off so we would explain in details on why we make such decisions. This will be the foundation for the next blog post where we design API and architecture to meet these requirements.

How COVID affected our business

It all started with the first lockdown in France…

I Love My Local Farmer’s mission is to give a direct access to local fresh vegetables and fruits to everyone. Our customers make orders to local farms through our e-commerce platform and went to pick it up at a designated time.

A wireframe highlighting that the new delivery option is available for some farms
A wireframe shows an additional option for home delivery in the checkout page
A wireframe shows an additional option for home delivery in the checkout page

Challenge of fresh product delivery

Logistics is a competitive business. Companies compete through price, using economies of scale and all kinds of optimization techniques. After all, who will pay additional 10 EUR for delivery?

Therefore, our first thought was to completely outsource delivery process to a 3PL (3rd Party Logistics) company. This option minimizes cost but delivery time is around 2–5 days, depending on locations. It would have been the best option if we deliver non-food products. However, our value proposition is having fresh products directly from local farms. Ideally, the products should arrive within the same day. Some products must be kept in fridge during transportation. So this option was not feasible.

The other option was to rent spaces in existing warehouses. We could pick products from local farms in an area and temporarily stock them in a warehouse nearby. Each day we could assemble orders at the warehouses and deliver to customers from there. This streamlines delivery process and minimize cost. Again, the drawback of this model is that it would take longer than 24 hours to arrive at customers’ houses. We also had to find warehouses with right locations that could store fresh products.

This brings up another concern that we are not sure how customers will respond to the home delivery option. If there isn’t enough demand, the scale we operate will not be sufficient to justify even the lease cost.

As a result, we decided to deliver directly from farms to customers. We would manage major parts of delivery process ourselves as a trial. Though we would hire drivers through contractors in logistics company to minimize capital investment. Based on what we learn, we would reiterate and tune our operating model once we see that this option could work.

Simplifying business requirements

We had to trade off complexity for fast launch. These are the requirements established by the business team:

  1. Customers will pick a time slot from established delivery time slots, and must be home to receive their products. We want to have orders from a single farm delivered in least numbers of drive. Thus, customers will have to choose a time slot from established choices. The slot will be either in the morning (8:00–12:00) or afternoon (13:00–17:00). Some farms with low volume might have only one slot per week. This is not very convenient for customers as they might have to order up to one week in advance, but it allows us to optimize to acceptable delivery cost.
  2. For home deliveries, we will expect a minimum order value. This is in order to compensate for delivery expenses.
  3. Farmers have to opt-in to this delivery option. We do not onboard every farm with this option by default. For home delivery orders, farmers need to pack items in standardized boxes/crates provided by us (more details on this later). They also get charged at higher fee than normal pickup order.
  4. For the MVP, the process will be controlled by human schedulers. We will eventually switch to an automated scheduler to optimize the delivery automatically based on the knowledge acquired during the MVP period.

The strawberry’s journey

Now that we have understood the challenges and our business requirements. Let’s embark on a journey of our favorite fruits, strawberry. We will start from placing an order to arriving at a customer’s home. This journey will influence how we design our service API and architecture later.

When a user clicks on “Find nearby farm” button to locate local farms. We use user’s address to get the list of farms in close proximity. Each farm that opts in to our delivery option will be linked to a list of post codes that is within delivery range. If the user’s post code is in the list, they will see a bright tag of “home delivery available”.

A diagram visualize the steps for customers to place a home delivery order
A diagram visualize the steps for customers to place a home delivery order
A diagram visualize the steps for farmers from receiving an order, packing item, to handling products over to drivers
A diagram visualize the steps for farmers from receiving an order, packing item, to handling products over to drivers

What’s next?

Now that we have covered the business requirements, we are going to dive deeper into technical details in the next blog post. We will create API specification and architect our backend to connect with existing e-commerce system to make our strawberries journey as smooth as possible.

Specialist Solutions Architect, Builder at AWS. Opinions are my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store