mmitech
Hero image for UK independent craft food and drink producers

Software for UK independent craft food and drink producers

Pub down the road WhatsApped Friday lunchtime - four firkins of the session IPA. I was at the gates of Norfolk picking up glass-cleaner. By Monday I’d forgotten which week. By Tuesday I’d under-delivered. They didn’t ring back about the next month’s order. The cellar-door tour Saturday - twelve booked, eighteen turned up. We poured the same wine, lost forty-five quid of margin. The cheese batch we sent out in March that failed an STEC retrospectively - two days to assemble the recall pack from a notebook.

You’re the head brewer at a five-person micro-brewery in west Suffolk, or the cheese-maker working out of a converted barn near Long Melford, or the vineyard partner running tasting Saturdays at a North Suffolk site, or the second-generation farm-shop owner running a smokery and a bakery counter and a wholesale round into the local hospitality scene. The East-Anglian cluster is real - Adnams down the road, Pump Street up the coast, Wyken inland, Greene King in Bury - and the customers know you by name because you’re at the farmers’ markets, you’re at the farm-shop network meet-ups, you’re on the Suffolk Producers WhatsApp group. The stack is the universal mix: Shopify or WooCommerce for the D2C webshop, Square or iZettle on the till, Beer30 or Ekos or Vintner or Vinsight on the production side if you’ve bought one of those, Xero with A2X for the books. The wholesale side is WhatsApp and a price-list-PDF emailed to thirty pubs and farm shops who all ring you separately when they want to order. The SALSA and / or BRC Global Standard audit is the discipline you maintain in order to keep the wholesale buyers; Natasha’s Law allergen labelling is the daily reality from the moment a recipe changes; the FSA-registration paperwork sits next to the brewing licence on the office wall.

The Friday-lunchtime pub WhatsApp lands when you’re in the middle of bottling and gets remembered on Tuesday, by which point you’ve under-delivered. The cellar-door tour fills up on the back of the Saturday TripAdvisor traffic and the eighteen-turned-up-when-twelve-booked moment cost you forty-five pounds of margin and an upsell to each. The Shopify order that came in at 9pm Friday is in your phone, not picked yet, not packed, and the customer who paid for next-day delivery is wondering on Monday morning. The Lane-Farm statement is 14 days, the Maple-Farm one is 30 days, the Wherstead-Park one is pay-when-we-sell, and the books on Sunday afternoon are a different colour-coded spreadsheet per account.

We make custom software for UK independent craft food and drink producers - scoped per producer, sized to the bit between the product you actually make and the wholesale order that captures itself the moment the pub WhatsApps, the cellar-door tour that’s paid before the eighteenth person turns up, the Shopify D2C order that’s picked and Xero-reconciled by Saturday morning, the multi-account farm-shop terms that statement themselves on the right cycle, the cheese batch that traces forward to every retail and wholesale customer it touched in four hours not two days. Not a Shopify replacement - it’s fine on the D2C side. Not a Beer30 / Ekos / Vintner / Vinsight switch - production stays where it lives. The bit between the production line and the back office - that’s the bit we build. Mornings on production, afternoons on conversations, not afternoons on three colour-coded spreadsheets and Sunday nights on reconciliation.


What you spend your week on that you shouldn’t have to

These aren’t problems Shopify’s next release is going to solve. They’re the layer between the production that makes the product and the orders that capture themselves, the tour that’s paid before the door opens, the multi-channel reconciliation that doesn’t eat a Sunday, the batch that traces itself, the SALSA / BRC audit pack that assembles itself, the HMRC + EPR cadence that has a calendar. That’s what we’d build.

A UK craft food and drink producer's week - the Friday-lunchtime pub WhatsApp, the cellar-door tour, the Shopify Friday-evening order, the three-statement farm-shop reconciliation, the cheese-batch traceability notebook

Example problems we could solve

Five things we hear most often from UK craft food and drink producers - with what the solved version looks like in your week. All five apply across breweries / distilleries / cideries / wineries / farm shops / cheese-makers / bakeries / chocolatiers / coffee roasters / soft-drinks producers / beekeepers - with the texture (production system, sub-vertical regulator, channel mix between ecommerce + farmers’-market + wholesale) scoping in discovery. Most micro-producers start with problems 1 + 3 + 4; producers running cellar-door tours typically need problem 2; perishable producers always need problem 5.

