Skip to main content

Stock control by order status

ECMS9 keeps stock in sync with orders automatically: order statuses decide when goods are written off, reserved or returned.

Status actions

Each order status (Orders → Order statuses) has a three-position stock switch:

  • Write off — moving an order into this status deducts its products from stock (e.g. "Shipped");
  • (neutral) — the status does not touch stock;
  • Return — the products go back to stock (e.g. "Cancelled", "Returned").

There is also a reserve action: the products are held for the order without leaving the sellable pool permanently — useful for "Confirmed, not yet shipped". The shop settings let you reserve right when an order is created.

Editing order lines in an already written-off order adjusts stock by the difference automatically.

Order statuses with the stock segment control: write off, reserve, neutral, return

Warehouses

Without the Warehouses module everything works against one default warehouse created automatically. With the module installed the ledger integrates with it: each variant's per-warehouse quantities stay the source of truth, and a Movements page shows the journal of every stock change with its reason (order, manual correction, import).

Availability check at checkout

When enabled in the shop settings, the checkout verifies stock server-side: if someone bought the last piece a second earlier, the customer sees an honest "not enough stock" message instead of a phantom order.

Weight-based (packaging) products

Products sold "in packaging" share one stock pool in base units: each variant is a prepackage (0.5 kg, 1 kg…), and a sale deducts prepackage × quantity from the pool for all variants at once.

The toggle sits next to the Active switch on the product form; hovering it shows a short reminder of this model. Enable it only when the variants are different amounts of the same thing — not for colors or sizes.