Transport
The transport agenda is the working core of a firm that moves things: delivery zones drawn from postal codes, shipments with a tracking number and a status timeline, the day's routes for a vehicle and its driver, and the pages a customer sees — where the firm delivers, and where a parcel is right now.
Every screen of the agenda is a shipped view: the dispatch board, the shipments, the routes, the zones, the services and tariffs in the back office; the tracking page, the zone lookup and the coverage map on the public web; "my shipments" in the customer portal. A firm customises any of them like every other default view — columns, filters, styles — and reverts to the shipped declaration when it wants the original back.
Tip
Switch the agenda on under Transport → Settings. The screens, the firm's own zone, depot and service lists, the failure reasons, the numbering formats and the mail templates are ready the moment it is on. Nothing has to be configured first.
What the agenda is made of
| Piece | What it is | Where |
|---|---|---|
| Delivery zones | Sets of postal codes with served weekdays, a window and an order cutoff | Zones |
| Depots, services | The places shipments leave from; what the firm sells (parcel, pallet, chilled, express) | Transport → Services |
| Shipments | Sender, recipient, parcels, a number, a status machine and its timeline | Shipments |
| Routes | A day, a vehicle, a driver, ordered stops, outcomes | Routes |
| Public pages | Tracking by number, the zone lookup, the coverage map, the customer's list | Tracking and lookup |
Zones, depots and services are the firm's own content — translatable, exported with the firm's configuration, edited in the content editor the platform already has. Shipments, routes and rides are records with integrity the platform guards: their status moves only through the services, and every move leaves an event.
Who does what
| Permission | Opens |
|---|---|
| See transport | every screen, read-only |
| Dispatch | shipments and routes: create, plan, move statuses, print labels |
| Drive | the driver's own routes on the phone, and their outcomes |
| Manage zones | zones, depots, services, the paste door |
| Manage tariffs | tariff rules and prices |
| See reports | the report numbers |
A portal customer sees the shipments of their partner — nobody else's. A visitor sees a shipment only by its number, and only the status and the timeline at municipality precision: no names, no streets, no phones.
The firm's clock
Delivery days, cutoffs and windows count in the firm's time zone: the transport settings' time zone, else the site's, else the platform's. A shipment received on Monday at 13:00 for a zone served on Tuesday and Thursday with a Monday-noon cutoff proposes Thursday — the Tuesday cutoff has passed.
Holidays
Transport → Settings keeps the firm's holiday calendar, one date per line. Delivery days skip them — an order for a zone served on Tuesday lands on Thursday when Tuesday is a holiday — unless the firm ticks We deliver on holidays too (ColdExpress does). The calculator and the address preview show the same days.
Numbers
A tracking number reads ACME-2026-000123K: the firm's prefix, the year,
a six-digit counter and a check character. The prefix and the pattern are
edited under Registers → Numbering formats (kinds transport_shipment
and transport_ride); the check character makes a guessed number answer
"no such shipment" without a lookup.
Tariffs and the price
A tariff rule prices a service by zone (or any zone), by weight band, by temperature regime, with an express flag, weekday extras and a validity. The most specific matching rule wins: a rule that names the zone beats one for any zone, a weight band beats no band, a regime beats any regime, express beats plain; then the rule's own order. A shipment prices itself on saving (and on every edit) from its real parcels and zone, and stores the breakdown; a price typed by hand stays. No matching rule leaves the shipment price on request — the board shows the flag.
A rule is either a price or a surcharge. A price rule gives the base for what it matches; every matching surcharge rule — express, a zone, a weight band, a regime — is added to that base, as an amount or as a percentage of the base, and the breakdown names each one by its label ("Express", "Zone fee"). Express is therefore a surcharge in the usual setup: one price list, plus "+5 EUR express" on top. A surcharge alone never prices a shipment; without a price rule the shipment stays on request.
The price calculator is a block a firm places anywhere: a postal
code, a service, a weight, the regime — and the price the office would
charge, to the cent, with the zone and the next delivery days. The web's
door: /api/web/v1/transport/price?service=&code=&weight=®ime=&express=.
A code the firm does not serve answers "we do not deliver there yet",
whatever an any-zone rule would say.
Claudia
Claudia answers the same questions the screens do and moves the same things: which zones serve a postal code, one shipment's timeline, the day's board numbers, a new shipment, a status move, a route for a zone's day, a delivery report. She never cancels or returns a shipment — that stays a person's decision.
What is coming
Taxi rides, SMS notifications and the monthly billing export are the next slices.
SMS
Transport → Transport settings → SMS. Texts go through the firm's own HTTP gateway — nothing is shared
between firms: the gateway URL carries {to} and {text} (and {from} for the sender name), the
token rides as a bearer header and is never shown again once saved. With Send texts on, the
recipient is texted when the shipment is out for delivery, and — with the day before on — the
evening before with the delivery window. The text is the mail template's subject line with the
tracking link; every text is logged next to the mails on the shipment page.
The day-before notice is a scheduled run (once a day, in the tenant schema):
manage.py tenant_command transport_day_before --schema=<tenant>
It walks every firm with transport on, takes tomorrow in the firm's time zone, and tells each shipment planned for that day once — mail to the recipient, text where the firm has a gateway.
Depots stay internal
A depot record belongs to the firm's people: it never answers as a public page and never appears in the sitemap, while zones stay public for the coverage map and the postal-code lookup.