Blog | G5 Cyber Security

Unique Product Barcodes

TL;DR

Create unique barcodes using a combination of GS1 prefixes, company identifiers, and dynamically generated product numbers. Implement database checks to prevent duplication during barcode creation. Use a robust barcode generator library or service.

How to Create Non-Duplicatable Product Barcodes

  1. Understand Barcode Standards: Most products use GS1 barcodes (EAN, UPC). These have a defined structure:
    • GS1 Prefix (2-3 digits): Identifies the standards organisation.
    • Company Identifier (variable length): A unique number assigned to your company by GS1. You must register with GS1 to get this.
    • Product Number (variable length): The specific code for each product you sell. This is where you have control over uniqueness.
  2. Register with GS1: Visit GS1 UK (or your local GS1 organisation) to obtain a Company Identifier. This is essential for globally unique barcodes. There’s a fee involved.
  3. Choose a Barcode Type:
    • EAN-13: Commonly used in Europe and Asia (13 digits).
    • UPC-A: Common in North America (12 digits).
  4. Generate Product Numbers: This is the core of preventing duplicates.
    • Sequential Numbering: Start at a high number and increment for each new product. For example, if your company ID is 1234567890123 and you’re using EAN-13, start product numbers at 00001 and go up from there.
    • Random Number Generation: Not recommended on its own as collisions are possible. If used, combine with other methods (see step 6).
  5. Implement a Database Check: Before assigning a barcode, check your product database to ensure it doesn’t already exist.
    SELECT COUNT(*) FROM products WHERE barcode = 'your_barcode';

    If the count is greater than 0, reject the barcode and generate a new one.

  6. Combine Methods for Robustness: Use sequential numbering *and* database checks.
    • Timestamping: Include a timestamp in your product number generation logic to further reduce collision risk (though this adds complexity).
    • Hashing: If you have unique product names or descriptions, hash them and use part of the hash as part of the barcode. Be careful about hash collisions; database checks are still vital.
  7. Use a Barcode Generator Library/Service: Don’t try to build this from scratch.
    • Python (example using `python-barcode`):
      from barcode import EAN13
      
      number = '1234567890123'
      my_ean = EAN13(number, addchecksum=True)
      my_ean.save('my_barcode', format='png')
    • Online Services: Many websites offer barcode generation (often paid). Search for “online barcode generator”.
  8. Testing: Thoroughly test your system.
    • Create many barcodes and verify they scan correctly.
    • Attempt to create duplicate barcodes – the database check should prevent this.
Exit mobile version