FLAGSHIP — PRODUCTION ERP & FULFILMENT OS · RUNS SUPA & LIVE DARK STORES

Mngr. One system owns the entire life of an order.

From any sales channel, through human packing on the store floor, to courier handover — plus batch-level inventory, expiry-driven pricing, supplier replenishment and loss prevention. Built and battle-tested inside Smart Kitchen Co's live operation.

ops/live — order feed
herald → 5 surfaces · envoyer → platforms
scroll
00 / LIVE TELEMETRY

Mission control, not dashboards.

What an operator sees: every order, surface and courier as one living system. demo stream — the shapes are real, the numbers are illustrative

orders / min38
pool load
66%
courier radar
channel throughput
uber eats
mr d food
yango/supa
merchant pos
supa app
event stream
12,482
3,917
148
01 / OVERVIEW

Built inside a real dark-store operation. Not a slide deck.

Mngr is a production ERP and fulfilment operating system for dark stores and quick commerce. It runs SUPA — the Yango-Tech-backed marketplace — and merchant storefronts, every day. Every number below is architecture, not marketing.

0
channel types
ingested
0
ingestion mechanisms
webhook · poller · api
0
surfaces hear every
order moment, live
0
pipeline.
no duplicates, by design
02 / THE ORDER LIFECYCLE

Follow one order through the machine.

STAGE 01

Channels

Orders arrive from seven channel types through three mechanisms — signed webhooks (Uber Eats, Mr D Food, Deeliver), durable pollers with reconcile sweeps (Yango / SUPA), and first-party APIs (the embeddable Merchant POS and the Supa customer app).

  • webhook · poller · api
  • virtual stores included
STAGE 02

Ingestion

Every source gets its own validator and payment strategy — gateway-paid, aggregator-settled or confirmation-gated. Dead orders are dropped before stock is touched. Combos sold as a single virtual SKU are exploded back into components, each holding real batch stock atomically.

  • idempotent — replays can't duplicate
  • reject path: dropped pre-stock
STAGE 03

The Pool

Auto-acceptance within each platform's SLA with verified retry logic — a transient API blip never kills an order; a truly dead one is failed fast so no packer wastes time on it. Then fairness-based auto-assignment: least-recently-assigned, driver-aware grouping. No manual claiming.

  • unaccepted → auto-timeout, stock released
  • failure is a feature, handled honestly
STAGE 04

The Floor

Barcode-driven packing on web terminals, Android handhelds and a native packer app on FCM. Split grocery / kitchen flows with a kitchen display and order parking. Substitutions, removals and reductions happen with the customer involved live — refund amounts included.

  • barcode-driven fulfilment
  • item changes loop back into comms
STAGE 05

Herald → Envoyer

One semantic event per order moment fans out simultaneously to five surfaces — store terminal, kitchen display, staff feed, packer's phone, and the buyer. Meanwhile the Envoyer pushes state to each marketplace through protocol adapters that declare what their platform truly supports.

  • one event = one emitter, no doubles
  • capability contracts — never pretended
STAGE 06

Delivery & Resolution

Aggregator couriers, Uber Direct dispatch, Bob Go shipments — courier events are first-class. A courier bailing does not cancel the order. Cancellations flow store→platform, platform→store and customer→store, each exactly once, with refunds and stock release per payment model.

  • courier ≠ order
  • driver location streamed to tracking
order.received ← uber-eats [webhook] ✓ signed
03 / COMMS ARCHITECTURE

The Herald tells your people. The Envoyer tells the platforms.

One moment, every screen, no doubles.

order.moment HERALD fan-out ×5 terminal kitchen staff packer customer ENVOYER protocol adapters uber eats mr d food deeliver yango/supa one moment in → every screen + every platform out

THE HERALD // internal broadcast

One semantic event per order moment — created, assigned, packing, ready, delivering, completed, canceled, denied, timed-out, courier events, item changes. A failing surface never starves the others; new screens and apps subscribe to moments, they don't get hand-wired into flows. Merchant-iframe customers see live item changes with refund amounts and substitute pricing, and can accept or decline. Supa app customers get push and webhooks.

THE ENVOYER // outbound platform sync

A protocol adapter per marketplace translates Mngr's lifecycle into each platform's native vocabulary — real accept calls where the platform wants them, state-machine updates where it doesn't, queued with retries, escalating backoff, and explicit desync alerts when a platform refuses. Capability contracts mean a platform without a cancel API is never pretended at: unsupported actions are skipped explicitly.

04 / INVENTORY & MONEY

Stock you can trust. Money that reconciles itself.

batches

Batch-level stock

Expiration dates, per-batch holds, atomic operations, oversell-aware reconciliation, an Inventory Health Index dashboard — and a reconstructable lifecycle timeline for every item.

wastage → revenue

Expiry-driven pricing

Stock nearing expiry is automatically discounted — 50%, then 75% on the last day — and pushed to every channel via its native mechanism, from the Uber promotions API to price overrides. Shrink becomes revenue.

replenishment

Supplier workflows

Par-based stock orders, supplier purchase orders with buyer approval workflows, DC barcode receiving, and packer-verified intake with expirations captured at the door.

loss prevention

CycleEngine

Enforcement-gated, signal-weighted, deliberately unpredictable cycle counts — ABC plus opportunistic. Loss prevention through randomness, with per-store kill switches and full mobile / terminal parity.

payments

Pluggable gateways

Paystack, Flutterwave, Ozow, PayFast behind one gateway layer. Payment-aware order gating and automatic refunds on every cancel path — store-, platform- or customer-initiated.

genuinely AI

Embedded analysts

AI agents inside the product answer sales and analytics questions in natural language. This is the one place we'll say "AI-powered" — because here, it is.

05 / UNDER THE HOOD

Specific, not buzzwordy.

This is what's actually running — one shared core behind admin, merchant, pack, food, parcel and api portals, with tenant-style separate deployments per brand.

PASS phpunit — thousands of tests, every build
PASS phpstan/larastan — zero errors policy
PASS parity audits — adversarial, on every architectural migration
RULE one event = one emitter — doubles are hunted and killed
RULE honest failure semantics — desync alerts, verified retries, fail-fast
ARCH observer → process → action pipelines on every lifecycle
ARCH capability contracts — adapters declare what platforms truly support

THE STACK

PHP 8.4Laravel 12Redis + HorizonLivewire 3 Alpine.jsWebSockets (Echo)FCM pushMySQL — partitioned history Saga-based rebuildsSanctum / FortifyMetronic 9 Multi-portal subdomainsPer-brand deployments

Quality gates, not promises: PHPUnit, PHPStan at zero errors, Pint, and adversarial parity audits on every architectural migration.

Want this calibre for your operation?

The same team and the same architecture discipline, pointed at your business. Book a free consultation — no jargon, just a conversation about your goals.

Start the conversation