Expiry losses
Stock is picked by convenience rather than expiry date, so short-dated batches sit at the back until they have to be written off.
Industries · Pharmaceutical
In pharma, every unit has a batch number, an expiry date and a quality status. We implement Odoo or build custom modules so that information travels with the stock from receipt to the customer, and back if a recall is needed.
Pharmaceutical ERP software manages the purchasing, production, storage, distribution and sale of medicines with every movement tied to a batch or lot, its expiry date and its quality status. For distributors, manufacturers and pharmacies it connects these records to sales, purchasing and accounting, so the business can answer which batch went where, which stock is near expiry and what may legally be sold, from one system instead of registers and spreadsheets.
Stock is picked by convenience rather than expiry date, so short-dated batches sit at the back until they have to be written off.
When a batch is questioned, finding every customer who received it means searching invoices and delivery notes by hand.
Goods awaiting QC release are stored alongside released stock, relying on labels and staff memory to keep them apart.
Trade offers, bonus quantities and distributor discounts are calculated outside the system, causing margin and claim disputes.
Sales representatives take orders from pharmacies and clinics on paper or messaging apps, delaying dispatch and credit checks.
Inspection results, deviations and supplier documents are filed separately, making audits and reviews slow to prepare.
The batch number captured at receipt follows the stock through quality, storage, sale and dispatch.
Orders are raised to approved suppliers based on stock levels, sales forecasts and lead times.
Goods are received by scanning, with batch number, manufacturing and expiry dates captured per line.
Received batches sit in quarantine until quality checks are recorded and an authorized user releases them.
Released stock moves to the right storage zone, and picking suggests the batch that expires first.
A distributor, pharmacy or hospital order is checked against credit limit, license validity and stock.
Picked batches are recorded on the delivery note and invoice, so each customer's batches are known.
Any batch can be traced back to its supplier and forward to every customer that received it.
Batches approaching a set number of days to expiry are flagged for priority sale, transfer or return to supplier.
Stock in quarantine or rejected status cannot be reserved or picked for a customer order.
Reordering rules propose purchase orders when stock falls below minimum levels for each product and warehouse.
Orders from customers with expired licenses or exceeded credit limits are held for approval.
Only designated QA users can release or reject a batch, and each decision is recorded with the user and time.
Changes to batch data, stock, prices and quality records are logged, supporting internal reviews and inspections.
Warehouse, sales, QA and finance each see the functions they need; prices and margins stay restricted.
Map current receiving, QC, storage and dispatch steps, and work with your QA and regulatory team to define which requirements the system must support.
Product masters, units, pack sizes and opening batches with expiry dates are verified before import.
Set up locations, FEFO rules, quality steps and approvals, then test with real batch scenarios, including a mock recall.
Run a single site or branch end to end before extending to other warehouses, plants or pharmacies.
Train each role on its own screens and document procedures so they can be referenced in your SOPs.
Official documentation and guidance if you want to read more about this topic.
At minimum it should track every stock movement by batch or lot with its expiry date and quality status, and link those movements to purchasing, sales and accounting. That allows FEFO picking, near-expiry control and tracing any batch to the customers who received it.
Odoo can support many pharma operations: lot and serial tracking, expiration dates, FEFO removal, quality checks, manufacturing and multi-warehouse inventory. Sector-specific needs such as trade schemes, customer license checks or particular QC workflows are typically added through configuration and custom modules.
No software makes a company compliant on its own. Requirements such as GMP, data integrity rules and local regulator expectations must be assessed with your QA and regulatory team; the system can support them with batch traceability, controlled approvals and audit trails, and any validation needed is planned with you.
Because the batch is recorded on receipt, production and every delivery, a report can list all customers and quantities that received a given batch, along with the stock still on hand, so a recall can start from facts rather than a paper search.
Yes. Pharmacy branches can sell through point of sale with batch and expiry tracked on stock, receive transfers from a central warehouse and report sales into the same accounts, though dispensing-specific requirements should be reviewed individually.
Yes, with configuration or customization. Schemes such as bonus units, slab discounts or distributor-specific pricing can be applied on orders so the cost of each scheme is visible per customer and product.
Next step
Tell us whether you distribute, manufacture or dispense, and how batches are tracked today. We'll show how it maps onto Odoo and what your QA team should review.