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:
| Field | Description |
|---|---|
| Product Name | Display name used in POS and reports |
| NAPPI Code | National Pharmaceutical Product Interface code |
| Barcode | Scannable barcode for POS lookup |
| Schedule | Regulatory schedule classification (S0 through S8) |
| Category | Product grouping (e.g. analgesics, antibiotics, OTC, surgical) |
| Unit of Measure | How the product is counted (pack, bottle, unit, strip) |
| Reorder Point | Minimum stock level before an alert is triggered |
| Preferred Supplier | Default 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
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:
- Generate a stock-take sheet from the inventory module
- Count physical stock by location and batch
- Enter counts into the system
- Review variances — the system highlights discrepancies
- 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