Status workflow
cars.status is commercial-only and has three values: in_stock, sold, cancelled. You cannot pick the status from a dropdown. The platform derives it from the action you took:
| Status | Set by |
|---|---|
in_stock | Default on creation. Also where cancel → restore and invoice void return. |
sold | Invoice issued for the car. |
cancelled | Operator-triggered cancel action with one of three reasons. |
A car’s position in transit (purchased in the yard, booked, loaded, shipped, arrived) is not a status value — it’s a separate, derived Whereabouts phase shown alongside the status, computed from the car’s linked shipment (container or RORO trip). Whereabouts moves independently as the shipment progresses; it never overrides the commercial status, and a sold or cancelled car’s Whereabouts simply shows “sold” / “cancelled” regardless of where it physically is.
Cancel + restore
Section titled “Cancel + restore”Open a car (or select multiple), click Cancel. Pick a reason:
| Reason | Outcome |
|---|---|
| Cancelled | Undoes the original purchase — as if it never happened. No profit/loss impact. |
| Lost or stolen | Writes the car’s value down to zero and records the loss. |
| Returned to supplier | Same as Cancelled. Rejected for consignment cars (the supplier IS the consignor, so there’s nothing separate to reverse). |
See How your money flows for what each of these does behind the scenes. Consigned cars never post anything on cancel — their inventory was never capitalized, so there’s nothing to undo; any costs you fronted for the consignor remain a receivable, settled separately.
Cancelled cars keep their container/RORO link for audit but do not count toward container capacity. They remain visible (you can filter them in/out via the status chip).
To undo: open the cancelled car, click Restore. The platform reverses every effect the cancellation had. Status flips cancelled → in_stock. Idempotent.
Invoice void resets sold cars
Section titled “Invoice void resets sold cars”Voiding an invoice doesn’t just reverse the accounting — it also flips each linked car’s status from sold back to in_stock, in the same transaction. The car keeps its container/RORO link so you can re-issue without losing shipping context.
Why no dropdown?
Section titled “Why no dropdown?”A free-text status dropdown is how invariants get broken. The platform’s single source of truth for status is “what action happened.” Every status flip is auditable to a named action. Adding a generic status-update mutation would let an operator cancel without unwinding the accounting, sell without an invoice, or skip the Whereabouts propagation. The dropdown was removed deliberately.
Change log
Updated on Feature / change Reason 2026-07-07 Removed Dr/Cr code blocks; corrected status model to commercial-only ( in_stock/sold/cancelled) with derived Whereabouts phaseMigration 0230 replaced the six-value transit-coupled status enum; page still described the old purchased/shipped/arrived/sold_locally/sold_importmodel