You receive a purchase order, the stock goes into Qoblex, and your Shopify or WooCommerce store still shows the same stock level as before. Nothing is broken. The new stock was reserved for sales orders that were still waiting for it, so none of it was left over to sell.
This article explains why that happens and what to do before you receive a delivery, so the stock you receive ends up on sale in your store. It also covers orders you already shipped outside Qoblex that are still waiting for stock in Qoblex.
Why your store’s stock level did not change
Your store shows available stock, not the total you have on hand. For each location, Qoblex works out available stock as:
On hand − allocated to sales orders − buffer
That is the number Qoblex sends to Shopify or WooCommerce. See How Shopify product and inventory sync works and How WooCommerce product and inventory sync works.
When you authorize a goods receipt (GRN) on a purchase order, the received stock goes into inventory, and Qoblex allocates it in two passes. A draft receipt does not move stock.
- Sales orders linked to the purchase order go first. In the same step as the receipt, Qoblex allocates every sales order linked to that purchase order. See Sales orders linked to the purchase order below.
- Then every other waiting order. Straight after the receipt, a background job looks for open sales orders that contain the received products and have the stock status Awaiting Stock. It allocates whatever stock is left to those orders, in the order they were created in Qoblex, oldest first.
For more on every trigger, see When Qoblex allocates stock automatically.
Here is an example:
- You have 0 units of a product, and 40 units on open sales orders that are Awaiting Stock.
- You receive 50 units on a purchase order.
- Qoblex allocates 40 of them to the waiting orders.
- Available stock goes from 0 to 10, so your store shows 10, not 50.
If those 40 units are on old orders that are never going to ship from this stock, your store shows less than you can actually sell. Old orders like this are very common. Some are orders you already fulfilled in your store, some are abandoned, and some are duplicates.
Sales orders linked to the purchase order
A sales order is linked to a purchase order when:
- you created the purchase order from the sales order with Create Purchase Order. See Create purchase orders from a sales order.
- you linked the sales order from the purchase order, with Link an order in the purchase order’s Related Orders card. See Related orders, notes, attachments, and history.
- the link was made through the API from the purchase order.
Only links made from the purchase order count. A link you add from the sales order’s own Link an order button shows on both orders, but receiving the purchase order does not allocate that sales order first. It waits its turn in the background pass like any other order.
When you authorize the receipt, Qoblex allocates each linked open sales order in full, for everything it still needs to ship:
- It uses the sales order’s own location, not the location you received into. Stock received at another warehouse does not reach it.
- It can take stock that was already on the shelf, not just the units on this receipt, because it covers the whole order.
- It allocates the order even when it is on hold. This is by design. You raised the purchase order for these orders, so they get the stock first, whatever their stock status. The hold is released and the order takes the stock.
- Linked quotes and canceled orders are skipped.
- Drop-ship purchase orders are skipped. The supplier ships to your customer directly, so no stock comes in.
Before you start
- Know which products and location the purchase order will bring stock into.
- Have access to the Sales list. To use Adjust inventory to cover these orders, you also need access to Adjustments. Without that access, the option is not shown.
Step 1: Find the orders waiting for stock
- Open the Sales list.
- Open the filters and set Filter by stock status to Awaiting Stock. For more on filtering, see Find and filter sales orders.
- Look for orders that contain the products you are about to receive.
- Open the purchase order and check its Related Orders card. Every open sales order linked from this purchase order takes stock first, whatever its stock status and even when it is on hold, so it may not appear in the filtered list. These are the rows with an arrow pointing right. A row with an arrow pointing left was linked from the sales order and waits its turn like any other order.
For each order, decide which of these three cases it falls into.
| The order is… | What to do |
|---|---|
| A real order that should get this stock | Leave it. It gets allocated when you receive the stock, and it ships from your delivery. |
| Already shipped to the customer, for example fulfilled in Shopify, but still Awaiting Stock in Qoblex | Ship it in Qoblex with Adjust inventory to cover these orders (Step 2). |
| No longer wanted, or should not take stock yet | Put it on hold, or cancel it (Step 3). If it is linked to the purchase order, also remove the link (see Sales orders linked to the purchase order). |
Step 2: Close orders you already shipped
Sometimes an order was fulfilled in your store, but Qoblex never had the stock on record to ship it. That order stays Awaiting Stock in Qoblex, and it is in line for your next delivery, ahead of newer orders. Close it in Qoblex before you receive the stock.
- On the Sales list, tick the orders you already shipped. You can select up to 25 orders at a time.
- Open Bulk Actions and choose Ship.
- In the Ship orders? dialog, tick Adjust inventory to cover these orders.
- Select Ship.
Qoblex shows Adjusting stock and shipping the selected orders. This runs in the background, you can keep working. When the run finishes, it shows The selected orders have been adjusted and shipped. If some orders could not be shipped, Qoblex opens a Ship – orders skipped dialog that gives a reason for each order.
What Qoblex does when it adjusts and ships
- It works out what the selected orders are missing. For each product and location, it adds up how much the selected orders still need beyond what they already hold. Then it subtracts the stock that is already available there.
- It creates the missing stock. For each location, it creates and authorizes a stock adjustment with the reason Adjust & ship. The adjustment appears with your other adjustments and posts to your inventory accounts like any authorized adjustment. It is valued at each product’s moving average cost. If that cost is 0, for example for a product you have never received, the adjustment and the order’s cost of goods are valued at 0.
- It allocates that stock to the selected orders only, then packs and ships them. Automatic allocation is switched off during the run, so the adjustment cannot be taken by any other order that is waiting for stock.
- It does all of this in one step. If anything fails after the adjustment is made, the whole run is undone. No adjustment is kept and no orders change. Qoblex then shows Oops! Something went wrong while adjusting stock and shipping the selected orders. No orders were changed – please check the activity feed for more details.
In the usual case, the product has no available stock when you run this. The adjustment then matches what the orders take, and the shipment uses it up straight away. The stock you then receive on the purchase order stays available, and Qoblex syncs it to your store.
Orders the adjust-and-ship run skips
Qoblex does not ship an order, and lists it in the Ship – orders skipped dialog, when:
- the order is not Open or Invoiced, or it has already been fulfilled;
- the order has held allocations (Release the hold before shipping.);
- the order is allocated across more than one location;
- the order contains a bundle (Bundles cannot have their stock adjusted automatically.);
- the order contains a batch- or serial-tracked product, which needs its batches chosen before shipping. Ship these orders one at a time from the order itself. See Shipments: picking, packing, and dispatch.
Products that are not tracked in inventory, or that allow selling when sold out, get no adjustment. They ship as they are.
Step 3: Hold or cancel orders that should not take the stock
The background pass only allocates received stock to orders that are Awaiting Stock, so orders on hold and canceled orders are skipped. Linked orders are the exception (see Sales orders linked to the purchase order).
- Put On Hold orders that should keep waiting but must not take this delivery, for example an order you are still confirming with the customer. Select them on the Sales list, then choose Bulk Actions > Put On Hold. Holding an order also releases any stock it already holds, and its stock status becomes On Hold. See Allocate stock to a sales order. A hold does not protect an order linked to the purchase order; remove the link instead.
- Cancel orders the customer no longer wants. There is no bulk cancel: open each order and choose More actions > Cancel Order. Canceling cannot be undone. See Sales order statuses and actions.
Step 4: Receive the purchase order
Now receive the goods as usual. See Receive goods and manage GRNs.
When you authorize the receipt, Qoblex first allocates the sales orders linked to the purchase order. Then it allocates what is left to the orders that are still Awaiting Stock, oldest first. It sends whatever remains to your store as available stock.
Troubleshooting
I already received the stock and my store still did not update
The received stock has already been allocated to open orders. Find the orders that took it:
- Orders that received all the stock they need now show Ready To Ship.
- Orders that received only part of it stay Awaiting Stock, but now hold some stock. Open them to check their allocations.
Then fix them by type:
- Orders that should not have taken the stock. Put them on hold (Bulk Actions > Put On Hold), which releases their stock. The released stock becomes available again and syncs to your store. For orders you are canceling, open each order and choose More actions > Cancel Order. Canceling releases their stock.
- Orders you already shipped outside Qoblex. At this point, Adjust inventory to cover these orders does not help. Qoblex uses the stock that is already available before it creates any new stock, so it would still use up the stock you received. Ship these orders in Qoblex anyway so they close. Then correct your on-hand count to match what is actually on the shelf, with a stock adjustment or a stocktake. See Adjustments and stocktake overview.
Adjust inventory to cover these orders is not shown
The option appears only if you have access to Adjustments. Ask an account admin for access.
Qoblex also skips the dialog completely when every selected order is already Ready To Ship, Fulfilled, or is a quote or a canceled order. In that case it ships them with the stock they already hold.