1. The pub WhatsApp that becomes a Xero invoice by teatime - and the trade order that never gets forgotten

The Friday-lunchtime moment: pub WhatsApped Friday lunchtime - four firkins. You were driving back from Norfolk. By Monday you’d forgotten which week, by Tuesday you’d under-delivered. They didn’t WhatsApp again for the next month’s order. The producer-distinct weight is that the wholesale trade channel is a different rhythm from D2C (driven by the trade customer’s purchasing cycle, not your marketing) and the friction of capture is the single biggest source of dropped orders. The build is shaped around making the capture happen in the channel the trade customer prefers - without the producer needing a moment of attention to make it happen.

Solved looks like: the wholesale order capture as a structured event from the channel the trade customer already uses. Pub / farm-shop / restaurant WhatsApps you (or rings, or emails, or types a message in their trade-portal account) - the message lands in a wholesale-order queue with the customer identified, the SKU matched (the system understands “4 firkins of the session IPA” against your live SKU list and current availability), the delivery date estimated against your production schedule + the customer’s usual day, and the structured order draft ready for you to one-tap confirm and send to invoice from your phone. The trade customer gets an immediate confirmation back - “Got it Sarah - 4 firkins of the Pale, delivery on Wednesday 14th, invoice £148 + VAT, your usual terms (30 days). Reply OK to confirm or REPLY with any changes” - in your voice. Once she’s confirmed, the order writes into Xero as a draft invoice + into your production schedule + into the delivery rota. For trade customers who’d rather use a portal than WhatsApp, the per-customer B2B portal (logged in with their account credentials, showing their price list, their usual orders, their account balance) is the same workflow on a different surface. The Sunday-night bookkeeping becomes a Friday-evening five-minute review of the trade orders that landed during the week.

2. The cellar-door tour that’s paid before the eighteenth person turns up - and the cheese-and-charcuterie upsell that lands at booking

The eighteen-turned-up moment: tour Saturday - twelve booked, eighteen turned up. Six friends-of-friends just dropped in. You poured the same wine, lost forty-five quid of margin, and missed the chance to upsell the cheese-and-charcuterie board to anyone. The producer-distinct weight is that the cellar-door / cellar-tour / tasting-room experience is one of the highest-margin moments in the entire producer business (you’ve already paid for the inventory, the staff, the building), the under-monetisation is universal across the sector, and the build is shaped around making the booking-and-upsell a structured paid product - with the eighteenth person at the door either paying through the same surface or politely told it’s full.

Solved looks like: the cellar-door / brewery-tour / vineyard-flight / distillery-tasting booking flow as a structured paid product on your own website (or as a Shopify Booking integration where Shopify is your D2C system) with the upsells visible at the moment of booking - not three clicks deep. Customer lands on the “book a tour” page, picks a slot, selects the group size, sees the per-person price, and is offered the structured upsells at the same screen - the cheese-and-charcuterie board (£28 / 4 people), the vintage-flight upgrade (+£15 pp), the take-home gift case (£40 add-on). She pays at booking; the slot’s confirmed; the calendar’s blocked; the cheese order is in the kitchen’s prep queue for Saturday morning. Walk-ins on the day either pay on the same surface (a QR code at the door takes them to the same booking flow with a “sorry, today’s fully booked” / “yes, two spaces left” answer) or politely don’t get to taste - your operational call. For group bookings (the corporate Saturday, the wedding-party Friday, the hen-do Wednesday), the same engine supports group-rate pricing + the corporate-invoice flow + the dietary-requirements capture. Post-visit, an automated “thanks for visiting - here’s the case of the wine you liked, 10% off if you order in the next 14 days” nudge fires (with explicit consent at booking).

3. The Shopify Friday-9pm order that’s picked, packed, and Xero-reconciled by Saturday morning - and the Master of Malt payout that splits itself

The 9pm-Friday moment: Shopify D2C order at 9pm Friday. You see it Saturday lunchtime. Customer expected next-day delivery, gets it Tuesday, leaves a three-star review. Plus the Master of Malt monthly payout - £840 across nine orders, one Xero line, Sunday afternoon reconciling commission against orders. The producer-distinct weight is that the D2C side is the channel where the marginal revenue is highest (no wholesaler middleman, no marketplace commission for direct orders) but it’s also the channel most operationally fragile (the unattended weekend, the multi-marketplace reconciliation, the customs-and-shipping reality). The build is shaped around making the operational fragility a structured pipeline - so the producer’s attention stays on the production and the customer experience, not the picking and the reconciling.

