Stock in ZORT
Two numbers
Every product carries stock and availablestock, and they are usually different.
The reference documents them as "Stock" and "Available Stock" and says nothing more. It does not define what makes stock unavailable. There is also a separate endpoint, UpdateProductAvailableStockList, that sets available stock directly, so the gap between the two is not necessarily order allocation. Someone may have set it by hand.
Treat availablestock as the number ZORT thinks you can sell and stock as the number on the shelf. Before you build anything that depends on the difference meaning something specific, check it on your own account: place an order, do not ship it, and watch which number moves.
Stock is per warehouse
There is no global stock figure. Every stock operation requires a warehousecode, and zort_list_products reports levels for the warehouse you name. Run zort_list_warehouses first if you do not have the code.
Which adjustment mode
zort_adjust_stock takes a mode, and the choice matters more than it looks. Some changes are not adjustments at all:
| situation | use |
|---|---|
| physical count | zort_adjust_stock, mode set |
| goods received against a purchase order | zort_receive_purchase_order |
| goods received with no purchase order | zort_adjust_stock, mode increase |
| stock moved to another warehouse | zort_create_transfer |
| damage, shrinkage, samples | zort_adjust_stock, mode decrease |
If a purchase order exists, receive against it. An increase gets the shelf right and leaves the PO showing the goods still outstanding, so the next person receives them a second time. A move between warehouses works the same way: a transfer is one document with both ends, while a decrease and an increase are two unrelated edits. The purchasing guide covers both.
set overwrites. If a count says 40 and an order takes 6 units between your reading the shelf and writing the number, set: 40 throws that away. Use increase and decrease for anything that is a change, and keep set for the moment you genuinely know the absolute number.
Each line needs a sku or a product_id. You can pass cost on a line to update unit cost at the same time.
zort_adjust_stock(
warehousecode: "WH1",
mode: "increase",
stocks: [{ sku: "P-CABLE-3M", stock: 24, cost: 18.50 }]
)
Watch the SKUs that matter
A catalogue of 5,000 products is not something to pin, but a handful is. Add a product asset for the SKUs where running out actually costs you, usually the ones listed across several channels or with long restock lead times.
Not documented: marketplace sync
Whether adjusting stock in ZORT pushes the new level out to connected marketplaces is not in the API reference. What the docs describe is the inbound direction, marketplace to ZORT to API. Outbound sync looks like platform behaviour rather than an API guarantee.
If your workflow needs marketplace listings to reflect a stock change, confirm it on your own account first.