Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌅 GS1 "Sunrise 2027" - 2D Barcodes, GS1 Element String, and GS1 Digital Link URI support #5131

Open
12 tasks
Tracked by #526
hangy opened this issue Mar 25, 2024 · 4 comments
Open
12 tasks
Tracked by #526
Labels
🎯 P1 🤳🥫 Scan We need to be able to scan on low-end, old devices, even with a bad camera, connexion…

Comments

@hangy
Copy link
Member

hangy commented Mar 25, 2024

What

Smooth App should support 2D barcodes - more specifically "GS1 DataMatrix" and "GS1 QR Code".

This includes support for barcodes that contain the GTIN in more formats than the current barcode.

  • GS1 DataMatrix with GS1 element string with just a GTIN: (01)3274080005003
  • GS1 DataMatrix with GS1 element string with just additional information, for example best before (15), and weight in kg with three decimals points (3103):
    (01)3274080005003
    (15)230501
    (3103)000123
    
  • DataMatrix or QR Code only GTIN: A GS1 Digital Link URI: https://www.example.org/01/3274080005003
  • DataMatrix or QR Code with same information as in the above GS1 element string: A GS1 Digital Link URI: https://www.example.org/01/3274080005003/15/230501/3103/000123

Why

GS1 has plans to replace the current EAN/UPC barcodes by DataMatrix and QR Code barcodes to support storing more data in the barcode. Traditional and 2D barcodes will be used in parallel for a while after this, but GS1 apparently intends to stop issuing new non-2D codes starting 2027.

GS1 links

Who for

All users of Smooth App will profit from this. Users of ProductOpener have already spotted products in the wild that did not have a traditional EAN barcode on the box mid-2023.

How

Different GS1 barcode types have been implemented in the search API already. Internally, they're normalized to the EAN. It would be great if the app could search for products using the full barcode, so that the server API can extract values from the AIs. However, the value of barcodes with a lot of Application Identifiers is not easily human-readable, so it's probably better to show the GTIN to end-users, and potentially extract data from the AIs (ie. best before, lot number) as human-readable additional information separately.

GS1 provides official parsers for validation of barcodes. The engine is provided as a C library, and can probably integrated as a native library in Dart/Flutter similarly to zxing.

Tasks

Part of

@teolemon teolemon added ✨ enhancement New feature or request 🎯 P1 🤳🥫 Scan We need to be able to scan on low-end, old devices, even with a bad camera, connexion… labels Apr 1, 2024
@teolemon
Copy link
Member

@hangy from my understanding of what you wrote, and what we can do / should do on mobile
Question: "weight in kg with three decimals points (3103)" how does that work for light products ?

### Tasks
- [ ] Ensure the current scanner can scan QRcodes, but only GS1 QRcodes
- [ ] Create or find a Dart package to validate GS1 QrCodes payload
- [ ] Pass the barcode part to the current API
- [ ] (Product addition) Prepopulate Weight on product addition using the GS1 QrCodes
- [ ] (Product addition) Prepopulate Best Before on product addition using the GS1 QrCodes
- [ ] (Product addition) Prepopulate regular barcode on product addition using the GS1 QrCodes
- [ ] (Product addition) Prepopulate official product url on product addition using the GS1 QrCodes
- [ ] (Product addition) Prepopulate Batch/Lot on product addition using the GS1 QrCodes
- [ ] (Product addition) Prepopulate Serial Number on product addition using the GS1 QrCodes
- [ ] (Product addition) Prepopulate Net Weight on product addition using the GS1 QrCodes

@hangy
Copy link
Member Author

hangy commented Apr 12, 2024

@hangy from my understanding of what you wrote, and what we can do / should do on mobile Question: "weight in kg with three decimals points (3103)" how does that work for light products ?

The GS1 has way, ways more AIs available. We can/have to choose which to use client-side. If it's lighter than can be described by those decimals, they might use 3105, which is defined as n.nnnnn kg.

In your task list, you write about GS1 QR Codes. I think it's important to note that GS1 DataMatrix is at least as important as QR Code, if not more important.

@teolemon
Copy link
Member

@hangy
Copy link
Member Author

hangy commented May 31, 2024

https://pub.dev/packages/gs1_barcode_parser

Appears to be pretty limited. I think it doesn't support GS1 Data URIs

@teolemon teolemon removed the ✨ enhancement New feature or request label Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🎯 P1 🤳🥫 Scan We need to be able to scan on low-end, old devices, even with a bad camera, connexion…
Projects
Status: 💬 To discuss and validate
Development

No branches or pull requests

2 participants