๐ฆ Items & Inventory
How to add a new Item
Every product you sell needs one Item record. Setup takes 30 seconds for a basic item, longer if you use variants or batches.
- Open Items โ Item List โ + New Item (or click the search bar โ + New)
- Fill mandatory fields: Item Code (auto-generated if you leave blank), Item Name, Category, UOM (Pcs / Kg / Ltr), Sales Price, GST Rate (0/5/12/18/28)
- Optional: HSN Code (mandatory for GST > โน1.5cr turnover), Barcode, MRP, Brand, Reorder Level
- Click Save. Item appears in POS + Purchase pickers immediately.
Barcodes & label printing
If your item doesn't have a factory barcode, generate one and print thermal labels.
- Go to Items โ Item Label Print
- Search + tick the items you want labels for
- Pick label size: 40ร25mm (2 per row), 50ร30mm (single), or 80mm receipt strip
- Set quantity per item (default 1 per SKU; type higher for bulk stock)
- Click Print. Browser print dialog opens โ send to your Zebra / TVS / Godex thermal printer.
ITM-001).Units of measure & multi-UOM
Buy in one unit, sell in another. Example: buy Coca-Cola in cartons of 24 bottles, sell in single bottles.
- On the Item form, expand Multi-UOM section
- Add rows: Base UOM = Bottle (1:1). Purchase UOM = Carton (conversion 24 = "1 Carton = 24 Bottles")
- Set Default Purchase UOM = Carton, Default Sales UOM = Bottle
- Save. Now PO auto-shows Carton in supplier's language; POS sells in Bottles.
Physical stock count (cycle count)
Reality check your on-hand quantity โ post the difference as an adjustment. Once a month at minimum; weekly for high-shrink categories.
- Open Stocks โ Physical Stock Take โ โถ Start Count
- Pick Store + optionally filter by Category (e.g. only Dairy for a focused count)
- System snapshots current on-hand โ generates a worksheet. Print or use on tablet.
- Count physically. Scan each item's barcode + enter counted qty. Enable Add-to-count mode to scan shelf-by-shelf without resetting.
- Review the variance table. Green = match. Yellow = overage. Red = shortage.
- Click Review & Post. Adjustment ItemLedger entries auto-post. Inventory table refreshed.
Ad-hoc stock adjustments
For expiry write-offs, damage, or opening-stock loads (not from a physical count).
- Stocks โ Item Journal โ + New Line
- Pick Item + Store. Pick Entry Type: Positive (add) / Negative (remove) / Transfer
- Enter quantity + reason (Damage / Expiry / Sample / Opening-Load)
- Click Post. Item Ledger + Inventory + GL (via Adjustment account) all update.
Reorder / auto-replenishment
Set a Reorder Level on each item. When on-hand drops below it, the item shows on Stocks โ Replenishment Queue โ with a suggested order qty based on your sales velocity.
- On the Item form: set Reorder Level (e.g. 10) and Reorder Quantity (e.g. 50)
- Optional: enable ARS (Auto Replenishment System) at Stocks โ ARS Setup โ sets levels by category based on last-30-day sales
- Visit Stocks โ Replenishment Queue daily. Tick items โ Convert to PO. Draft PO opens with your default vendor.
Allow Negative-Stock Sales (per-item flag)
Every Item has an Allow Negative-Stock Sales toggle on the Flags row (Item form โ Flags). Default OFF โ POS refuses any sale that would drive Inventory.QtyOnHand at this store below zero. Sale rolls back cleanly with:
Item PARA500 has only 3 in stock at this store; line needs 15. Reduce line qty, receive stock, or tick the item's "Allow negative-stock sales" option.Tick ON per-item for:
- Services โ no physical stock (Delivery Charge, Consultation Fee, Repair Fee)
- Made-to-order items you accept payment for before the item exists
- Back-orders where you sell now and receive stock later
- Composite items that unpack via BOM at EOD (parent goes negative, children replenish)
Interaction with TrackInventory:
TrackInventory = 0โ no guard at all (item isn't inventory-tracked)TrackInventory = 1+AllowNegativeStock = 0โ STRICT block (default for new items)TrackInventory = 1+AllowNegativeStock = 1โ allow negative
Item.AllowNegativeStock BIT NULL DEFAULT 0 (migration 502). Guard runs in POS sale-post BEFORE line insert โ no partial commits.Batches & expiry (pharma, dairy, packaged food)
For items where different batches have different expiry dates, enable batch tracking on the Item form: Track Batches = Yes, Track Expiry = Yes.
- GRN (receipt): prompts for batch number + expiry date per line
- POS sale: FEFO (first-expiring-first-out) auto-picks the batch. Manual override available.
- Expiry Report: Reports โ Expiry Report โ shows items expiring in the next 30/60/90 days.
Item Ledger (full movement history)
Every stock movement โ purchase, sale, transfer, adjustment โ creates an ItemLedgerEntry. Trace where every unit came from and went.
- Open Stocks โ Item Ledger List
- Filter by Item + Store + Date range
- Each row shows: Entry Type, Document No, Qty, Remaining Qty (for open receipts), Source
- Click โค Excel to export for further analysis or share with auditor.