Skip to content

Restock stock

There are two ways to add stock to a product in Fexl Lite: the ad-hoc restock dialog for one-off arrivals, and receive a purchase order for the formal flow with landed cost. This page covers ad-hoc — the quick path you reach from the product row.

Updated 4 May 2026·For v2.2.0·5 min read #44 v1.6.100

Two paths in

Pick the right one before you start — they post different things to the books.

  • Ad-hoc restock (this page). One product, one cost, one supplier (optional). No freight, no landed-cost split. Use it for top-ups, small reorders from the corner shop, or a sample box that arrives without paperwork.
  • Receive a purchase order. Multi-line, with extra costs (freight, customs, handling) that auto-allocate by weight or value into per-unit landed cost. Use it whenever you raised a PO in advance — that flow is the only way landed cost gets baked into your FIFO layer correctly.

If you’re unsure: did you click Create Purchase Order earlier? Receive the PO. Did stock just show up? Restock ad-hoc.

The ad-hoc restock flow

1

Open the product row

Go to Products, find the row, and open its action menu. Pick Restock. The same product can also be restocked from Inventory via its history page when the action is configured there.

2

Pick a variant if the product is variable

Variable products require you to choose which variant you’re adding stock for — the dropdown lists every variant with its current price. You cannot add stock to a variable product without picking a variant; the server rejects it.

3

Enter quantity and cost per unit

The cost field is per unit, not the total invoice amount. The dialog shows two suggestion chips under the cost input — Last (the cost you used on the most recent restock) and Avg (weighted average across all past restocks). Click either to fill the field, or type your own. A live “New avg” preview appears once both fields are valid.

inventory · ad-hoc restock dialog
4

Optional: pick a supplier and mark as paid

Select an existing supplier or type a new name to create one inline. If you tick Mark as Paid, you can enter the amount you actually handed over — leave it blank to settle the full cost x quantity. Skip the supplier entirely for stock that arrived without a vendor (transfer in, owner contribution).

5

Confirm

Press Confirm Restock. The button stays disabled until quantity and cost are both positive — that’s the guard against accidentally posting a zero-cost layer.

Variants, batches, serial

The dialog shape changes with the product’s tracking mode:

  • Variants — pick which variant before entering quantity and cost. Each variant has its own FIFO layers; restocking the “Red / Large” variant doesn’t affect “Blue / Small”.
  • Batched — you must enter a lot/batch number. If the product is configured to track expiry, the date is required; otherwise it’s optional. Batched products use inventory_batches rows alongside the FIFO layer.
  • Serialised — enter the quantity first, then fill in one identifier (IMEI, serial, etc.) and one cost per row. Each unit can carry a different cost — there’s no “fill all” shortcut, by design, because two phones from the same supplier often arrive at different prices.

Common gotchas

The cost is per unit, not total

If the supplier invoice says 100 x 5.00 = 500.00, enter 5.00 in the cost field — not 500. The “New avg” preview is your sanity check: if it jumps wildly, you typed the total.

Past sales can affect what FIFO walks next

Older layers drain first. If a product was sold many times before you restocked, your new layer may not relieve any COGS for a while — that’s correct, not a bug. To inspect which layer is open, check the product’s inventory history page.

Defect-only products go elsewhere

Stock you receive back from a customer in defective condition lands in Defect Inventory, not regular stock. The restock dialog is for new sellable units — don’t try to use it to log returns.

A zero or empty cost is blocked

Confirming with cost = 0 used to silently zero out the WAC. The button now stays disabled unless both quantity and cost are positive. If you genuinely received a free sample, use the dedicated Stock Adjustment path (or note “free sample” and use a near-zero cost like 0.01 until that flow ships).