Skip to main content
Omnilinker keeps one stock level for each product in each warehouse. Inventory > Stock Levels lists them, and every change to a stock level that you make in Inventory is recorded as a movement on Inventory > Stock Movements. You need at least one warehouse; see Set up inventory. Stock levels show your catalog products, so the products must exist in the catalog first; see Products.

How stock is counted

Each stock level has a status, worked out from these quantities and its thresholds, in this order: See Thresholds for the reorder point and the maximum.

The Stock Levels list

Open Inventory > Stock Levels. The list shows 50 stock levels per page. Rows with Low Stock, Out of Stock or No Stock are highlighted. Click a column heading to sort.

Find stock levels

  • Search: the search box finds products whose SKU or name contains your text.
  • Filters: opens the filters, grouped into Status, Quantity (Min quantity, Max quantity, and Show all products (including unstocked) once a warehouse is chosen), Scope (Warehouse) and Classification (Brand, Category, Tags with Match all or Match any). Click Apply filters, or Reset all to clear them. The Advanced mode builds conditions joined by AND or OR instead.
  • ERP stock read: a drop-down beside Filters, shown while the page has ERP stock. Choose any time, or more than 6 h ago, more than 24 h ago or more than 72 h ago, to list only the stock levels in warehouses whose ERP stock was last read that long ago or has never been read. See ERP stock beside yours.
  • Not in a location: a button beside Filters, shown when locations are switched on for your organization and you may see them. It lists only the stock levels whose product has stock in no location of its warehouse: on hand less what its locations hold and what is picked for orders, above zero, such as a delivery not put away yet. Click it again to turn it off.
  • Active filters: shows each filter as a chip, such as ERP stock read more than 24 h ago; click a chip’s × to remove it, or Clear filters to remove all.
Show all products (including unstocked) appears only after you choose a Warehouse: it adds the catalog products that have no stock level in that warehouse yet, with zero quantities. Use it to give a product its first stock; see Adjust stock.

Saved views

With the Save filters permission, + Save current filter in the Views row saves the current filters as a view. Give it a name, and optionally a description, and choose whether it is your default view. Click a view’s chip to apply it, or its bin icon to delete it after confirming “Delete view ”…”?”. A view saved with Not in a location opens without that filter for someone who cannot see locations: a message says so, and the view’s chip is not highlighted, since the list is not quite the view. The labels in the save dialog are not translated yet: they show technical names such as SavedFilters:SaveFilterModal:NameLabel. The fields are, in order, the name (required), the description and the default-view tick box.

Export to Excel

Open Data > Export Excel to download the stock levels that match your search and simple filters, up to 50,000 rows, as stock-levels-<date>-<time>.xlsx. The file has a row per stock level with the product, brand, category, warehouse, every quantity, the thresholds, the status, whether the product is discontinued, and the notes. An Advanced filter and Show all products (including unstocked) are not applied to the export. The ERP stock read filter is applied, but the file has no ERP columns. Not in a location is applied too. If the export fails, the page says “Couldn’t export the file. Try again or narrow your filter.”

The product inspector

Click a row, or its product’s name, to open the product inspector beside the list; click a row’s tick box to select it instead, and its ⋯ for the row’s menu. From the keyboard, Tab to a product’s name and press Enter; the up and down arrows move between the rows’ names. The inspector shows the product’s picture, name, SKU and EAN, and its On hand, Reserved and Available in the row’s warehouse. ‹ and › step to the previous and next row of the page, “3 of 50” says where you are, Open product ↗ opens the product across warehouses, and × or Esc closes it and takes you back to the row. When the list is read again without the row (after a filter or a change), the inspector says “This product is no longer in the list” and ‹ and › stop. While the inspector is open the list makes room for it: the SKU moves under the product’s name, the Warehouse and ERP columns and the thresholds under each name are hidden, and the toolbar’s buttons show only their icons (point at one for its name). Closing the inspector brings them back. On the Locations tab:
  • Not in a location is highlighted while it is not zero. When orders booked before picking or a change for your ERP explain part of it, its parts are listed under it, as on the product’s Locations panel. Put away opens that panel’s Move form, from Not in a location, with the quantity filled in.
  • Move between locations and Count a location open the same panel on its Move or Count a location form. Print label prints the labels of the locations the product lies in, as the Locations page prints them. Each button needs its own permission: Move stock between locations, Count a location, and Manage zones and locations to print.
  • Today in this product’s locations lists what happened today in this warehouse, newest first: units moved between locations, a count that corrected a location, units put back from an order, damaged units written off, and units received (they arrive in Not in a location until someone puts them away), with who did it. A location deleted since shows the code it had. Picks are not listed yet.
