Grocery Retail Reference Architecture¶
RA-002 | Unified Commerce end-to-end model for grocery and food retail
Classification:reference-architecture· Vertical: Grocery Retail
Industry Profile¶
Grocery retail is architecturally distinct from other verticals in ways that force specific capability and application choices:
| Characteristic | Architectural Impact |
|---|---|
| Weighted / variable-measure items | Basket must support unit-of-measure lines; POS requires scale integration |
| Perishable inventory (1–14 day shelf life) | Inventory must track batch/lot, FIFO rotation, and near-expiry for fresh markdown |
| Age-restricted products (alcohol, tobacco) | Self-checkout and scan-and-go must trigger associate verification before payment |
| High frequency, low basket value (2–3 visits/week, £20–35) | Transaction throughput is the primary KPI — POS speed and payment latency < 2s |
| Multi-buy promotions (BOGOF, 3-for-2, meal deal) | Promotion engine must evaluate basket-level rules in real-time as items are added |
| Personalised loyalty (Clubcard, Nectar, Kroger Plus) | Purchase history powers individual offers — loyalty is the #1 personalisation engine |
Capability Map¶
Maturity levels: 0 Absent · 1 Aware · 2 Fragmented · 3 Integrated · 4 Optimised
Mission-Critical Capabilities (MVP ≥ 4)¶
| Capability | MVP | BIC | Grocery Rationale |
|---|---|---|---|
checkout |
🟦 4 | 🟦 4 | Transaction throughput #1 KPI. Age verification + weighted items + multi-buy in one pass |
promotions |
🟦 4 | 🟦 4 | BOGOF, 3-for-2, meal deal + personalised offers evaluated real-time at basket level |
payment-processing |
🟦 4 | 🟦 4 | Contactless primary. < 2s target. Age-restricted payment gated on associate approval |
basket-management |
🟦 4 | 🟦 4 | Weighted item lines, multi-buy evaluation, substitution candidates |
Critical Capabilities (MVP 3)¶
| Capability | MVP | BIC | Grocery Rationale |
|---|---|---|---|
order-management |
🟩 3 | 🟦 4 | C&C and home delivery lifecycle + substitution approval workflow |
inventory-visibility |
🟩 3 | 🟦 4 | Real-time ATP including batch/lot and best-before date |
inventory-reservation |
🟩 3 | 🟦 4 | Reserve stock for C&C/delivery — prevents overselling on limited-depth fresh items |
fulfillment-execution |
🟩 3 | 🟦 4 | In-store picking app with substitution, weighted capture, temperature zone compliance |
catalogue-management |
🟩 3 | 🟦 4 | PLU codes, weighted-item config, near-expiry batch assignment, fresh markdown pricing |
store-inventory |
🟩 3 | 🟦 4 | Batch/lot tracking, FIFO rotation, near-expiry alerts, daily waste recording |
loyalty |
🟩 3 | 🟦 4 | #1 personalisation engine in grocery. Points per transaction + personalised price |
store-operations |
🟩 3 | 🟦 4 | Receiving, replenishment, click & collect staging, picking task management |
pricing |
🟩 3 | 🟦 4 | Member vs. non-member price, automated fresh markdown, intra-day price changes |
Standard and Lower Capabilities¶
| Capability | MVP | BIC | Notes |
|---|---|---|---|
customer-identity |
🟧 2 | 🟩 3 | Loyalty card = primary ID. Guest checkout common in-store |
customer-profile |
🟧 2 | 🟦 4 | Purchase history for personalised offers and dietary preferences |
customer-segmentation |
🟧 2 | 🟦 4 | Micro-segmentation by category affinity drives personalised offer ROI |
order-orchestration |
🟧 2 | 🟩 3 | Store-pick vs. dark store routing. Time-slot capacity management |
channel-management |
🟧 2 | 🟩 3 | Distinct assortments for in-store, online, convenience |
customer-consent |
🟧 2 | 🟩 3 | Required for personalised offer communication |
voucher-management |
🟧 2 | 🟩 3 | Digital and printed coupons, loyalty-linked offer redemption |
inventory-allocation |
🟧 2 | 🟩 3 | C&C vs. in-store channel allocation |
subscription-management |
🟨 1 | 🟩 3 | Regular order subscriptions, Ocado Smart Pass–style tiers |
returns-management |
🟨 1 | 🟧 2 | Fresh non-returnable. Limited to packaged goods quality issues |
clienteling |
🟥 0 | 🟨 1 | Not applicable in standard grocery. Premium deli/food hall only |
exchange-management |
🟥 0 | 🟨 1 | Exchanges rare in grocery — not a strategic capability |
Critical Processes¶
graph TD
subgraph "In-Store"
CHK[Checkout]
SCO[Self-Checkout]
SNG[Scan and Go]
end
subgraph "Omnichannel"
BOI[BOPIS / Click & Collect]
end
subgraph "Loyalty & Engagement"
LOY[Loyalty Enrollment]
VOU[Voucher Redemption]
end
CHK -->|multi-buy applied| VOU
SCO -->|age gate| CHK
SNG -->|exit verification| CHK
BOI -->|picker app| CHK
LOY -->|personalised offers| VOU
style CHK fill:#1e88e5,color:#fff
style SCO fill:#1e88e5,color:#fff
style SNG fill:#1e88e5,color:#fff
style BOI fill:#1e88e5,color:#fff
style LOY fill:#43a047,color:#fff
| Process | Priority | Grocery Rationale |
|---|---|---|
| Checkout | 🔴 Critical | #1 process by volume. Speed KPI. Weighted items + age verification + multi-buy + loyalty in one pass |
| Self-Checkout | 🔴 Critical | 40–60% of transactions. Scale integration + age-verification interrupt mandatory |
| Scan and Go | 🔴 Critical | Primary grocery use case — eliminates checkout queue for enrolled customers |
| BOPIS | 🔴 Critical | Click & Collect is fastest-growing fulfilment method. Same-day slot management |
| Loyalty Enrollment | 🟠 Important | Enrolment at checkout is primary acquisition. Personalised offers for members only |
| Customer Registration | 🟠 Important | Required for home delivery account and recurring order |
| Voucher Redemption | 🟡 Standard | Digital coupon and loyalty offer redemption |
Grocery-Specific Architectural Considerations¶
Weighted Item Flow¶
sequenceDiagram
participant C as Customer
participant POS_S as POS / SCO
participant Scale as Electronic Scale
participant Basket as Basket Mgmt
participant Promo as Promotion Engine
C->>POS_S: Place item on scale / scan PLU
POS_S->>Scale: Capture weight (kg)
Scale-->>POS_S: Weight confirmed (e.g. 0.432 kg)
POS_S->>Basket: AddBasketItem (PLU, qty=0.432, UOM=kg, unit_price=£4.50/kg)
Basket-->>POS_S: Line total: £1.94
POS_S->>Promo: Evaluate (fresh produce promotions)
Promo-->>POS_S: No promotion applies
POS_S-->>C: Running basket total updated
Architectural implication: basket-management must support unit-of-measure as a line attribute with weight-based pricing. This is a schema extension not required in fashion or specialty retail.
Fresh Markdown Cascade¶
sequenceDiagram
participant SIM_S as Store Inventory (SIM)
participant PromEng as Promotion Engine
participant POS_S as POS / Price Labels
Note over SIM_S: Daily batch: scan best-before dates
SIM_S->>PromEng: BatchNearExpiry (SKU, best_before=T+2, qty=24)
PromEng->>POS_S: Activate markdown rule (-25%)
Note over POS_S: Price label updated
SIM_S->>PromEng: BatchNearExpiry (SKU, best_before=T+0, qty=8)
PromEng->>POS_S: Activate end-of-day rule (-50%)
Note over POS_S: Automated markdown applied
Note over SIM_S: Unsold units → waste recording
Architectural implication: store-inventory at level 3+ must emit BatchNearExpiry events. promotions must support inventory-triggered markdown rules (not just time-based or manually activated).
Age Verification Interrupt¶
Every checkout touchpoint (staffed, SCO, scan-and-go, online) must handle age-restricted items.
| Touchpoint | Verification Method |
|---|---|
| Staffed checkout | Associate checks ID visually |
| Self-checkout | Alert displayed; associate PIN override |
| Scan-and-go | Item flagged at exit gate; associate checks ID |
| Home delivery | Age declaration at order + ID check at door |
Architectural implication: checkout capability must expose an age-verification hook that blocks PaymentAuthorized until associate approval event is received.
Multi-Buy Promotion Evaluation¶
Unlike fashion (where promotions are applied at checkout), grocery promotions must evaluate incrementally as items are added to the basket:
Basket state after 1× Coca-Cola: £1.99 (no promotion)
Basket state after 2× Coca-Cola: £3.98 (no promotion)
Basket state after 3× Coca-Cola: £2.99 (3-for-2 promotion applied → saves £0.99)
Architectural implication: promotions capability at level 4 requires a stateful basket-aware rules engine, not a simple coupon validator.
Typical Application Stack¶
| Role | Application | Vendor Examples | Grocery Selection Criteria |
|---|---|---|---|
| OMS | oms |
Fluent Commerce, OneStock, Manhattan Active Omni | Time-slot management + picker task assignment |
| POS | pos |
Toshiba TCx, NCR Emerald, Diebold Nixdorf, LS Retail | Scale integration + age-verification interrupt + SCO mode |
| eCommerce | ecommerce-platform |
VTEX, Salesforce Commerce Cloud, Ocado Smart Platform | Substitution logic + slot booking + meal planning |
| SIM | sim |
Relex, Aptos, LS Retail | Batch/lot tracking + near-expiry alerts + FIFO rotation |
| WMS | wms |
Körber, Blue Yonder, Swisslog | Temperature zones + FIFO pick sequence |
| Loyalty | loyalty-platform |
Eagle Eye, Comarch, Loyalty Prime | Real-time earn + personalised offer targeting at basket level |
| Promotion Engine | promotion-engine |
Eagle Eye, Talon.One, Voucherify | Stateful multi-buy engine with real-time basket evaluation |
| Payment Hub | payment-hub |
Adyen, Worldpay, Verifone | Contactless speed optimisation. EBT/food stamp (US) |
Maturity Targets¶
| Stage | UCMI Range | Description |
|---|---|---|
| Minimum Viable | 2.5 – 3.0 | BOPIS live. Self-checkout deployed. Multi-buy promotions running. Loyalty programme active |
| Competitive | 3.0 – 3.5 | Real-time inventory with batch tracking. Scan-and-go deployed. Personalised offers for loyalty members |
| Best-in-Class | 3.5 – 4.0 | Automated fresh markdown. Micro-segmented personalised offers per household. Predictive inventory with waste minimisation |
Capabilities that MUST reach level 4 for Minimum Viable:
checkout · promotions · payment-processing · basket-management
Operational Experience View¶
Modelled using SPEC-016 Experience Model and ADR-016.
Tasks are vendor-neutral canonical units. Screens are application-specific projections.
Key Actors in Grocery Retail¶
| Actor | Role | Primary Touchpoint | Core Tasks |
|---|---|---|---|
| Cashier | POS Operator, SCO Attendant | POS Terminal, SCO Terminal | Checkout, weighted item entry, age verification, multi-buy confirmation |
| Store Associate | Pick Operator, SCO Attendant | Mobile Device, SCO Terminal | BOPIS picking, SCO supervision, fresh markdown |
| Store Manager | Store Manager Override | Back-Office Workstation | Age verification authorisation, void/refund exceptions, fresh markdown approval |
| Customer | Online Shopper, In-Store Shopper | Mobile App, SCO Terminal, Scan-and-Go Device | Browse, BOPIS checkout, self-checkout, scan-and-go |
| Inventory Analyst | Inventory Operator | Back-Office Workstation | Fresh expiry monitoring, replenishment triggers, waste tracking |
| Warehouse Operator | Receiving Operator | Warehouse Terminal | Inbound receiving, batch/lot assignment, FIFO rotation |
Priority Journeys by Maturity Level¶
| Journey | Actor | Process | MVP | Competitive | BIC |
|---|---|---|---|---|---|
| Checkout — Cashier | Cashier | Checkout | ✅ | ✅ | ✅ |
| Self-Checkout — Customer | Customer | Self-Checkout | ✅ | ✅ | ✅ |
| SCO Supervision | Store Associate | Self-Checkout | ✅ | ✅ | ✅ |
| BOPIS — Store Associate | Store Associate | BOPIS | ✅ | ✅ | ✅ |
| BOPIS — Customer | Customer | BOPIS | ✅ | ✅ | ✅ |
| Scan and Go — Customer | Customer | Scan and Go | — | ✅ | ✅ |
| Age Verification Interrupt | Cashier / Store Manager | Checkout | ✅ | ✅ | ✅ |
| Fresh Markdown | Inventory Analyst | Inventory Management | — | ✅ | ✅ |
Grocery-Specific Experience Patterns¶
Weighted Item Capture Task
The capture-weighted-item task has no equivalent in fashion. It requires a log-weight Interaction (scale integration) or key-in-weight manual fallback. This Interaction exercises checkout + basket-management and produces a BasketItemAdded event with a variable price field. Any checkout Journey in grocery must include this task as optional (present when the basket contains weighted items).
Age Verification Interrupt Task
The verify-customer-age task is an interrupt — it is triggered mid-Journey by a AgeVerificationRequired event when a restricted item is scanned. It requires an authorisation Interaction type and may escalate to a store-manager-override Role. This is a cross-cutting task that appears in Checkout, SCO, and Scan-and-Go Journeys.
Multi-Buy Evaluation Task
Before payment capture, a evaluate-promotions task fires the multi-buy rule engine (BOGOF, 3-for-2, meal-deal). The task exercises promotions + basket-management and may trigger a PromotionApplied event with basket recalculation. A notification Interaction displays the applied saving to the customer.
Pilot: BOPIS Operational Experience¶
The BOPIS process is fully modelled end-to-end using the Experience Model (shared with Fashion RA):
- BOPIS — Customer Journey — 5 tasks, 12 interactions
- BOPIS — Store Associate Journey — 6 tasks, 17 interactions
- Store Manager Exception Journey — 2 tasks (unfulfillable reservation)
Catalog Reference¶
- Machine-readable model:
catalogs/reference-architectures/grocery-retail.yaml - Fashion Retail RA: RA-001 Fashion Retail
- Vertical Comparison: RA Vertical Comparison
- Capability maturity reference: Assessment Framework
RA-002 — Grocery Retail Reference Architecture — UC-BoK v0.8-alpha