Several EANs for the same product: suppliers, cases, scales and marketplaces
PrestaShop stores one EAN per product, but in the warehouse the same item arrives with several. We explain where they come from, what errors they cause when scanning and on marketplaces, and how to sort them out.
In theory, each item has one barcode and each barcode corresponds to one item. In practice, any warehouse that has been running for a few years knows this is not the case. The same jar of product arrives with two different EANs depending on the production run, the case of six has its own code, the new supplier uses an internal one and the scale prints a different label on each pack.
Out of the box, PrestaShop has one EAN-13 field per product or combination. When the operator scans a code that is not that one, the scanner finds nothing and someone has to look it up by hand.
A bit of context: what an EAN is
EAN is the name by which the product barcode is known in Europe, now part of the GTIN family managed by GS1. The most common ones:
- EAN-13 (GTIN-13): the one used on most consumer products.
- EAN-8: a short version for small packaging.
- UPC (GTIN-12): the usual one in North America.
- GTIN-14 and ITF-14: for cases and logistics units.
The last digit of an EAN is a check digit: it is calculated from the previous ones and is used to detect reading or typing errors. An EAN whose check digit does not match is not a valid EAN, even if it is on the product page.
PrestaShop has fields for EAN-13, UPC, ISBN and, since 1.7.7, MPN (the manufacturer part number). One of each, per product or combination.
Where the extra codes come from
- The manufacturer changes the code. A new format, a packaging change or relabelling, and old and new units sit side by side in the warehouse.
- Cases and packs. The case of six or twelve has its own code, different from the unit's. When receiving goods, you scan the case and six units should be added.
- Several suppliers of the same item, each with its own label.
- Internal codes that you assign to whatever arrives without a code.
- Scale labels on variable-weight products: the code includes the item and the weight or price, so it changes with every pack. EANs starting with 2 are reserved for this kind of internal use.
- Private label and assortments: the supplier sells several different items under a single EAN.
The problems it causes
In the warehouse
- Scans that find nothing, holding up goods receipt or picking.
- The code that matches the wrong item. If the same code is on two products, the system takes the first one without warning. The error is discovered at stocktake or when the customer opens the parcel.
- Cases counted as one unit, with stock out of balance from the moment of receipt.
On marketplaces and Google Shopping
Amazon, Google Merchant Center and others identify the product by its GTIN. If you send a code that is not the manufacturer's, or one shared by two products, the listing is rejected or linked to another item's page. For external channels, the right thing is to send the official GTIN of the sales unit, not the case code or an internal one.
How to sort it out
1. A code register, not a field
The solution is to separate «the main code on the product page» from «all the codes that can identify this item». Each code in the register should have a type: unit, pack, case, internal, old or supplier; and, if it is a case, how many units it represents.
2. Ambiguity: ask, do not guess
When a code could be two items, the safe answer is to narrow it down by context first (the lines of the delivery note you are receiving, the order you are preparing) and, if there is still doubt, have the system ask the operator. Two seconds versus a mistake that costs days.
3. Clean up what you already have
Almost any catalogue that has been around for years has EANs repeated across products, codes with the wrong check digit and codes that no longer correspond to anything. PrestaShop does not warn you about duplicates. Before adding more codes, do a review: you will probably find surprises.
4. Learning from the scanner
When an unknown code turns up at goods receipt, the efficient thing is for the operator to say there and then which item it belongs to, and for it to be saved. Next time it is recognised.
5. Variable weight with rules
Scale labels need rules that say which digits are the item and which are the weight or price. Each scale may split them differently, so it is worth testing them with real labels before switching them on.
An up-to-date foundation helps
Stores that come from PrestaShop 1.6 often carry codes stored in fields that are not theirs (EANs in the reference, supplier codes in notes) because at the time there was nowhere else to put them. A migration or update is a good moment to put each code in its place and clean up duplicates.
Checklist
- Check your catalogue for duplicate EANs and check digits.
- Decide which is the main code of each item (the official GTIN of the unit).
- Register the others with their type and, for cases, the number of units.
- Define what happens when a code matches several items.
- To external channels, only the official GTIN of the unit.
- Test scale rules with real labels.
How to solve it in PrestaShop
RKR EAN múltiples adds a code register for the whole warehouse: several codes per item, each with its type (unit, pack, case, internal, old or supplier), case codes that add their units when scanned, the same code on several items and prefix rules for scale labels, with a tester. When a code could be several items, it narrows down by context and, if needed, asks. Its conflicts screen shows the duplicate EANs already in your products, check digits that do not match and orphan codes; codes are imported and exported via CSV, and at goods receipt and picking the operator teaches it unknown codes. It extends the catalogue without replacing it, connects with RKR Purchase Manager, RKR Caducidades and RKR Picking, and is compatible with PrestaShop 8 and 9.