The tab’s totals always add up to on hand: moving between locations changes no quantity, so it is allowed on a warehouse your ERP manages too.

ERP stock beside yours

When an Omnilinker warehouse is mapped to a warehouse in your ERP (see Lists and mappings), Omnilinker shows the ERP’s stock next to its own (a cell reads not read yet until the ERP Sync agent has sent it): in the ERP stock column of Stock Levels, in the same column of the product’s page across warehouses (shown once the ERP has a figure, or not read yet, for the product), and as a line on each warehouse’s card (see Warehouses). A product shows ERP stock when it is linked to an ERP product on the connection; see Link products. An organization with no ERP connection sees none of it.
On a warehouse Omnilinker manages, the ERP’s stock is shown for comparison only: channels use Omnilinker’s stock, and nothing is copied from the ERP into your stock levels. Hover over a cell to read “Shown for comparison. Channels still use Omnilinker’s stock.” On a warehouse your ERP manages, the figures of the connection that manages it are where the warehouse’s stock comes from: the tooltip says “Managed by ‹connection›. Read 5 min ago.”, and a line under the figures shows how the ERP’s available stock becomes what your channels get, for example “available in ‹connection› 10 − reserved in Omnilinker, not in ‹connection› yet 3 = available to channels 7”. See Warehouses whose stock comes from an ERP.
A cell shows: Hover over the cell to read the formula (“Available in the ERP = on hand − reserved − held by documents being edited.”), the comparison note and the exact read time (“Read …”) in your organization’s time zone. When the connection has a name, it is shown above the figures; a warehouse that two connections map shows one set of figures per connection. Other things you can see in the cell:
  • not read yet: the agent has not finished reading the connection’s stock. A cell the agent has not reached yet shows only not read yet. While the first complete read is under way (or keeps failing part way), a cell it has already delivered shows its figures, compared with yours, and the age beside them says not read yet until that first read ends.
  • not in the ERP’s last list: the ERP’s last list of stock does not carry this product in this warehouse. The figures read as 0, and a product the ERP has never reported there gets no row of its own.
  • —: Omnilinker has no ERP figure to show. The product is not linked to an ERP product on the connection, or the warehouse is not mapped, is ignored on the connection, or is mapped to more than one ERP warehouse of it.
On a product’s page across warehouses, a warehouse where the ERP reports the product but you hold no stock level appears as a row with the ERP’s figures only and — for yours; it offers Adjust, which creates the stock level. A stock line deleted in Wapro reads 0, without the “not in the ERP’s last list” label, until the agent’s next daily complete list, and until then may also appear as such a row.

Stock only the ERP holds

Stock Levels lists those products too. A product the ERP reports in a mapped warehouse where you hold no stock level appears as a row marked only in ‹connection› (or only in the ERP), with 0 in your columns, status No Stock and the ERP’s figures in ERP stock; it is not highlighted as an alarm. Only products linked to an ERP product and carried by the ERP’s last list of stock with some stock (on hand, reserved or held by documents) appear, and only catalog products Omnilinker already knows.
  • These rows come after your stock levels. They follow your sort when you sort by SKU, Product or Warehouse, and are sorted by SKU otherwise.
  • The search, Warehouse, Brand, Category, tag and ERP stock read filters apply to them as to your rows. A Status filter without No Stock, or an on-hand range that leaves out 0, hides them.
  • Adjust stock creates the stock level, and the row then lists as yours; transfers, reservations, counts, thresholds and movements appear once it exists (View across warehouses is available at once). With Show all products (including unstocked) on for a warehouse, they are listed among that warehouse’s unstocked rows instead, which the Status, tag and on-hand filters do not narrow.
  • The Advanced filter and the export list your stock levels only.
