Home/Modules/Inventory & Expiry
📦

Inventory & Expiry

Track every unit the way your trade needs it — batches and expiry for pharmacy, cartons and pieces for wholesale, brand and warranty for phone shops. Delta sync keeps big catalogs fast, offline.

Stock that knows what it is

A tin of paracetamol, a crate of malt and a phone case are not the same kind of thing, and QuickPOS doesn't pretend they are. Products carry the fields their trade needs — and only those — so the inventory stays clean and searchable across catalogs of 100,000 items and more.

  • Pharmacy: drug class, form, generic name, manufacturer, NAFDAC number, shelf location, batch & expiry.
  • Wholesale: multi-unit conversion (carton → pack → piece) and tiered pricing bands.
  • Phone shop: brand, device compatibility and warranty tracking.
  • Everything: barcode, SKU, category, cost and price with weighted-average costing.

Batches and expiry, done properly

Batch-level expiry

Each batch has its own expiry date and quantity, so partial stock at different dates is tracked separately.

FEFO by default

The till pulls first-expiry-first-out, so older stock always leaves before newer stock.

Expiry windows

Items surface at 7, 30, 60 and 90 days out, giving you time to discount or return.

Expired-sale block

Expired batches can't be sold — the rule is enforced, not advisory.

Multi-unit selling, without the mental maths

Wholesale and drinks trades live on unit conversion. QuickPOS lets you define how many pieces are in a pack and how many packs in a carton, then sell any level with one tap while stock is deducted correctly all the way down. Pricing steps with quantity across your wholesale tiers automatically.

Grounded in the app: batch expiry, FEFO, expiry windows, expired-sale blocking, multi-unit conversion, tiered wholesale pricing, drug fields, NAFDAC, shelf location and the shared product catalog are all implemented in the inventory module.

Built to stay fast — and stay in sync

Inventory reconciles through a delta engine: instead of re-downloading the whole catalog, QuickPOS pulls only the rows that changed, by row-version and watermark. Edits you make offline are pushed first, then changed rows are pulled, so price and stock stay correct across every device without anyone tapping Sync.

See the offline engine →

Inventory FAQ

Can it handle a hundred thousand items?

Yes. Inventory uses an indexed on-device database and a delta-sync engine designed for large catalogs, so search and refresh stay fast even at scale.

How does multi-unit pricing work?

You define the conversion (pieces per pack, packs per carton) and prices per level. Selling any unit deducts stock correctly down to the base unit, and wholesale tiers apply discounts by quantity.

What is the shared product catalog?

It lets you browse items other shops have already uploaded and adopt them into your own inventory with your own price and stock — so you don't retype common products.

Does editing stock offline cause conflicts?

Offline edits queue and sync when you reconnect. If two devices change the same item, the Sync screen surfaces the conflict rather than silently overwriting.