Solved looks like: the D2C orders flow as a structured pipeline from the moment a Shopify (or WooCommerce / BigCommerce / Squarespace) order lands through to the Xero reconciliation, with the marketplace orders (Master of Malt, Honest Brew, Yumbles, Cheese Geek, Etsy) aggregated alongside. New D2C order at 9pm Friday: SMS / WhatsApp lands on your phone - “new order - Sarah in Frankfurt, 2 cases of the porter, next-day requested. Reply ACK to confirm receipt, REVIEW to escalate, or PICK to fire the pack ticket to the warehouse”. Pack ticket prints (or queues to your packing tablet) with the right shipping label, the right address, the right customs documentation if international; the “shipped” state writes back to Shopify and triggers the customer-side comms. The Xero line writes itself with the correct split (gross + Stripe / Shopify Payments fee + VAT + shipping income); for marketplace orders (Master of Malt 30% commission, Honest Brew 25-35%, Yumbles 25%, Cheese Geek varies), the same engine pulls the per-order detail from each marketplace and writes the commission-expense + net-revenue split to Xero alongside the cost-of-goods. The Sunday afternoon reconciliation becomes a Friday evening tap-through of three or four clarifications.

4. The Lane-Farm 14-day, Maple-Farm 30-day, Wherstead-Park pay-when-we-sell statement that sends itself

The Sunday-spreadsheet moment: three farm-shop accounts, three terms - Lane Farm 14 days, Maple Farm 30 days, Wherstead Park pay-when-we-sell averaging 70 days. Sunday-night bookkeeping is three colour-coded spreadsheets and a hopeful glance at the bank. The producer-distinct weight is that the wholesale-account relationship in craft food and drink is genuinely heterogeneous (every farm-shop, every restaurant, every café has its own terms culture), the Sunday-spreadsheet is the cost of doing it manually, and the build is shaped around making the per-account terms persistent - so the statements flow on the right rhythm and the arrears ladder runs in the right voice without you tracking who’s where in your head.

Solved looks like: the wholesale-account terms layer as a structured per-customer object on top of Xero. Each trade customer carries their negotiated terms (the days-to-pay, the invoice format the AP office wants, the delivery day, the statement cycle, the cohort-pricing tier), the structured order history (every WhatsApp order from problem 1 lands here), the account-balance state, and the arrears history. Statements assemble automatically on the agreed cycle (Lane Farm’s 14-day statement lands on the 15th and the 30th; Maple Farm’s 30-day statement lands month-end; Wherstead Park’s pay-when-sold statement reconciles against their stock-sold report when it arrives). For accounts trending overdue, the arrears ladder fires gently in your voice - day +5 over terms: “hi Tom - just a quick note, the invoice from the 1st is now a few days past terms, all OK at your end? Happy to push to a slightly later date if there’s something at this end”; day +10: phone-task on your dashboard; day +20: a more direct conversation; day +30: payment-stop on the account (configurable per relationship). For the pay-when-sold accounts (the consignment / sale-or-return / café-counter arrangements), the same engine pulls the stock-sold reports from the partner’s POS or their monthly emailed sheet, reconciles the units sold against the units delivered, and produces the per-period statement automatically.

5. The cheese batch that traces forward to every retail and wholesale customer in four hours - not two days

The STEC-on-retention moment: STEC sample failed on a March cheese batch. FSA wants four-hour trace-forward to retail customers; the wholesale buyer’s SALSA / BRC audit-pack expects the same window with documented evidence. You had the batch in a notebook. Two days to assemble the recall pack, two days of customers waiting, two of them never came back. The producer-distinct weight is that trace-forward / trace-backward is the operational discipline that genuinely sits between a producer who can handle a recall in a day and a producer whose retail customers are waiting and one of them never comes back - the FSA-expected window is genuinely four hours, the wholesale-buyer SALSA / BRC discipline expects the same. The build is shaped around making the trace a single-query event on a structured record - not a two-day forensic exercise across a notebook and three spreadsheets.

