Case StudyShopify · Subscriptions

How We Automated Funky Food's Meal Subscription on Shopify

Funky Food was running ZIP rules, box customisation, and delivery sync by hand. We turned that into one Shopify flow from suburb check to recurring checkout.

AimbrillAimbrill

Introduction

Funky Food Australia (funkyfood.com.au) delivers weekly rescued fruit and vegetable boxes to households. The brand was growing, but the Shopify store behind it was still running delivery rules, box customisation, and packing lists by hand.

This case study splits the work into two parts: the functional journey customers and ops now use, and the technical Shopify system that makes that journey hold together.

Want a 60-second version?AI Summary

Opens ChatGPT with this case study pre-loaded. No signup required on our site.

Ask ChatGPT for a summary
Prompt: “Summarize https://aimbrill.com/work/funky-food. Cover problem, functional solution, technical solution, and results. Do not invent metrics.
ClientIndustryWhat we builtStack
Funky Food AustraliaRescued food / weekly meal boxCustom box builder + delivery gateShopify, selling plans, custom app, checkout extensions

Image space

Homepage screenshot

Rescue Food From Waste, suburb input, Build my box.

The problem

Demand was fine. Operations were not. Four things kept breaking the week:

  • Postcode rules were manual. Customers could order from suburbs Funky Food did not deliver to. The team then cancelled, refunded, and explained the restriction after payment.
  • Box size was a guess. Shoppers did not know if they needed XSmall or Big. Weekly swaps and exclusions lived in support tickets and spreadsheets.
  • Add-ons fought the subscription. Off-the-shelf apps could not keep a weekly box and one-time rescued pantry items in one cart without breaking checkout.
  • Packing did not match the order. Warehouse lists were not tied to what the customer actually chose. Staff fixed boxes after the order was already paid.

The store needed one flow: check the suburb first, then size the box, then customise it, then add extras, then check out on a weekly plan — with the same rules applied again before the order is created.

Functional solution

Functional means what the customer and the packing team actually do. The live journey is six steps. Each step has an empty image slot so you can drop the screenshot in later.

1. Suburb / postcode gate

The customer enters a suburb before building a box. If the area is not on a courier route, they never reach checkout. Invalid orders stop here instead of becoming refunds.

Image space

Step 1 — suburb check

Enter suburb + Get started / Build my box.

2. Household size

Adults and children counters recommend a box size (XSmall, Small, Medium, or Big). The shopper does not pick a SKU by guesswork. Support stops answering “which box is right for two people?”

Image space

Step 2 — household size

How many people are you feeding? Adults / Children counters.

3. Weekly box + swaps

The customer sees next week’s produce list, changes size, swaps items, and sets exclusions. The box is no longer a mystery bag — they know what arrives.

Image space

Step 3 — box customiser

Weekly order + Customise drawer: What’s included, Swap, Exclusions.

4. Rescued add-ons

After the box is set, they can add rescued juice, pantry, fruit, and veg. Each product shows a Rescued badge and a save-vs-supermarket percentage. Add-ons sit in the same cart as the weekly box.

Image space

Step 4 — shop add-ons

Shop Now grid: category pills, Rescued / Save % badges.

5. Cart: delivery, frequency, savings

The cart re-checks postcode, shows weekly frequency, free-delivery progress, and supermarket savings. Discount codes still work. Ops no longer reconcile ZIP in a spreadsheet after payment.

Image space

Step 5 — cart

Slide-out cart: suburb, weekly frequency, box line, savings, checkout.

6. Recurring checkout

Checkout shows Shop Pay, PayPal, and Google Pay, a review block, Channel 7 proof, the exact produce list, and “$X every week”. The customer can see this is a subscription before they pay.

Image space

Step 6 — checkout

Express pay, reviews, box contents, recurring subtotal.

Technical solution

Technical means what Shopify is doing underneath those six steps. We did not stack five apps that each owned ZIP, subscriptions, or bundles. One custom flow owns eligibility, box configuration, selling plans, and the last checkout check.

Image space

Technical diagram

Optional: flow diagram or selling-plan setup. No private admin URLs.

One custom Shopify app

ZIP validation, box configuration, and recurring orders run in one app instead of competing storefront scripts. The same rules apply at the start of the journey and again before the order is created.

Line-item properties

Size, swaps, and exclusions store on the line item. Packing lists can read what the customer chose without a side spreadsheet.

Native selling plans

The weekly box uses Shopify selling plans so checkout can show a recurring subtotal, and the customer can skip or pause later in the customer portal.

Pre-checkout validation

Checkout extensions re-check postcode and box contents before the order exists. A bad ZIP or an empty box cannot sneak through at the last step.

Issue → solution

Each operational issue mapped to one rule in the flow:

IssueWhat we solved
Orders in non-delivery suburbsSuburb / ZIP check at step 1, then again in cart and checkout
Guessing box sizeHousehold step suggests XSmall → Big from adults and children
Nobody knew what was in the boxWeekly “what’s included” list with swap and exclude
Add-ons broke the subscription cartOne cart: weekly box + rescued add-ons
Staff fixing orders after paymentRules run in the app before the order exists
Checkout felt risky for a weekly planReviews, express pay, and recurring total shown on checkout

Results

The store now runs suburb → box → add-ons → checkout as one flow. Manual ZIP and swap work dropped off the packing list.

MetricAfter the build
Manual ops0% — no spreadsheet ZIP / swap fixes
Order errorsNear 0 — out-of-zone and incomplete boxes blocked early
FlowEnd-to-end — suburb check through to weekly delivery

FAQ

Conclusion

Funky Food did not need another disconnected Shopify app. They needed one flow that matched how a rescued-food box actually sells: check the area, size the household, show next week’s produce, allow swaps, add extras, then charge on a weekly plan.

Functional work is the six-step journey. Technical work is the custom app, line items, selling plans, and checkout checks that keep that journey honest.

If you have a similar subscription or box-builder problem, book a technical call or browse other Aimbrill case studies.