What it does
A stocked-item catalogue with quantity on hand, sale price, barcode, photo, and per-item GL account mapping. By default an item is costed on a simple weighted-average as stock is received; turning on Track Batches for an item switches it to lot-tracked FIFO instead - each receipt keeps its own cost and expiry date, and a sale consumes the oldest lot first, so cost of goods sold reflects exactly what that unit cost rather than a blended average. An item can also be marked Sold by Weight for produce, deli, or bulk goods weighed at the register - the item's Unit becomes the weight unit (kg, lb, g), and Point of Sale prompts for a weight instead of adding one fixed unit per tap; a bulk CSV import can set this per row too, with the same weight-unit convention. Items can be marked unlimited (services, made-to-order work) or unlisted (kept in the books but hidden from the POS grid). Optional Product Details (brand, category, country of origin, weight, dimensions, units per case, tags, storage notes) round out the catalog for anyone who wants it, and a promotional price (with a start/end date) or a scheduled future price change can be set per item, taking effect automatically without manual on/off toggling. Sending stock back to a supplier has its own Return to Vendor action, separate from a stock-count adjustment — it reduces what you owe the vendor (or records money/credit coming back) and never touches Cost of Goods Sold, since nothing was sold or lost. And any historical receive, adjustment, or shrinkage entry can be undone with a "Reverse this movement" action on the item's page — it posts a proper offsetting entry and restores the quantity, for fixing a bad count, a wrong-cost data-entry mistake, or anything else that shouldn't have hit the books the way it did.