Inventory and stock
Check levels, record adjustments and transfers, and review the full kardex of each product.
Inventory in Mosce ERP is the real-time picture of how much you have of each product and where it is. Every mutation - inflow, outflow, adjustment, transfer - is recorded in an immutable ledger you can audit at any time.
Reading time: ~5 min
When to use this
Use the inventory screen to:
- Check availability before promising a sale.
- Adjust differences after a physical count.
- Transfer merchandise between warehouses or sections.
- Investigate why a product's stock dropped (kardex).
- Detect products with low or negative stock.
Before you start
- You need at least one warehouse with an active section. See Warehouses.
- The product must be marked as "tracks stock" in its record (services do not carry inventory).
- Permissions required by action:
inventory:read,inventory:adjust,inventory:transfer. Editing the minimum and maximum thresholds requiresinventory:manage-thresholds.
Step by step
1. View stock levels
Go to Inventory in the side menu. The main table shows one row per product + section combination with:
- Product (name and SKU).
- Warehouse and Section.
- Quantity - current physical stock; the indicator turns red if it is below the minimum, amber otherwise.
- Reserved - units already committed to orders pending invoicing. They are still in the warehouse, but they are already promised.
- Available - Quantity minus Reserved: what you can genuinely commit today. If negative it appears in red.
- Min. / Max. - thresholds for low-stock alerts (configurable per item).
- Last movement - when stock was last modified.
Filter by warehouse, section, product, low stock or negative stock from the top bar. Filters are reflected in the URL so you can save or share it.
When stock is set aside and when it is released
The first three columns count different things and should not be mixed. Quantity only changes when merchandise actually moves (inflows, outflows, adjustments, transfers). Reserved changes when a commitment changes, without anything moving off the shelf.
Creating an order sets the units aside: they stop being available for another sale even though they are still physically in the warehouse. This is the full cycle:
| What you do | Quantity | Reserved |
|---|---|---|
| You create an order | No change | Goes up by what was ordered |
| You edit the order quantities | No change | Adjusts to the difference |
| You invoice the order | Goes down (real outflow) | Goes down: what was set aside becomes the outflow, it is not deducted twice |
| You cancel the order | No change | Goes down: the units are released without moving the warehouse |
| You record a return | Goes up | No change |
Returning and cancelling are not the same. A return puts merchandise back in the warehouse and does not touch what is set aside. Cancelling an order releases a reservation and does not move the warehouse. Two different operations with different effects.
If you were used to seeing the Reserved column always at zero, it now genuinely reflects what is committed. A product can have stock on the shelf and still show little or nothing available: it means those units are already promised to an order.
Negative available is valid. Sales are never blocked for lack of stock, so what is set aside can end up exceeding what you have. It is not a system error, it is a signal: review the product and reconcile the difference with an inventory adjustment.
2. Adjust stock (increase or decrease)
An adjustment sets stock to the value you indicate (it is not a delta). It is useful for physical counts, shrinkage, expired products, etc.
- On the product row, click the Adjust icon (knob). You can also go to Inventory → Adjustments → New.
- The form asks you for:
- Product, Warehouse, Section - Mosce ERP shows you the current stock below once all three are selected.
- Target quantity - the number that should remain after the adjustment.
- Reason (minimum 5 characters) - saved on the movement.
- Save. The adjustment is processed asynchronously in a queue: you will see the item updated within seconds.
If the target quantity is negative, Mosce ERP shows a warning to confirm your intent. The system allows negative stock (oversell) so it does not block sales, but it is worth reviewing and replenishing.
Do you need to reconcile many products at once (for example after a full physical count) and have accounting record the loss or overage? Use the batch adjustment: a single document with several lines, one reason why and a confirmation. See Batch inventory adjustments.
3. Transfer between warehouses or sections
- Go to Inventory → Transfer → New or from the Transfer icon on the product row.
- Select the product, source warehouse/section and destination warehouse/section. Source and destination cannot be the same.
- Enter the quantity (must be greater than 0) and an optional reason.
- Save. Mosce ERP generates two atomic movements: an outflow (
TRANSFER_OUT) at the source and an inflow (TRANSFER_IN) at the destination.
4. View the kardex (movements)
The kardex is the complete, append-only history of every stock change. It is never edited or deleted.
- Go to Inventory → Movements.
- Filter by warehouse, section, product, movement type or date range.
Types you will see:
| Type | Meaning |
|---|---|
Inflow | Purchase receipt. |
Outflow | Confirmed sale. |
Adjustment | Physical count or other manual adjustment. |
Transfer in/out | The two legs of a transfer. |
Reservation | Units set aside when an order is created or increased. |
Release | Units returned to available when the order is cancelled or invoiced. |
Each row shows date, type, product, section, quantity (signed), balance after the movement, the user who caused it and the reason.
5. Low stock and negative stock
- Low stock: define a
minper item. Mosce ERP marks the cell and you can filter byLow stockfrom the main table. - Negative stock: go to Inventory → Negative stock to see all products in oversell. Each row includes the suggestion to generate a purchase order to replenish.
6. Inventory valuation
Mosce ERP computes unit cost with the weighted-average method. Each time you receive a purchase, the item's lastCost is recomputed as:
new_cost = (prev_stock * prev_cost + received_qty * purchase_cost) / total_stockSales and adjustments do not alter cost. Only purchase receipts move the average. Mosce ERP does not currently support FIFO or specific cost.
7. Edit the minimum and maximum thresholds
Each product can have a minimum and a maximum stock level. The minimum feeds the low-stock alerts (the cell is marked and you can filter by Low stock); the maximum serves as a reference so you do not over-buy.
- Open the product record or the inventory row and edit the Min. and Max. fields.
- Save. The new thresholds apply immediately to the alerts.
Editing these thresholds is protected by the inventory:manage-thresholds permission, separate from the permission to adjust stock. This way you can let a user count and adjust inventory without granting them the power to change the alert levels.
Expected result
- You know exactly how much there is of each product in each section.
- Any difference against the physical count is explained by an adjustment with a reason.
- The kardex lets you reconstruct how the current balance was reached from zero.
- Products with low or negative stock are visible before they turn into lost sales.
Common errors
No inventory record exists for this product/section combination- the product has never had stock in that section. Receive a purchase or make a transfer first, or create the item with an adjustment.The source and destination sections cannot be the same- choose a different section for the destination.- The adjustment is not reflected instantly - adjustments go through a queue; wait a few seconds and refresh. If it takes more than a minute, contact support.
Insufficient stockwhen selling - check whether the quantity is set aside by another order pending invoicing.- I have the merchandise but it shows as unavailable - it is set aside by an order. Look at the Reserved column and review that product's pending orders.
Related
Moving a warehouse to another branch
How to reassign a warehouse to a different branch or clear it to no branch, what happens to its stock, and what can block it.
Batch inventory adjustments
Adjust several products and sections in a single document, with a reason, a draft and a confirmation step, and its accounting effect of loss or overage.