Logistics App Starter · Industry version
A distribution system that respects expiry dates and cold chains — lot tracking, routes, delivery windows — in code you own.
Food logistics has physics generic shipping software ignores: product expires, temperature is a contract term, and a missed restaurant window means a kitchen prepping without stock. This starter generates distribution operations around lots, cold-chain checkpoints, and route-based deliveries — as code your business owns.
01 · The problem
Food moves under a clock no parcel tool models. Every case carries a lot number and an expiry date, pick order must respect first-expired-first-out, and a recall means tracing one lot across every delivery it touched — in hours, with a regulator watching. Traceability isn't a report you'd like to have; it's a legal obligation, and it has to live in the schema.
Temperature is the second contract. Chilled and frozen lines hold their value only inside a range, receivers check it at the dock, and a broken cold chain turns a truckload into a write-off plus a difficult phone call. A system without temperature checkpoints on the shipment record can't prove the chain held — which, commercially, is the same as it breaking.
And delivery runs on routes, not tracking numbers. A driver serves twenty restaurants in a fixed sequence against tight morning windows, kitchens reject short or warm cases at the door, and the rejection has to flow back into credits and the next order. Parcel-shaped software has no route, no window, and no dock rejection — the three facts a food distributor's day is made of.
02 · Data model
Everything in the base Logistics starter —
ordersshipment_itemsshipmentscarrierstracking_eventswarehouses— plus the entities this industry actually runs on:
| table | what it holds |
|---|---|
lots | Production lots with expiry dates linked to every shipment they ride on — the thread a recall traces and FEFO picking runs on. |
temperature_checks | Recorded readings at loading, in transit, and at the dock — the evidence that the cold chain held from warehouse to receiver. |
delivery_routes | Driver runs with stop sequences and per-customer delivery windows — the unit food delivery is actually planned and measured in. |
03 · Screens
Shipments assemble under first-expired-first-out rules, and every case's lot rides on the shipment record. When a supplier calls about lot 4471, the affected customers are one query — not a weekend of delivery-note archaeology.
The shipment timeline carries temperature checkpoints alongside location scans — loaded at 2°C, arrived at 3°C, receiver signed. Disputes about warm product settle on recorded readings instead of recollections at the dock.
Exceptions are food-shaped: a route running late against delivery windows, a dock rejection for temperature or shortage, product expiring before its next scheduled drop. Each lands with a reason and an owner while there's still time to act on it.
04 · In practice
Overnight orders build into routes by area and window; FEFO picking assigns lots; trucks load with a recorded temperature reading. Each driver's manifest lists stops in sequence with what each kitchen expects — the day planned before dawn.
A chef rejects two warm cases at the door. The driver records it against the stop with a reason and reading; the credit issues against the invoice and the shortage flows into tomorrow's order. The dispute lasts minutes because the record is complete.
A supplier recalls a lot. Query the lot, get every shipment, route, and customer that received it, with dates and quantities — the notification list and the regulator's evidence in the same afternoon, from tables you own.
Yes — lots link to every shipment they ride on, so a recall trace is a single query returning customers, quantities, and delivery dates. That trace is the regulatory core of food distribution, and it lives in your own database.
Temperature checks are records on the shipment timeline — at loading, in transit if your trucks report it, and at the dock. Manual readings work from day one; wiring sensor feeds into the same table is a normal integration since you own the schema.
Routes with ordered stops and per-customer windows are first-class, and the exception queue flags runs going late against windows. Route optimization can start manual and get smarter in code you control — the structure is already right.
Yes — rejections record against the stop with reason, quantity, and temperature reading where relevant, then flow into credits and following orders. Capturing it at the dock is what keeps disputes short and ledgers honest.
Dual7 App Starters
A distribution system that respects expiry dates and cold chains — lot tracking, routes, delivery windows — in code you own. Describe your version to start — the output is a project you own.