Pharmacies and chemists
Expiry is money. Crystaline ERP tracks batches with expiry dates on items that need it, sells in strips or packs from the same stock, keeps exempt and standard-rated lines straight, and runs patient accounts for institutions and insurers that pay later.

What the product does for a pharmacy
Available now
Batches and expiry
Items flagged as expiring carry batches with an expiry date. Goods are received into a batch, sales and transfers take from a batch, and the Batches tab on the item shows what is left of each. Batch and expiry travel with stock transfers between branches.
Available now
Strips, packs and pieces
One item, several pack sizes: a box of 100, a strip of 10, a single tablet. Each pack has its own barcode and price; stock is kept in the base unit. Decimal quantities are allowed where an item needs them.
Available now
VAT-exempt and zero-rated lines
Tax codes per item (standard, zero-rated, exempt) flow into the receipt, the VAT report and eTIMS signing. Prices can be entered gross or net.
Available now
Controlled and serialized items
Items can be flagged as controlled or serialized, so a sale records the serial or needs the right. The audit trail shows who sold what, when.
Available now
Accounts for institutions
Clinics, schools and companies buy on account with terms and limits. A patient reference can be captured on the sale. Statements and aging follow the usual credit workflow.
Available now
Ordering
Reorder levels and order quantities per item, purchase orders to distributors, goods received against them with batch and expiry, supplier invoices and payments.
Typical setup for a pharmacy
- Server
- A PC in the shop or a hosted account; one or two tills in a browser or the desktop till app.
- Items
- Imported from your supplier price list or current system (xlsx or csv) with opening stock; batches entered on the first receipt.
- Add-ons
- KRA eTIMS signing; M-Pesa receipt matching; scheduled report emails.