Use the ERP stock read filter to find stock that has not been read lately; it keeps the stock levels of warehouses whose ERP stock was last read more than 6, 24 or 72 hours ago, or never. The agent reads stock from Wapro every 5 minutes while a warehouse of the connection is mapped, and sends only what changed, so the ages are normally a few minutes. If they grow, see Monitoring and Troubleshooting.

Change stock

Each row’s ⋯ menu holds the actions for that stock level: A product listed through Show all products (including unstocked) has no stock level yet, so its menu offers only Adjust stock, Transfer and View across warehouses. Every change opens a dialog that names the product and warehouse, previews the result, and records a movement when you save. The dialog closes by itself once the change is saved, except the adjustment dialog, which shows the new balance until you click Close.

Adjust stock

Use an adjustment for any change that isn’t a count or a transfer: goods received, damaged or lost stock, returns, internal use, or opening stock.
1

Open the dialog

Click ⋯ > Adjust stock on the row. You can also tick a row and click Adjust stock in the toolbar. With no row ticked, a message says “Select a product to adjust, or use Filters → pick a Warehouse and enable “Show all products” to add stock to an unstocked product.”
2

Enter the quantity

Quantity is the change, not the new stock level: 5 adds five units, -3 removes three. It can’t be 0. The preview shows BEFORE, DELTA and AFTER.
3

Choose the reason

Pick a Reason code: Damaged Goods, Stock Count Correction, Customer Return, Internal Use, Shrinkage, Initial Stock Setup or Other. Add a Description (audit trail), up to 2,000 characters.
4

Save

Click Save adjustment.
The movement is a Positive Adjustment or a Negative Adjustment. Its Reference column shows the reason code by its internal name, such as DamagedGoods or Shrinkage. The dialog’s title stays Adjust stock up whichever way you adjust. A positive adjustment of a discontinued product is refused; you can still remove its stock.

Write off damaged or lost stock

Omnilinker has no separate scrap action. Adjust the stock down with the reason Damaged Goods or Shrinkage, and say what happened in the description. The movement types Scrap, Receipt, Shipment and Return appear in filters, but nothing in Omnilinker records them yet.

Record a count

1

Open the dialog

Click ⋯ > Record count. The Cycle count adjustment dialog opens.
2

Enter what you counted

Type the units on the shelf into Physical count. The dialog shows System on-hand and the Variance between them. Reference starts as COUNT- followed by today’s date; change it if you number your counts. Add Notes if needed.
3

Apply

Click Apply count adjustment. On hand becomes the counted quantity.
The movement is a Count Adjustment with the reason “Physical count”. Its Qty is the counted quantity, not the difference.

Transfer between warehouses

1

Open the dialog

Click ⋯ > Transfer on the row of the warehouse the stock is in. On the product’s cross-warehouse page, click Transfer from.
2

Choose the warehouses

From warehouse starts at the row’s warehouse, and To warehouse at another warehouse. They must differ: the dialog says “Source and destination must differ” otherwise.
3

Enter the quantity

Enter the Quantity, more than 0, and optionally a Reference, such as a delivery note number.
4

Transfer

Click Initiate transfer.
The transfer happens at once: the units leave the source and arrive at the destination together, as a Transfer Out movement in one warehouse and a Transfer In movement in the other. Only available units can be transferred, so reserved units stay put. The destination gets a stock level for the product if it had none.

Reserve and release stock

Orders reserve their stock by themselves; see Orders and stock. Reserve by hand to hold units for something Omnilinker doesn’t know about, such as a phone order.
1

