Use a warehouse event when products arrive at a warehouse or are issued as a sale. Receiving increases the balances of the selected warehouse slots and creates a new purchase batch. A sale deducts products from the purchase batches in the selected slots.
If you are receiving a purchase order, receive it through that order so that its delivery status is also updated. A direct Buy to warehouse event does not update the purchase order. See receiving a purchase order.
Before recording an event
The warehouse feature must be enabled. You need permission to view the products and warehouses involved, as well as permission to edit warehouse events. Permission to view events alone is not sufficient to buy or sell. Warehouse restrictions affect which warehouses you can record events in.
The product and target warehouse slot must already exist. Enter the quantity in the product's stock unit. In addition to checking the physical goods, check that the product, warehouse and slot are correct: the balance for the entire warehouse does not tell you how much of the product is in the selected slot.
Receiving in the browser
- Open Manage warehouses → Warehouses and select the Warehouse events tab. Select Buy to warehouse from its toolbar.
- In the Product to buy section, select a product and enter the No. of products. The quantity must be greater than zero.
- Check the Product price taken from the product register. If needed, enter a Discount or an Alternative price as described below.
- In the Target warehouses section, select the warehouse, warehouse slot and quantity to receive into it. If needed, add another allocation row using the section's Add new warehouse button. A row can also refer to another slot in the same warehouse.
- Check that the quantities on the allocation rows add up to the total quantity on the form. The same warehouse and warehouse slot must not appear on more than one row in the same receipt. The product's default slot may be filled in automatically, but check the allocation.
- If needed, open View batch information in the same section, fill in the batch details and select Save on that form. This returns the details to the receiving form; the receipt is only recorded when you select Buy on the main form.
All allocation rows in the receipt belong to the same new purchase batch. A separate receiving event and batch product row are created for each slot. The rows of a standard receipt are saved together: if saving one row fails, the receipt is not recorded partially.
Purchase batch details and receiving time
Alternative batch number helps identify, for example, the supplier's batch. It is separate from the customer number used for sales. You can enter details that clarify the receipt in the Additional info field.
Products received at includes the date and time. It defaults to the current time. The time you enter is also saved in the history of the receiving events and batch rows, and affects retrospective price and warehouse value history calculations. Selecting a date does not delay the balance increase: balances change when the receipt is saved.
Expiry date and its associated email notification allow expiry reminders according to the notification settings. The date alone does not determine the recipients or notification time. Selecting a notification requires an expiry date. The expiry date itself does not reduce the balance or prevent sales.
If you change the receiving time, the form may warn you about later events where products could not be deducted because there was insufficient stock. Check these events before continuing. A new receipt does not automatically retry earlier deductions. Investigate the entire sequence of events and the actual remaining quantity before making any inventory adjustment. See investigating a balance discrepancy.
How is the price of a receipt or sale calculated?
For a standard receipt, the starting price is the purchase price in the product register; for a sale, it is the selling price in the product register. Without an alternative price, the event's unit price is starting price × (1 − discount / 100). An empty discount means zero. If the starting price is missing, the calculation uses zero.
Alternative price means the price of one stock unit, not the total amount for the event. It replaces the starting price and the discount calculation. In the browser, discount and alternative price are mutually exclusive options. The event price does not change the default price in the product register.
For example, 10 units with a purchase price of €20 and a discount of 10% give a unit price of €18 and a total of €180. If you enter an alternative price of €17, the price used is €17 per unit and the total is €170.
The unit prices of batch rows and batch events are saved to two decimal places. The saved event's total price is calculated from these unit prices and quantities. When values with more decimal places are entered, the calculation on the form may therefore differ slightly from the saved total.
Receiving multiple products: Mass purchase transaction
Open Manage warehouses → Products. Select products using the checkboxes in the table, then select Mass purchase transaction from the Actions menu in the checkbox column.
- If the action displays a selection form, select Use the selected rows from the product table or Select an Excel file for the purchase transaction. With the Excel option, you can download a template. Its columns are in this order: product code, warehouse name, warehouse slot name, quantity and purchase price.
- Check the products and target slots found. Excel does not create new products. If product codes cannot be found, the form asks whether to continue with only the products found. Correct the missing codes if those products are also part of the receipt.
- For each row, enter a positive quantity, a warehouse, a warehouse slot and a Buy price of at least zero. Here, the price is the unit price used directly; the discount calculation for standard receipts is not applied.
- You can use the common quantity, price, warehouse and warehouse slot options above the table. They change multiple rows, so check the result on each row. Changing the warehouse clears the slot selection. Remove any row you want to exclude using the trash icon on its right.
- Check that no product–warehouse–warehouse slot combination is repeated. The unit price for the same product must be the same in every slot within this receipt. If the same product arrives at different prices, record separate receipts.
- If needed, open View batch information at the top of the form. Check the shared batch details and record the receipt using the Buy button.
The product selection search processes up to 5,000 products. In Excel, this limit applies to distinct product codes. Split larger receipts into smaller parts and always check the product list that appears on the form. The search used when selecting all rows in the product table is limited to products you have permission to edit; the product search for Excel receipts uses viewing permission and requires permission to buy.
A mass receipt creates a shared purchase batch, but the entries are processed in the background. The background processing notification confirms that the request has been received, not that all rows have been completed. Some rows may be saved even if others fail. Check all products being received, slot balances and batch rows before retrying, so that quantities already recorded are not received twice.
Selling in the browser
- Select Sell from warehouse from the toolbar on the Warehouse events tab.
- In the Product to sell section, select a product and check its selling price. If needed, enter a discount or an alternative unit price.
- In the Selling from warehouses section, select the source warehouse, warehouse slot and quantity to issue from it. If needed, add another row using the Add new warehouse button. Check that each source slot has a sufficient balance.
- In the Customer information section, fill in the required Customer name. Customer number and Contact name are optional. The customer name and customer number can each contain up to 50 characters.
- If needed, add a description for the event, then select the form's Sell button.
A sale uses the purchase batches in the selected slots according to the warehouse's product usage method: FIFO starts with the oldest batch by receiving time, and LIFO with the newest. The deduction may be split across multiple batches. The usage method is separate from the warehouse value calculation method.
Both the slot balance and the quantities in the available purchase batches must be sufficient. The balance in another slot does not automatically cover a shortage in the selected slot. The rows of a standard sale are saved together; a failed row prevents the entire sale from being saved. Recording a sale saves a warehouse event and customer information, but this does not mean that an invoice has been created or sent to the customer.
Receiving and selling on Android and iOS
Open a product from the app's Products list. Expand the Actions section in the product details using its arrow button, then select Buy Product or Sell Product.
Buy Product: select a warehouse and warehouse slot, and enter the quantity to receive. Leave Use default purchase price enabled to use the purchase price from the product register. Disable it to enter your own unit price. In both apps, your own price and the quantity must be greater than zero. Select Save on the form.
Mobile receiving applies to one slot at a time and creates a new purchase batch with the current time as its receiving time. These forms do not let you select a backdated receiving time or the basic purchase batch details available in the browser, or enter a discount for the receipt. If needed, record this type of receipt in the browser.
Sell Product: select the source warehouse and slot, enter the quantity to issue and, if needed, a discount. Fill in the customer name and, optionally, the customer number, contact name and description. Select Save. Sales in both apps use the selling price from the product register and the discount; the forms do not offer the browser's alternative selling price. The requirements for sufficient slot and batch balances, and FIFO/LIFO deductions, work as they do in the browser.
Checking and correcting the result
In the browser, open Manage warehouses → Warehouses. On the Warehouse balances tab, check the new quantity for the product and slot; on the Purchase batches tab, check the received batch and its remaining quantities; and on the Warehouse events tab, check the entry's product, quantity, time and price. If a backdated event is not visible, check the date range filter in the event list. For a mass receipt, check every row after background processing.
Receiving increases the balance and selling reduces it. As a batch is used, its status changes from received to partially used and then depleted. Depletion does not delete the batch or its event history.
Price and Event value are separate values: the first shows the purchase or selling price, and the second shows the change in warehouse value. For example, the selling price may differ from the value of the products removed from stock.
Receiving starts the calculation of average purchase prices in the background. MAC, or moving average cost, is calculated for the product across all warehouses, so a receipt can also change the valuation of the same product elsewhere. A backdated receipt may affect later average prices and warehouse value history. An updated balance therefore does not yet mean that all value calculations are complete. See calculating warehouse value and viewing purchase batches and average purchase prices.
A saved warehouse event cannot be edited afterwards. Investigate the cause of the error before correcting it. An inventory adjustment reconciles the selected batch's quantity with the actual balance and saves a new event; it does not delete earlier history or replace standard receiving. If the quantity is correct but the receiving price is wrong, correct the purchase batch price instead of the balances. For more detailed investigation instructions, see investigating a balance discrepancy.