Most allocation in Qoblex happens without anyone pressing Allocate. Qoblex reserves stock when an order becomes active. It hands new stock to orders that are waiting for it, and it takes stock back when there is no longer enough to cover what is reserved.
This article explains each of those triggers, which orders get stock first, and what keeps an order out of automatic allocation. Afterwards you will be able to predict where stock goes, and understand why your available stock or your store’s stock level changed. For allocating an order by hand, see Allocate stock to a sales order.
How allocation affects available stock
Allocating reserves stock for an order. It does not move it. For each product and location:
Available = On hand − allocated to sales orders − buffer
Available stock is what other orders can still take, and it is the number Qoblex sends to Shopify and WooCommerce. So every automatic allocation below lowers the stock level your store shows, and every release raises it.
Once an order has allocations, Qoblex tops it up at the location or locations those allocations use. An order with no allocations yet is allocated at its shipping location. Stock that arrives at another warehouse does not reach it. The exception is a new Shopify or WooCommerce order, which can be allocated across several locations when it is imported (see below). To move an order’s reservations to another warehouse, use Change Location on the order’s Pending shipment screen. See Allocate stock to a sales order.
Stock status: where an order stands
Each open order has a stock status, shown on the Sales list. Qoblex recalculates it every time the order’s allocations change.
| Stock status | What it means |
|---|---|
| Ready To Ship | Every line is fully allocated. The order can be shipped. |
| Awaiting Stock | At least one line is not fully allocated. These orders are the ones automatic allocation looks for. |
| On Hold | The order was put on hold from the Sales list with Put On Hold, and holds no stock. |
| Fulfilled | Everything has shipped, been returned or been canceled. |
| Not Applicable | The order is a quote or canceled. Neither holds stock. |
When an order becomes active
A quote never holds stock. An order is allocated when it becomes an active order:
- Created in Qoblex. Choosing Create Order on a quote allocates it. Selecting a quote on the Sales list and choosing Bulk Actions > Allocate also turns it into an order and allocates it.
- Close Order. On a quote or an open order, Close Order allocates, dispatches and invoices every remaining line in one step. See Sales order statuses and actions.
- CSV import. Imported orders are created and allocated straight away.
- WooCommerce. New orders are allocated from the locations you chose under “Which locations to fulfill WooCommerce sale orders from?”, in the order set by the priority arrows. See WooCommerce locations, currency, and price lists.
- Shopify. New orders are allocated from the Shopify location each item is assigned to, through your location mapping. Qoblex re-allocates the order whenever Shopify fulfils it or moves, holds, releases or reroutes its fulfilment. See How Shopify refunds, returns, and fulfillment sync.
- Amazon. New orders are allocated when they are imported.
- B2B portal. An order a customer places in the portal arrives as a quote and is not allocated until you turn it into an order, for example with Create Order.
If there is not enough available stock, Qoblex allocates what it can. The order is then Awaiting Stock.
When stock comes in
Any stock increase makes Qoblex look for orders waiting for that product. That includes:
- authorizing a goods receipt (GRN) on a purchase order
- authorizing a stock adjustment or stocktake that raises a quantity
- receiving a stock transfer (at the destination)
- authorizing a customer return that puts stock back
- canceling a shipment that was already dispatched
- completing an assembly or disassembly that produces the product
After the stock is saved, a background job allocates it to open sales orders that contain the product and are Awaiting Stock. It goes through them in the order they were created in Qoblex, oldest first. Each order takes what it can from its own location, until the stock runs out.
Orders linked to a purchase order go first
A goods receipt adds one step before the background job. In the same step as the receipt, Qoblex allocates every open sales order linked to the purchase order, in full:
- Only links made from the purchase order count. That means orders the purchase order was created from with Create Purchase Order, and orders linked with Link an order on the purchase order. A link added from the sales order’s own Link an order button does not.
- The linked order takes stock at its own location, and it can take stock that was already on the shelf, not just the received units.
- A linked order is allocated even when it is on hold. This is by design: the purchase order was raised for it, so it gets the stock first.
- Linked quotes and canceled orders are skipped.
- Drop-ship purchase orders are skipped.
See Clear open sales orders before you receive stock for how to prepare before a delivery.
When stock goes out
A stock decrease can leave a location with more stock reserved than it has on hand. That can come from a supplier return, a stock adjustment that lowers a quantity, a transfer out, or components used in an assembly. When it happens, a background job takes stock back from the newest orders first, one whole line at a time, until the decrease is covered.
- It can release more than strictly needed, because it releases whole lines.
- Orders that lose stock become Awaiting Stock. They are allocated again at the next stock increase, not straight away.
- Products that are not tracked, or that allow selling when sold out, are never released this way.
When you change an order
| You… | What happens to allocations |
|---|---|
| Change a line’s quantity, or add a line, and save | Qoblex re-allocates the order straight away. Held lines stay on hold. |
| Delete a line | Qoblex releases that line and re-allocates the rest of the order. Held lines are allocated again. |
| Choose Edit on an open order (revert to quote) | Qoblex releases all of the order’s stock. It is allocated again when you choose Create Order. |
| Cancel the order (More actions > Cancel Order) | Qoblex releases all of the order’s stock. |
| Cancel a dispatched shipment | Qoblex puts the stock back and re-allocates the order. |
| Authorize a return on the order | Qoblex re-allocates what the order still needs. |
What keeps an order out of automatic allocation
The background job described above only allocates orders that are Open or Invoiced and Awaiting Stock. It skips:
- quotes and canceled orders;
- closed orders;
- orders whose stock status is On Hold, Ready To Ship or Fulfilled.
To keep an order waiting without it taking new stock, select it on the Sales list and choose Bulk Actions > Put On Hold. This releases its stock and sets its stock status to On Hold.
The Put On Hold button on the order’s Pending shipment screen holds the order’s allocations, but leaves its stock status as Awaiting Stock. So the background job still allocates it. Use the Sales list action when you need the order to stay out.
There is no setting that turns automatic allocation off or changes its priority. It runs the same way for every company.
When automatic allocation pauses
Two actions switch automatic allocation off while they run, so the stock they move is not handed to other orders at the same time:
- Bulk Actions > Deallocate on the Sales list. The released orders become Awaiting Stock, and the released stock stays available until the next stock increase. That increase allocates them again unless you put them on hold.
- Bulk Actions > Ship with Adjust inventory to cover these orders. The stock it creates goes only to the selected orders. See Clear open sales orders before you receive stock.
Troubleshooting
My store shows less stock than I have on the shelf
An order is still Awaiting Stock after I received stock
Check three things:
- Is the stock at the order’s own location? Stock received at another warehouse does not reach it.
- Did older orders, or orders linked to the purchase order, take the stock first?
- Is the order on hold? The background job skips held orders. Allocate it by hand. See Allocate stock to a sales order.