Hi,
We created a UDI barcode in Code-128 format for our labels and sent it to our quality team. However, they raised an objection, stating that the barcode does not meet FDA requirements, which specify the GS1-128 format.
We now need to recreate the label with a GS1-128 barcode format. Could you please guide us on how to create a GS1-128 format barcode in Cetec?
What a great question! While I’m not an expert on the requirements for GS1-128 barcodes, from what I’m see the main differences between that and a standard 128 barcode seem to be
The beginning character used for the barcode
The content of the code being broken up into groupings separated by “application identifier” characters
We do have an external JavaScript library called “JsBarcode” included as part of Cetec already that appears to be capable of generating codes that meet those requirements.
You can find the part of the documentation where they provide an example of how you might use that tool to generate a GS1-128 code here: CODE128 · lindell/JsBarcode Wiki · GitHub
And you can see an example of how to implement JsBarcode into your custom doc by looking at the default version of the Ordline license plate document.
Hopefully that gets you headed in the right direction! Because this is a very specific, one-off request, any additional assistance you would request in implementing and generating the barcodes would constitute billable engineering time. Please let us know if you get to the point of needing that, and we’d be happy to set that up for you.
What data are you trying to encode in the barcode? Since a gs1-128 barcode can contain multiple data points in a single barcode, we need to know what data you’re trying to include in order to provide any sort of estimate.
Did you receive specs from your quality team about the requirements or the barcode that you could share with us?
This data is fetched from the Cross Part Bonus Column field named "GTIN".
Lot Number - AI (10)
This data is fetched from the Order Line in the Serial Record Column named "Order Lot Code".
Expiration Date - AI (17)
This data is fetched from the Order Line in the Serial Record Column named "Expires On".
I have attached a snapshot showing where we want to fetch the data for lotcode and expiry.
Our quality team has provided the following specifications:
The barcode must adhere to GS1-128 standards and include the above data points.
The encoded data format example:
(01)01234567890123(10)ABC123(17)240101
Where:
(01) represents the GTIN.
(10) represents the Lot Number.
(17) represents the Expiration Date in YYMMDD format.
Additionally:
The human-readable text under the barcode should match this structure with the parentheses.
Please let us know if you require any additional details or if you can provide an estimate based on the above information.
Our engineering team has sent an estimate of 2.5hrs billed at actual time spent. All of the requirements requested here should be achievable using our existing tools, but there will be a fair bit of back and forth to achieve and validate your specifications.
If you want to proceed with that please let us know and we’ll get that going for you.
Hi @cetecerp13 ,
Thank you for providing the estimate. However, 2.5 hours seems a bit high for creating a barcode in the GS1-128 format. From my perspective, this task should be relatively straightforward since we’re using the existing tools and the requirements are already outlined.
Could you please review the estimate or provide further clarification on why it would take this amount of time?
Looking forward to your response.
The estimate remains the same, however please keep in mind that we will only bill actual time spent. So if it take 1 hour instead of 2.5 you’ll only be billed for 1 hour.
Our expectation is that there will be a higher than normal amount of back and forth due to the highly specific nature of the requirements you’ve provided.
Please let us know if you’d like to move forward with having our engineering team work on this for you.
Thank you for the clarification. I will discuss this with my director tomorrow and get back to you with our decision on whether to proceed.
Thanks for your patience!
Add this code inside the element where you want the Barcode:
<svg id="xxxxx"></svg>
<script>
JsBarcode("#xxxxx", "(01)01234567890123(10)ABC123(17)240101", {
format: "CODE128", // CODE128
ean128: true, // Enable GS1-128 standard compliance (with Application Identifiers)
lineColor: "#000", // Barcode color (black)
width: 2, // Barcode width
height: 100, // Barcode height
displayValue: true, // Show the text under the barcode
fontSize: 18, // Font size of the text
textAlign: "center", // Align the text (default: center)
textMargin: 5, // Space between the barcode and text
});
</script>
You need to replace xxxxx with a unique ID for that barcode, in BOTH, the svg element and JsBarcode call. You would also need to use the applicable GTIN, Lot and Expiration Date. You can change the label attributes (height, width, etc.) as needed.
I think they will need some help on how to access this data within the custom document also.
For instance under which object does the Cross Part Bonus Column field reside?
Is it accessible in the particular custom document you are refering to?
//H
Hi @cayma,
Thank you for your explanation and detailed instructions. I’ve already implemented this method as you described, and the barcode generation is working in terms of displaying a scannable barcode. However, the results do not meet our requirements.
After scanning the barcode generated using the JsBarcode library in Cetec, the scanner identifies the format as CODE128, not GS1-128 as we need. Specifically, the application identifiers (AIs) are not being encoded properly to comply with the GS1 standard.
To clarify, I am sharing two examples for comparison:
The barcode we generated in Cetec using the JsBarcode library.
When we scan the NiceLabel barcode, it correctly shows as GS1 format with proper application identifiers. However, the Cetec barcode does not.
I appreciate your support and am happy to provide additional details or samples if needed.
Hi @sisyfos,
Thank you for your response! I want to clarify that I’ve already successfully accessed all the necessary data in my custom document. This includes fetching the GTIN from the Cross Part Bonus Column, and the Lot Code and Expiry Date from the Serial Record under the Order Line. I don’t need any assistance with retrieving the data.
The challenge I’m facing is related to the barcode format. Our customer specifically requires the barcode in GS1-128 format that adheres to GS1 standards, including proper Application Identifiers (AIs). However, the barcode currently generated in CETEC using the JsBarcode library is being recognized as CODE128 format, which does not meet our customer’s requirements.
I have attached snapshots of the examples I shared with Cesar earlier:
A barcode generated in CETEC using JsBarcode (shows CODE128).
A barcode generated using NiceLabel in our current practice (proper GS1-128 format with AIs).
The key issue is ensuring that the barcode generated by CETEC complies with GS1 standards. I’d appreciate any guidance or potential solutions to address this.
Hi @cetecerp13,
I am okay with the quotation provided.
Could you please guide me on the next steps? Will your engineering team contact us to discuss the requirements further, or will they proceed based on the details already shared?
If your team plans to proceed based on the earlier details, I have a suggestion: please ensure that all requirements are clarified and confirmed before starting the project to avoid any inconvenience later.