Reserve

Click ⋯ > Reserve. Enter the Sales order # the units are for and the Quantity, then click Reserve N units. Reserved goes up and available goes down; on hand doesn’t change. You can’t reserve more than is available.
2

Release

When the units are no longer needed, click ⋯ > Release reservation. Quantity to release starts at everything reserved; lower it if needed, add Notes, and click Release N units.
Reservations made by hand and by orders add up to one Reserved quantity. A check that runs every hour puts back units that orders still hold, so release only what you reserved yourself.

Thresholds: reorder point, safety stock and maximum

Each stock level has its own thresholds. A new stock level takes the default reorder point, safety stock and maximum from Administration > Settings > Inventory > Defaults; its reorder quantity starts at 0, whatever the default reorder quantity is. See Set up inventory. To change one stock level’s thresholds, click ⋯ > Edit thresholds. Each field shows the organization default under it as “Tenant default: …”. Click Save. If the values contradict each other, the dialog says “Safety stock cannot exceed reorder point” or “Reorder point cannot exceed maximum stock level”.

The product across warehouses

⋯ > View across warehouses opens the product’s page in Inventory. It shows the totals across all warehouses (On hand, Reserved, Available, On order, In transit), a bar showing how the stock is spread over the warehouses, and Per-warehouse balance, a row per warehouse with Adjust, Transfer from and Count. The bar warns when more than half of the stock is in one warehouse. Low-stock notifications link to this page. The + Stock action button at the top doesn’t open anything yet: use the buttons on each warehouse’s row. On order and In transit stay at 0: nothing in Omnilinker fills them yet.

Orders and stock

Orders change stock by themselves:
  1. A confirmed order reserves its stock: reserved goes up and available goes down.
  2. The reservation turns into a deduction when the order reaches a Sent- or Delivered-type status, or when someone chooses Convert stock in the order’s actions menu. On hand goes down by the ordered quantity and the reservation ends. See Orders.
  3. Cancelling the order releases what it still reserves. If its stock was already deducted, the units go back on hand.
Reservations, releases and deductions made by orders change the stock level, but they are not listed on Stock Movements. Putting units back on hand is: cancelling an order whose stock was deducted records a Positive Adjustment with the reason “Order restock”, and changing the lines of such an order records a Positive Adjustment or Negative Adjustment with the reason “Order line change”. The Reference is the order number. Order lines without a warehouse use the default warehouse. An order can reserve more than is available; available then goes below zero, and Omnilinker raises a Blocked negative-stock attempt alert if your plan includes stock alerts.

The Inventory dashboard

Inventory > Dashboard, with the Dashboard permission, shows what needs attention:
  • tiles for Warehouses (active / total, when you have more than one), Total SKUs (stock levels), On hand, Reserved and Low stock;
  • Stock status mix: how many stock levels have each status;
  • Top alerts: up to eight open stock alerts; see Low-stock alerts;
  • Recent movements: the last eight movements;
  • Warehouses snapshot: a tile per warehouse with its stock levels and how many are low or out;
  • Cross-module sync health: whether Inventory’s copy of your catalog products is up to date. Orphan ProductIds counts stock levels whose product Inventory doesn’t know yet; such products show as “Product not yet synced”. With the Settings permission, Run reconciliation now refreshes the copy. It doesn’t read stock from your ERP; Stock Levels no longer has a Sync from ERP button.

Movement history

Open Inventory > Stock Movements to see every recorded movement, newest first, 50 per page. Movements can’t be edited or deleted; a correction is a new movement. Table and Timeline switch the view. Timeline groups movements by day, with each day’s units in, units out and net change. To narrow the list:
  • Date: Last 30 days when the page opens. Choose Last 7 days, Last 90 days, This month, Last month, Year to date, All time, or Custom range… with From and To.
  • Cluster: Inbound, Outbound, Reservation or System.
  • Warehouse: one warehouse, or All warehouses.
  • Product: set when you come from View movements; click its × to remove it.
  • The search box finds movements whose reference or reason contains your text. Despite its placeholder, it doesn’t search SKUs or product names; to see one product’s movements, use View movements on Stock Levels.
