Mass inventory lets you correct the balances of several products in one warehouse. Count the actual quantities by warehouse slot and enter a new total quantity for each row. Spotilla allocates the changes to purchase batches according to the warehouse's inventory usage principle.
This guide covers the browser's Mass inventory function. Product Inventory on Android and iOS handles a separately selected purchase batch. If you want to choose the batch to correct yourself, use batch-specific inventory.
Before taking inventory
The warehouse feature must be enabled. You need permission to read products, access to the warehouse you are working with, and permission to take inventory. In the Manager role, inventory permission is granted through the Edit permission for warehouses or warehouse events. Read-only access is not sufficient.
The warehouse must have warehouse slots. Mass inventory displays product and warehouse slot combinations associated with a purchase batch. Rows with a zero balance may also be included. Deleted and deactivated products are excluded. This function does not add a product to a new warehouse slot. Record any missing receipt as a receipt or purchase event.
Agree on how product receipts, issues and other balance changes will be handled while inventory is being taken. The new balance is compared with the balance at the time of background processing, which may differ from the quantity shown when the table was opened.
Select a warehouse and filter the products to count
- In the browser navigation, open Manage warehouses → Products.
- Open Actions in the header of the product table's checkbox column and select Mass inventory. You do not need to select product rows: selections in the product table do not determine which items this function processes.
- In the form that opens, select the warehouse to work with in the Warehouse field. The project warehouse Projektilla is not included in the selection.
- If needed, use the Search by warehouse slots, Search by product category, Search by product name and Search by product code fields in the Optional filters section. Without filters, all eligible rows in the warehouse are retrieved. The name filter also searches the product's additional name; the name and code filters can match parts of a name or code. All specified filters apply together.
- Select Continue and wait for the rows to load. If no products match the filters, the inventory table closes. Start again and check the filters.
Enter new warehouse slot balances
Each row represents one product in one warehouse slot. The same product may appear on several rows if it is stored in several slots. Balance in warehouse slot is the product's total quantity in that slot. Click the row's New balance cell and enter the counted total quantity in the product's storage unit, such as pieces or metres. Do not enter the difference or the quantity of just one purchase batch.
For example, if a slot contains two batches of 4 and 6 pieces, the slot balance is 10. If the counted total quantity is 7, enter 7 as the new balance. Spotilla reduces the quantity by a total of 3 pieces.
Zero is an allowed new balance. Blank or negative values, and values equal to the current balance shown in the table, are not submitted for processing. You can enter the reason for the correction in the row's Description cell; the description is optional and has a maximum length of 512 characters.
If a row should not be included in the inventory, leave its New balance blank, clear it, or remove the row using the trash icon on the right. The trash icon removes the row from this inventory request, not the product or its warehouse information.
Shared values and checking rows
You can filter the rows displayed in the table using the filters below the column headers. Above the table, Set the same product quantity for all fills in the same new balance for the filtered rows, including those on other pages of the table. Description for inventory transactions fills in a shared description for those rows. These values replace any previous entries on the affected rows. Clearing a shared field does not clear values already filled in on the rows; clear them row by row if needed.
In the Show only selected items menu, you can select Rows that will be sent or Rows that will not be sent. Rows that will not be sent also include unchanged and invalid quantities.
Filtering does not exclude rows with values already entered from the inventory. Submission also includes rows hidden by filters if their new balance is valid and has changed. Finally, remove the filters and check all rows included in the submission. The count on the Inventory … products button means the number of product–warehouse slot rows to process, not the number of pieces being counted or necessarily the number of distinct products.
Which purchase batches receive the change?
The warehouse's Inventory usage principle determines the allocation. Batches are ordered by their receipt time:
- FIFO: reductions start with the oldest batch. Increases are allocated to the newest batch.
- LIFO: reductions start with the newest batch. Increases are allocated to the oldest batch.
If needed, a reduction continues through subsequent batches of the same product in the same warehouse slot. Nothing is deducted from empty batches. An increase is applied to one batch, which may already be empty. In mass inventory, you do not select the batch yourself.
If the oldest batch contains 4 pieces and the newer batch contains 6, reaching a new slot balance of 3 requires a reduction of 7 pieces. With the FIFO usage principle, the old batch is set to zero and the newer batch to three. This creates two inventory events. The quantity of each event is the new balance of that batch, so the quantities on the event rows should not be interpreted as quantities to deduct.
The balance of the default batch created by the system cannot be increased through inventory. If an increase is automatically allocated to that batch, the change fails; record the additional products as a new purchase or receipt. Reservations may also prevent a balance reduction if the new quantity is insufficient for ongoing or future reservations.
Effects on balances, history and values
Inventory updates the slot's total balance, the current quantities of the processed batch rows, and the purchase batch statuses. If the new quantity of a product row received directly into a batch exceeds its original quantity, Original number of products is also increased to match the new quantity. The original quantity of a row created by a transfer, which starts at zero, is not increased in this way.
A batch's status is determined by all its product rows: All used when their current quantities are zero; Partially used if at least one row's quantity is below its original quantity; otherwise Received. Setting a balance to zero does not delete the product, batch or previous events. New warehouse and batch history events are saved for the correction.
The FIFO/LIFO inventory usage principle is a separate setting from Inventory valuation principle, whose options are FIFO and MAC. Under FIFO valuation, a quantity change affects the value at the allocated batch's purchase price or its applicable manually set current value.
Inventory that increases a balance recalculates the product's weighted average purchase price. The calculation is (previous total quantity × previous average price + added quantity × purchase price of the allocated batch) ÷ (previous total quantity + added quantity). Only the added quantity is included. The total quantity covers the product throughout the company and also includes products at reservation sites; it is not limited to the slot being inventoried. Inventory that reduces a balance does not itself change the average price.
For example, a previous total quantity of 10 pieces at an average price of €5/piece, plus 2 additional pieces found during inventory in a batch with a purchase price of €8/piece, gives a new average price of (10 × 5 + 2 × 8) ÷ 12 = €5.50/piece. The unweighted average purchase price is a separate value: each purchase batch has equal weight in it, and an inventory increase is not a new purchase batch.
In MAC warehouses, a change in the average price also affects existing balances of the same product in other warehouses. A manually set current value overrides the MAC value when valuing that batch, but the average price calculation for an inventory increase uses the batch's purchase price. Average purchase prices are displayed to two decimal places; the calculation uses more precise values. For more details, see how warehouse value and product cost price are determined and viewing purchase batches and purchase prices.
Submit and verify the result
- Check the rows, new balances and row count on the button. Select Inventory … products and accept the confirmation prompt.
- Wait for background processing. The notification Operation will be performed in the background, this may take a moment means the request has been received, not that all rows have been completed. Average purchase prices are calculated separately after the balances have been processed; a new snapshot of warehouse value history is created during the regular nightly calculation.
- In the Products table, open the product details using the row's pencil icon and select the Warehouse balances tab. Check the quantity in the correct warehouse and in each inventoried slot.
- On the product's Warehouse events tab, check the Inventory events created and their descriptions. A reduction split across several batches may create several events from one inventory row. You can also find events for the entire warehouse via Manage warehouses → Warehouses in the navigation, on the Warehouse events tab.
A request may be completed only partially: an error does not undo events already saved, and even a reduction for a single slot row split across several batches may remain incomplete. Do not immediately resubmit the entire inventory. First check the current slot balances and completed events, investigate the cause of the error and, if needed, perform a new inventory only for the rows that require correction. For help investigating, see investigating warehouse events and balance errors.