Skip to content

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:

StatusSet by
in_stockDefault on creation. Also where cancel → restore and invoice void return.
soldInvoice issued for the car.
cancelledOperator-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.

Open a car (or select multiple), click Cancel. Pick a reason:

ReasonOutcome
CancelledUndoes the original purchase — as if it never happened. No profit/loss impact.
Lost or stolenWrites the car’s value down to zero and records the loss.
Returned to supplierSame 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.

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.

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 onFeature / changeReason
2026-07-07Removed 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_import model