Clear filters removes them all. With Export Stock Movements, Export Excel downloads the movements that match.

Movement types

How long movements are kept

Movements older than the retention period are deleted every night. The period is 365 days unless your organization changes it in Administration > Settings > Inventory > Retention, which needs Manage retention settings. It can be between 7 and 3,650 days.

Allow negative stock

Stock on hand never goes below zero in Omnilinker, whatever Allow negative stock is set to. A change that would take it below zero is refused with “Stock quantity cannot be negative.” Orders are the exception only for available stock, which can go negative; see Orders and stock.

Warehouses whose stock comes from an ERP

A warehouse’s owner decides who may change its stock; see Who changes stock. When your ERP manages a warehouse (see Hand a warehouse to your ERP):
  • Its stock comes from the ERP. Each stock read of the ERP sets on hand and the ERP’s reservations of every linked product in the warehouse. A product the ERP does not report there becomes 0, after the switch and after every complete stock read. ERP stock shows where the figures came from and how old they are; see ERP stock beside yours.
  • You can’t change it here. Adjusting, counting and transferring stock in such a warehouse, at either end of a transfer, are disabled on these pages, with a lock icon next to the warehouse saying “Stock here comes from ‹connection›, so it can’t be changed in Omnilinker.” A change that gets through anyway, an import included, is refused with “Stock in ‹warehouse› comes from an ERP connection, so it can’t be changed in Omnilinker.” Reserving, releasing and editing thresholds stay available.
  • Orders still reserve stock there, and nothing is deducted in Omnilinker. Omnilinker holds an order’s stock until the ERP has the order: the order is sent to the ERP, which reserves it, and Omnilinker’s hold ends with the ERP’s next stock read, when the ERP’s own reservation takes its place. Reserved says whose reservation is whose. A deduction (an order reaching a Sent- or Delivered-type status, or Convert stock) is also kept as a hold until then: on hand changes only when the ERP reports it. See Orders to your ERP.
  • Sales channels get the ERP’s available stock minus what Omnilinker still holds. When the ERP’s stock is old, what a marketplace account sends is its choice; see When ERP stock is old.

Permissions

All these permissions are under Inventory Management; see Permissions reference.

Troubleshooting

The change would take on hand below zero, for example removing more units than are on hand. Check the current On hand and enter a smaller quantity.
A transfer or a reservation asked for more than is available. Reserved units count against it: release them first, or move fewer units.
Quantity to release is higher than the stock level’s reserved units. Lower it.
The product was deleted from the catalog, so no stock can be added to it. You can still adjust its stock down.
Someone else changed the same stock level while you were saving. In the adjustment dialog, click Reload balance to see their change and enter yours again, or Try again. In the other dialogs, close the dialog and open it again.
The dialogs show this banner with every refused change. Read the error message that came with it: it names the reason. There is no daily adjustment limit, whatever the banner says.
Inventory learns about new catalog products in the background, and a new product gets a stock level only while Auto-initialize stock for new products is on and you have a default warehouse. Use Filters > Warehouse with Show all products (including unstocked) to find it. If it shows as “Product not yet synced”, run the reconciliation from the dashboard.
The column appears once a warehouse is mapped to an ERP warehouse; until the agent has sent stock, its cells read not read yet. A — in a cell, or an amber age, has causes on the ERP side: see No ERP stock is shown in Troubleshooting.
The warehouse’s stock can’t be changed in Omnilinker; hover over the lock icon to see why. See Warehouses whose stock comes from an ERP.

Stock import

Change stock for many products at once from Excel.

Low-stock alerts

Get told when available stock reaches the reorder point.

Warehouses

Manage warehouses and the default warehouse.

Orders

How orders reserve and deduct stock.