Skip to content

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):


Catalog Reference


RA-002 — Grocery Retail Reference Architecture — UC-BoK v0.8-alpha