More and more I’m having to use GTIN barcodes instead of the old UPC-A bar codes. I needed a way to automatically grab the UPC-A bar code number from our database, strip the check digit, and generate a new GTIN-14 bar code on the fly, with a newly recalculated check digit. This is done in PHP, so take a whack at it and have fun! I’m still investigating how to produce bearer bars.
The trick to generating a check digit is list the 12 digit UPC-A with two zeros as a prefix, and starting with the first position on the left, mark the numbers as the Odd and Even positions, leaving off the last digit (check digit).
00 Â 6631 Â Â 2102 Â Â 3756
OE OEOE OEOE OEOX
Add all the Odd positions together :19
Add all the Even positions together: 17
Become the Maker you were born to be. Try Arduino Academy for FREE!

Multiply the Odd total by 3: 19*3=57
add the Odd and Even totals together: 57+17=74
If a multiple of 10, check digit is 0. In our example case it’s not, so if not a multiple of 10, Subtract from the next higher multiple of 10: 80-74 = 6
6 is the check digit. Now add a 01 prefix in front and you have a GTIN-14 compatible bar code.
01 0066312102375 6