Solved looks like: the batch-traceability layer as a structured forward + backward index over every production run and every customer touchpoint. Each batch carries the structured inputs (the milk source for cheese, the malt + hops for beer, the grape harvest for wine, the green-bean origin for coffee, the flour and starter for sourdough) with the supplier-and-batch identity captured at receiving; the production-step record (mash, lauter, boil, ferment; press, brine, age, cut; bottle, label, case); the Natasha’s Law allergen profile per recipe with the PPDS label-template that regenerates the moment a recipe changes; and the customer-side allocation (which retail orders shipped which batch, which trade accounts received which delivery, which marketplace order included which batch, which farmers’-market Saturday the remainder went out at). When an FSA sample failure (or any quality flag - a customer complaint, a sensory issue, a packaging defect) lands, the trace runs forward from the batch ID - “batch 247B (the March cheddar) shipped: Lane Farm × 8 wheels on 14 March, Maple Farm × 4 wheels on 16 March, Wherstead Park × 6 wheels on 18 March, Shopify D2C × 23 orders across 14-22 March, Cheese Geek marketplace × 11 orders 16-21 March, Bury farmers’-market × 6 wheels on 18 March; total 58 customer touchpoints” - and produces the recall pack (the customer list with contact details, the SMS / email message drafts in your voice with the recall reason + remediation, the FSA-format recall notification, the wholesale-buyer SALSA / BRC-format incident report, the audit trail) within the four-hour window. The reverse trace runs the other direction - “if there’s a milk-supplier-side issue, which of our batches in the last six months used that supplier, and which customers are affected?” - at the same speed.

The cheese-maker mid-batch - labelled wheels on a racking shelf, a tablet open to the structured batch record showing inputs and customer touchpoints, the SALSA certificate on the wall behind

The closest things we’ve already built


If your producer’s narrower than the whole of the above

Most of the producer-shapes we work with - micro-brewery, craft cidery, vineyard, distillery, farm shop, smokery, cheese-maker, bakery, chocolatier, coffee roaster, soft-drinks producer, beekeeper - share most of the hub above. The bits that genuinely differ scope in discovery: a micro-brewery often starts with problems 1 + 3 + 4 and adds problem 2 when the taproom takes off; a cheese-maker needs problem 5 from the first scope conversation (perishable, allergen-sensitive, BRC-audited); a vineyard needs the vintage-cashflow horizon (18-24 months) layered into the multi-account terms engine; a beekeeper needs the Defra Honey Regs provenance evidence as the trace-backward layer; a farm-shop running a butchery counter needs the DEFRA Approved Establishment record alongside the Natasha’s Law labelling. None of these warrant their own page yet - they’re a discovery conversation, not a separate buyer.


Adjacent verticals


FAQ

Will the wholesale order capture flow work with the way our pubs / farm-shops / restaurants already order?

Yes - the flow’s specifically designed for the heterogeneous reality (some trade customers prefer WhatsApp, some prefer phone, some prefer email, some prefer a B2B portal, some want EDI for the bigger accounts). The agent reads inbound on whichever channel the trade customer uses, parses the order against your live SKU list, drafts the confirmation in your voice on the same channel, and writes the order into Xero + your production schedule. For trade customers who want a portal, the per-customer login surface shows their price list + usual orders + balance; for those who prefer WhatsApp, nothing changes from their side.

Will the cellar-door booking flow work with our existing Shopify install?

Yes - Shopify’s native booking surfaces (or the Bookable / Resmio / FareHarbor app you might already run) integrate with the upsell-at-booking layer we build. Where you’re not on Shopify, the booking surface can be a standalone page that posts to the same Xero + customer-comms pipeline. The booking, the upsells (cheese board, vintage flight, take-home case), and the group-rate / corporate-invoice flow all integrate cleanly.

Will the D2C reconciliation handle our specific marketplace mix - Master of Malt, Honest Brew, Yumbles, Cheese Geek, Etsy?

Yes for the named marketplaces (each exposes an order-detail API or scheduled report). The reconciliation pulls per-order detail (gross + commission + net + tax + shipping), writes the structured Xero lines (commission expense, net revenue, COGS allocation), and matches against the periodic marketplace payout. For marketplaces without an API surface (smaller indie aggregators), the same logic runs from the monthly emailed sales report.

Will the multi-account terms engine respect our specific relationship with each farm-shop / restaurant / hospitality account?

