FarmShop
Grutto sold fixed meat packages; support was handling swap requests by hand. I built the configurator that let customers pack their own box.

Summary
Grutto is a farm-to-table platform selling meat directly from farmers. It sold fixed packages, and customers kept asking to swap items, which the support team handled by hand. I designed and built the configurator that let them pack their own box.
The Challenge
The configurator had to live inside a production storefront selling across several countries. A new feature could not fork the cart, the checkout or the product model, so the custom box had to behave like any other order the moment it was added.
The goal: let customers build their own box, and let that box flow through the system that already existed.
The constraint
Grutto sold fixed meat packages. Customers kept asking to swap items, and the support team answered those requests by hand, one email at a time. The business wanted a configurator. The constraint was where it could live: this is a production storefront selling in several countries, so a new feature could not fork the cart, the checkout or the product model.
What users wanted: control over what went into the box, and to see it while they built it.
What the business needed: the resulting box to behave like any other order once it reached the cart.

What I decided
I built the configurator inside the existing storefront rather than as a separate flow, so a custom box entered the same cart and checkout that were already in production. A standalone builder would have been faster to write and would have meant maintaining a second path to payment.
I also tested the interface before committing to it. I ran usability sessions with 10 participants on the first prototype, which changed what I built next.
What the sessions changed:
Price and weight had to be live. Participants tracked both while filling the box and did not want to wait for the checkout page to find out. Deferring the total to a later step was the wrong call.
Adjusting quantities was too slow. Participants expected to add and remove items without leaving the view they were in.



What I built
I designed the configurator and then wrote the React that shipped it.
- A sticky summary bar holding the running total and weight, recalculated on every change to the box rather than on navigation.
- Stepper controls on each item card, so quantities change in place and the summary updates with them.
- Responsive layouts for the full configurator, which has more state on screen at once than any other page in the shop.
- Shared components that outlived this feature and were reused elsewhere in the storefront.
Shipping it without breaking the shop
A configurator that writes into a live cart is a risk to every order in the shop, not only its own. I released it in stages instead of all at once.
Closed beta. A small group of returning customers, where a broken box was a support conversation and not a lost month.
Watch and fix. I followed real usage and fixed the interface bugs that only appear once people use a thing for their own reasons.
Full launch. Opened to everyone once the path from box to paid order held.
After launch
I sat on the CRO team, so the open questions went to a test rather than to a meeting. I wrote the hypotheses, built the variants and read the results in Google Analytics and Google Optimize.
- Box layout and CTA placement: several versions of the product box and where the primary action sits.
- Price display: price per item against total box price.
Where it stands
FarmShop shipped and is still running at grutto.com. Customers build their own boxes across the range instead of asking support to do it for them.
The conversion and order value figures belong to Grutto and I do not have permission to publish them, so I am not going to characterise them here.