Friday, 3:20 pm. A sales rep from a retail chain calls: an end customer is complaining about a cream — "something is floating in it." The owner of an 18-person natural cosmetics manufacturer in the Greater Poland region knows the setup — a full shelf of finished goods, 3 tonnes in stock, and one question they really don't want to hear: "which batch did you ship to this chain?"
The answer we hear far too often in these moments: "I don't know, I'll have to check — probably Monday." Meanwhile the retail chain does what it has to do — it halts sales of the entire SKU across 40 stores. Six days later, after manually digging through goods-issue notes in Comarch Optima and paper production cards, it turns out the flagged cream came from one batch that had reached three chains — but seven SKUs across twelve stores had been frozen.
Batch traceability (lot tracking, chargenrückverfolgung — pick your word) in small manufacturing isn't a topic for a conference. It's a topic for Friday 3:20 pm. And it doesn't need a 300k MES — it needs disciplined use of three fields you already have in your ERP.
What traceability actually means
In practice it's two things — two directions:
Forward: "I have raw material from batch S-2026-04-137 (a preservative from supplier X, delivered on 12 April). Which finished-product batches did it go into? Which goods-issue notes carried those batches? Which customers?" This is the question you get from the food-safety authority, from a retail chain's quality department or — increasingly often — from the customer themselves after an incident.
Backward: "I have a complained-about product from batch P-2026-08-042. Which raw materials (and which of their batches) went into it? Who weighed, who mixed, what did the quality check say?" You ask yourself this question so you can decide how much to recall — one batch or half a quarter's production.
A company without traceability recalls "just in case." A company with traceability recalls 60 kg instead of 400 kg. The difference can run into tens of thousands of złoty on a single incident — plus your reputation with the chain, which stops seeing you as "that difficult supplier where something is always off."
Minimum setup in an SME ERP
You don't need separate software. Comarch Optima, Subiekt GT, enova365 and most Polish ERPs have three fields that most companies simply don't use:
- Batch number at raw-material receipt (goods-receipt document) — assigned on delivery. Can be the supplier's number, can be your internal one in the format
S-YYYY-MM-###. - Batch number at production issue/receipt — assigned by the production order. Format
P-YYYY-MM-###. The critical bit: the production batch "knows" which raw-material batches it consumed (because they are written into the material issue). - Batch number on the goods issue to the customer — pulled from stock FIFO/FEFO and written on the document. If the goods issue has ten line items, each one carries its own batch.
Three fields. No magic. But if someone on the production floor "doesn't have time" to write down batches, the whole chain breaks and on Friday 3:20 pm you're left with Excel and paper cards. Discipline in writing down batches matters more than the choice of tool.
Only once that runs for three months without gaps does it make sense to talk about 2D barcode scanners (batch encoded on the raw-material sack — the operator scans at charging and the batch enters the system automatically), GS1-128 pallet labels or a separate traceability module on top of the ERP. Without discipline on paper, the most expensive scanner changes nothing — you just lose batches faster.
A real example — 18-person manufacturer
At one of our clients — an 18-person natural cosmetics manufacturer in the Greater Poland region, selling to three drugstore chains and online — Comarch Optima had all the fields required, but nobody filled them in. Raw-material batches lived only on sack labels, and goods issues were written against a "general stock" without any specific batch.
Their first market complaint (September 2024) cost them 6 days of frozen sales in the chain, a shelf recall of 400 kg across seven SKUs (because they didn't know which one was contaminated) and six months of relationship repair with the chain. Direct cost of the recall and disposal: around 62,000 PLN. Lost margin in the month after the event: another 40,000.
The rollout took 8 weeks. No new system — just what was already in Comarch Optima. The key moves:
- Batch numbers on every raw-material receipt, entered by the warehouse operator with a simple
S-YYMM-###scheme in a single field on the document. - Production orders in Optima with an auto-generated
P-YYMM-###batch number, linking the material issue with the finished-goods receipt. - A batch label printed on every unit and outer carton, from a printer wired into the packing station.
- A weekly report (SQL on the Optima database) — for every shipment in the last 7 days, showing the full chain: finished-goods batch → material issue → raw-material batch → supplier.
The second complaint came in March 2026. Same sales rep, same chain. The recall took 4 hours (they replied to the chain on Friday 7:30 pm), covered one batch of one SKU (60 kg instead of 400) and the chain didn't freeze sales of the other products. Direct cost: around 9,000 PLN. The chain increased orders in the next quarter, because — literally — "we can see you have this under control."
Traceability didn't prevent the incident (root cause: a batch of vegetable oil from one supplier). Traceability turned a disaster into a routine procedure.
Where to start
The sequence that works in 10–50-person companies with production:
- Week 1 — walk the path: goods receipt (raw material) → warehouse → production issue/receipt → goods issue (customer). Mark the spots where the batch gets lost. It's usually one or two specific stations.
- Week 2 — decide the batch-number format (yours or the supplier's) and who owns writing it down on the production floor. Without a named person you'll collect the same result you have today.
- Week 3–4 — ERP configuration (enable the batch field where it was hidden; flag items as "with batch / without batch"; set FIFO/FEFO issuing). In Comarch Optima that's mostly parameters on the item card.
- Month 2 — batch labels (simplest: print from Optima itself, or a separate tool for a few hundred złoty a year). Scanners can come later.
- Month 3 — a weekly traceability report and a dry-run recall (pick a random batch and reconstruct its path in under an hour). If you can't, go back to writing discipline.
The biggest trap is buying a system before fixing the process. We've seen companies pay 180,000 for a traceability module that production operators "never filled in, because they didn't have time." Eight weeks later they were in the same spot — just with an invoice.
If you produce anything that could be subject to a recall — cosmetics, food, chemicals, supplements, food-contact components, pharmaceuticals, medical devices — and you can't answer "which batch went to this customer" in an hour, the first call is free and takes half an hour. We usually leave it with a concrete list of what can be sorted out in the ERP you already have.
Traceability doesn't prevent an incident. Traceability turns an incident from "we close the warehouse for a week" into "sorry, we'll deliver a replacement batch tomorrow."