Yes. Each trade customer carries their negotiated terms (14 / 30 / 60 / pay-when-sold), invoice format (PDF / EDI / portal-only), delivery day, statement cycle, and pricing tier. The arrears ladder is configured per relationship - some accounts you’d let drift to +20 days before a conversation; some you’d nudge gently at +5. The pay-when-sold reconciliation reads the partner’s stock-sold report (some farm-shops POS-feed it via Square or Lightspeed; smaller ones email a monthly sheet) and reconciles units-sold-vs-units-delivered automatically.

Will the batch-traceability layer work for our specific production system - Beer30 / Ekos / Vintner / Vinsight / a spreadsheet?

Beer30 and Ekos both have integration surfaces we read against; Vintner / Vinsight have varying API depth (newer cloud versions are easier); for cheese-makers, bakers, chocolatiers, jam-makers, beekeepers running on Excel or a paper batch-log, the traceability layer is the production-side system itself - the structured batch record is captured at production, the customer-side allocation at packing, and the trace runs across both. Where you’re already on a production system, we wrap it; where you’re on a spreadsheet, we replace the spreadsheet.

Will the build handle our SALSA / BRC Global Standard audit prep - and the Natasha’s Law / PPDS allergen labelling?

Yes. The SALSA and BRC audit packs assemble themselves from the structured production record - the batch-traceability layer in problem 5 plus the recipe-and-allergen profile per SKU plus the supplier-approval evidence plus the cleaning-and-temperature log. When the auditor’s date lands, you open the audit-pack screen and it’s already in the shape the audit expects. For Natasha’s Law / PPDS allergen labelling, every recipe carries its structured allergen profile; the moment a recipe changes (a new flour, a different starter, an ingredient swap) the PPDS label template regenerates across every PPDS-applicable SKU and the bakery-counter label + the farm-shop wholesale label + the Shopify product page all surface the change. The labels stay current; the audit pack stays current; the FSA / EHO inspection-prep is a five-minute review, not a panic.

Will the build handle our HMRC AWRS / Small Producer Relief / EPR / Sugar Levy reporting?

The structured record (per-batch ABV + volume + duty point for alcohol; per-product packaging tonnage breakdown by material for EPR; per-product sugar-per-100ml for the Soft Drinks Industry Levy) feeds the annual / quarterly submission drafts in the format each portal expects. The submissions themselves stay with you - the system assembles the evidence and the draft, you sign and submit. Where the portal has changed format mid-year (the SPR portal’s August 2023 change being the recent example), we adapt the export.

What does it cost?

Every build is scoped per producer - depends on production type (brewery / vineyard / cheese / bakery / etc.), channel mix (D2C only vs D2C + wholesale + cellar-door + farmers’-market + marketplaces), current Shopify / Beer30 / Ekos / Vintner / Vinsight install, and whether the build covers all five problems above or a subset. We talk it through, agree the price in writing. See pricing.

Friday evening at the craft producer's office - the week's wholesale orders in Xero, the cellar-door Saturday already paid-and-upsold, the Shopify orders shipped, the three-statement reconciliation done, the batch trace one query away

Tell us what your week looks like

What you produce (brewery / cider / distillery / vineyard / cheese / smokery / bakery / chocolatier / coffee roaster / soft drinks / kombucha / honey / other), production volume per year and number of staff, your channel mix (D2C webshop / wholesale / cellar-door / farmers’-market / marketplaces), your current stack (Shopify / WooCommerce / Beer30 / Ekos / Vintner / Vinsight / Square / Xero / paper-and-WhatsApp), and your audit profile (SALSA / BRC / FSA-only). Where the operational pain lives - the Friday pub WhatsApp, the cellar-door upsell that doesn’t happen, the marketplace payout reconciliation, the multi-account terms, the recall window, the allergen-label regeneration. Send an enquiry - what you do, what’s slowing you down, what you’ve already tried. We’ll come back with a sketch of what we’d build and what it would cost. No calendar, no demo to sit through. Email reply, scoped sketch, you decide.

Tell us what your week looks like

Send an enquiry - what you do, what's slowing you down, what you've already tried. We'll come back with a sketch of what we'd build and what it would cost. No calendar, no demo to sit through.

No calendar widgets. Email reply, scoped sketch.

Tell us what's slowing the business down

Email reply, scoped sketch, you decide. No calendar widgets, no demo to sit through.

No calendar widgets. Email reply, scoped sketch.