Skip to main content

Stock & Inventory

The Stock & Inventory module provides comprehensive stock management tailored for pharmaceutical retail. It supports batch tracking, expiry date management, schedule-based product categorisation, and automated reorder alerts — all critical for regulatory compliance and operational efficiency.

Access Stock & Inventory from the Pharmacy group in the sidebar.

Product Catalogue

Your product catalogue is the foundation of both POS and inventory. Each product record includes:

FieldDescription
Product NameDisplay name used in POS and reports
NAPPI CodeNational Pharmaceutical Product Interface code
BarcodeScannable barcode for POS lookup
ScheduleRegulatory schedule classification (S0 through S8)
CategoryProduct grouping (e.g. analgesics, antibiotics, OTC, surgical)
Unit of MeasureHow the product is counted (pack, bottle, unit, strip)
Reorder PointMinimum stock level before an alert is triggered
Preferred SupplierDefault supplier for reorder suggestions

Products can be imported in bulk via CSV or added individually through the product detail view.

Batch Tracking

Pharmaceutical stock management requires batch-level traceability. Each stock receipt creates a batch record with:

  • Batch number — as printed on the product packaging
  • Expiry date — used for FEFO (first expiry, first out) dispensing
  • Quantity received — units added to stock
  • Supplier — which supplier delivered this batch
  • Cost price — purchase cost per unit for this batch

When stock is dispensed through POS, the system automatically selects the batch with the earliest expiry date.

Expiry Date Management

Expired or near-expiry stock is a critical concern for pharmacies. AtlasOS provides:

  • Expiry alerts — configurable warnings at 30, 60, or 90 days before expiry
  • Expiry dashboard — a consolidated view of all products approaching their expiry date
  • Write-off workflow — document and remove expired stock from active inventory with an audit trail
  • Supplier return tracking — log products returned to suppliers for credit
warning

Dispensing expired products is a regulatory violation. The POS will flag expired batches during checkout, but it is the pharmacist's responsibility to ensure expired stock is removed from shelves and written off promptly.

Stock Levels and Alerts

Stock levels are updated in real time as sales, receipts, and adjustments are processed. The alert system notifies you when:

  • A product falls below its configured reorder point
  • A batch is within the configured expiry warning window
  • A stock discrepancy is detected (e.g. negative stock from unreconciled adjustments)

Alerts appear in the Smart Inbox and on the Pharmacy dashboard.

Stock-Take Procedures

Periodic stock-takes ensure physical stock matches system records:

  1. Generate a stock-take sheet from the inventory module
  2. Count physical stock by location and batch
  3. Enter counts into the system
  4. Review variances — the system highlights discrepancies
  5. Approve adjustments with a reason code (e.g. breakage, theft, counting error)

All adjustments are logged with the user who approved them and the reason provided.

Schedule-Based Categorisation

South African pharmaceutical products are classified by schedule (S0 through S8). AtlasOS uses this classification to:

  • Enforce pharmacist sign-off for higher-schedule products at POS
  • Filter and group products in reports
  • Support regulatory compliance reporting for controlled substances
  • Restrict access to schedule-sensitive product information by user role