Industry
Food and fine goods. Stores built for repeat, occasion and freshness.
Updated
Coffee, tea and food brands sell twice: once to a new customer, then again every month. We build Shopify setups that carry both.
The short answer
A Shopify store for food and fine goods stands or falls on four things: a subscription that carries the repeat purchase, a product data model for origin, roast level and aroma, delivery date logic with real cut-off times, and clear ERP ownership of stock and prices. Everything else, meaning bundles, gift sets and B2B pricing, is built on top. Reverse that order and you maintain everything twice later.
Contents
- What makes food and fine goods different in a Shopify setup?
- How do you build subscriptions that really carry the repeat purchase?
- How do origin, roast level and aroma become usable?
- How do you control delivery dates, cut-off times and freshness?
- What does the gifting and occasion business need?
- ERP, B2B and shipping logic need one clear owner.
What makes food and fine goods different in a Shopify setup?
The difference sits in the second purchase. Fashion gets bought, coffee gets bought again. A store that only optimises the first order leaves the larger share of its contribution margin on the table. So it is decided early whether subscription, reordering and the customer account are designed together or retrofitted years later.
On top of that, the goods age. Batches, roast dates and best-before dates are not a footnote; they shape what you are allowed to sell, what you want to ship first and what is better bundled. That information lives in the ERP, not in the store; the store only has to read it reliably.
And revenue arrives in waves. Christmas, Easter, Mother's Day, corporate gifting: occasion business creates peaks that hit a grown setup harder than everyday trading. At BlumeIdeal, exactly that instability during seasonal peaks was one of the triggers for moving from Shopware 5 to Shopify Plus.
How do you build subscriptions that really carry the repeat purchase?
A subscription is not a discount model, it is a product model. The first decision is which product can be subscribed to at all, and at what rhythm. With coffee the rhythm follows consumption, not the calendar. Ship 250 grams and one kilogram on the same cadence and you produce gaps and cancellations.
The second decision concerns control inside the customer account. Move the date, swap the variety, change the quantity, pause: every one of those actions a customer can handle alone is one cancellation less and one service email less. At BlumeIdeal the subscription logic runs on Recharge, connected to the existing Shopify checkout.
The third decision is the handover into the ERP. For logistics a subscription order is an order like any other and has to arrive with batch, weight and delivery date attached. Build the subscription as an island next to the merchandise system and you have only moved the work into accounting.
What should be settled before the first subscription goes live
- Which products are subscribable and which deliberately are not
- Which intervals exist, derived from consumption per pack size
- What customers may change themselves: date, variety, quantity, pause
- How subscription orders stay distinguishable from one-off orders in the ERP
- How price changes are meant to affect subscriptions already running
How do origin, roast level and aroma become usable?
For coffee and tea, sensory detail is the actual sales advice. It therefore belongs in the product data model as structured fields, not as prose inside a description. Only in structured form can it be filtered, pulled into comparisons, used in recommendations and, later on, read reliably by machines.
At Blankroast Manufaktur those very attributes came out of the weclapp ERP: aroma, origin, roast level and acidity were mapped as Shopify metafields. The team keeps maintaining the data in one place, and the store can make it filterable and surface it directly on the product page.
The effort rarely sits in the technology, it sits in agreeing on values. A roast level with seven free spellings filters nothing. Before a migration it pays to check every property for whether it filters, whether it informs, or whether it merely sits in the catalogue for historical reasons.
Attributes a fine goods store needs in structured form
- Origin, growing region and processing method
- Roast level, steeping time or preparation guidance
- Aroma profile, body and acidity
- Pack size, fill quantity and shipping weight
- Mandatory declarations belong in the product data model, not in an image caption
How do you control delivery dates, cut-off times and freshness?
A requested delivery date is only as good as the rule behind it. The calendar in the ordering flow may only offer dates that are genuinely possible in logistics. For that it needs three inputs: blocked days, a cut-off time per shipping method, and current availability from the merchandise system.
At BlumeIdeal we built exactly that logic: weekends and defined public holidays are blocked automatically, the cut-off time shifts the earliest possible date, and availability reaches the store through a JTL worker cloud. In the end the customer only sees days that can genuinely be selected.
Freshness also affects stock. If batches and best-before dates are held in the ERP, the store does not have to calculate anything itself. It only has to learn in good time when a batch should no longer be sold. That handover belongs in the integration design, not in a plugin added afterwards.
What does the gifting and occasion business need?
Gift buyers are different customers. They often do not know the product, they buy once, under time pressure and for somebody else. So the store has to take part of the choice off their hands: tasting sets instead of variety selection, bundles instead of single items, a concrete delivery date instead of a shipping time in working days.
At BlumeIdeal a configurator solves this: pick a base product, add extras such as a vase or chocolates, write a personal greeting card, and take matching upsells in the same step. The higher average order value in that project comes precisely from those configurator upsells, not from a price increase.
At Sirocco the same mechanic appeared in a different form: variants, bundles and gift sets had to fit into a product structure that stays maintainable. That is where gifting becomes technically expensive, namely when every set is built as a special case rather than as a reusable pattern.
ERP, B2B and shipping logic need one clear owner.
Stock, prices and batches belong in the ERP. The store consumes that data, it is not a second source for it. As soon as both sides are allowed to maintain the same fields, you get discrepancies nobody resolves cleanly, usually in the week before the largest peak of the year.
In this industry B2B almost always comes along too: hospitality, offices, resellers, sales representatives. At Blankroast the structure for that was laid out from the start without diluting the D2C experience. The store is also prepared to use Shopify POS in the company's own roastery later on.
And then there is weight. Coffee, preserves and drinks are heavy, so shipping costs are a real block of cost rather than a side calculation. Tiers by weight, zone and shipping method belong modelled properly, not as a flat rate that eventually eats the margin of the whole subscription business.
What we build in this industry
Subscription and repeat purchase
Subscription models with consumption-based intervals, self-service in the customer account and a clean handover into the ERP. At BlumeIdeal via Recharge on the Shopify checkout.
Product data and sensory detail
Origin, roast level, aroma and acidity as structured metafields instead of prose. At Blankroast mapped from the weclapp ERP and therefore filterable and displayable.
Delivery dates and cut-off times
Calendar logic with blocked days, cut-off times per shipping method and availability from the merchandise system, connected through a worker cloud.
Gifts, bundles and sets
Configurators for gifts and greeting cards, plus tasting sets and bundles as a maintainable pattern rather than a special case per campaign and season.
Migration without losing orders
Moving from Magento or Shopware to Shopify Plus including customer data, order history, redirects and a DNS switch that is done within minutes.
Projects behind this page
Three delivered projects from coffee, tea and gift delivery. Every figure is taken verbatim from the linked case study.
- +35 %
- durchschnittlicher Bestellwert seit der Migration
- +22 %
- Conversion Rate
- 12 Wochen
- bis Go-Live
- 40.000+
- migrierte Kundendatensätze
- +25 %
- Conversion Rate
- 50 Tage
- bis Go-Live
- +33 %
- Conversion Rate
- +29 %
- durchschnittlicher Bestellwert
FAQ
Frequently asked questions
Is Shopify worth it for a small coffee roastery?
The question is less about size than about the business model. As soon as repeat purchase, subscription and gifting come together, a system that covers those three without custom building pays for itself. For pure one-off sales with a small range the benefit is far smaller and a move rarely urgent.
How do I represent batches and best-before dates?
In the ERP, not in the store. The merchandise system holds batch, stock and shelf life; the store only receives what selling and display actually require. The handover is what matters: the store has to learn in good time when a batch should no longer be sold.
Do I need Shopify Plus for a fine goods business?
Not necessarily. Plus becomes relevant when B2B pricing should run through company profiles and catalogues, when the load peaks in occasion business are large, or when custom checkout logic is required. Blankroast, Sirocco and BlumeIdeal all three run on Shopify Plus for reasons like these.
How long does a migration take in this industry?
That depends on the data model, not on the design. Sirocco went live after twelve weeks, BlumeIdeal after fifty days, both with a full data transfer. It always takes longer when attributes, variants and pricing logic are decided during the running project instead of being settled beforehand.
What happens to customers and order history during the move?
Both are migrated. At Sirocco that meant more than 40,000 customer records including the complete order history. At BlumeIdeal the switch ran without losing orders, and the DNS change took only a few minutes. What decides this is clean mapping before the import, not import speed itself.
How does Shopify handle mandatory food declarations?
Technically this is a data model question: mandatory declarations belong in structured fields on the product, not in an image caption or a block of prose. That keeps them maintainable, checkable and consistent everywhere. Which declarations you have to carry is something to clarify with your legal advisers.
Related services
Related services
One more thing
Talk through your range once
Send us your product range, your ERP and the three things that cost the most time day to day. We will tell you which of them is a data model question and which is implementation.
NICCOS has moved coffee, tea and gifting brands from Magento and Shopware to Shopify Plus. The order of work always stays the same: the data model first, the store second.
Get in touch