> ## Documentation Index
> Fetch the complete documentation index at: https://ecommos.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage stock and waybills

> Receive stock, transfer to delivery agents, and track balances and movements.

# Manage stock and waybills

Inventory tracks stock across your store and delivery agent locations, and connects stock movement to delivery reality.

## Stock locations

Stock sits at locations:

* Your **store** (primary holding)
* **Delivery agent locations**

Each location has its own balance per product. The system never treats "stock" as a single global number — it always knows where the units are. For managing the delivery agents themselves (adding them, coverage areas, performance), see [Manage delivery agents](./delivery-agents).

## Receive stock into your store

1. Open **Inventory**.
2. Receive stock into your store.
3. Enter product, quantity, and optional cost metadata.
4. Confirm.

The system records a `RECEIVE_HQ` movement and updates the store balance.

## Transfer stock with waybills

To move stock from your store to a delivery agent (or between any two valid locations), create a waybill:

1. Open **Inventory** → **Waybills**.
2. Create a new waybill.
3. Pick source location, destination location, product, and quantity.
4. The system validates stock at the source.
5. Submit. The system records a `DISPATCH_OUT` movement.

When the destination confirms receipt:

1. Open the waybill.
2. Confirm receipt.
3. The system records a `RECEIPT_CONFIRM` movement and updates both balances.

If a waybill is lost or cancelled, cancel it. Stock returns to the source balance.

## Adjust stock

If a count is off, adjust the balance:

* **Increase** — record an `ADJUSTMENT_INCREASE` movement with a note.
* **Decrease** — record an `ADJUSTMENT_DECREASE` movement with a note.

Adjustments are visible in the movement history. Use them for corrections, not for normal operations.

## How inventory connects to orders

* **Dispatch** validates stock at the chosen delivery agent location.
* **Delivery** decrements stock at the location that actually delivered (recorded as `ORDER_DELIVERED_DECREMENT`).
* Inventory movements tied to orders include the order context, so you can trace any stock change back to its cause.

This is why stock is not decremented at dispatch time. If you dispatch and the order is returned, no stock was touched. Stock truth follows delivery truth.

## Movement types

| Type                        | What it means                             |
| --------------------------- | ----------------------------------------- |
| `RECEIVE_HQ`                | Stock received into your store            |
| `DISPATCH_OUT`              | Stock moved out via waybill               |
| `RECEIPT_CONFIRM`           | Destination confirmed waybill receipt     |
| `ORDER_DELIVERED_DECREMENT` | Stock removed when an order was delivered |
| `ADJUSTMENT_INCREASE`       | Manual correction up                      |
| `ADJUSTMENT_DECREASE`       | Manual correction down                    |

## What's next

* [Hand off confirmed orders to deliveries](./deliveries)
* [Bundle products with combos](./combo-products)
* [Understand the order lifecycle](../getting-started/order-lifecycle)
