Conversion algorithm for
UPC-E (UPC-8) to UPC-A (UPC-12).
On Carton code – Generating Carton
Code
The purpose of this document is to provide an insight to the storage of
the various EANwUCC barcode formats in the National Electronic
Product Catalogue database and is purely for information only.
Singapore Article Number
Council (SANC) currently administers 5 different types/formats of barcode. They
are EAN-13, EAN-8, UPC-A (UPC-12), UPC-E (UPC-6) and ITF-14.
Apart from ITF14, EAN code
inclusive of the check digit will be stored in a single field. The number of
digits reserved for the data field will be 13-digits long. The value of the EAN
code will be right-justified. As a result, for EAN-8, UPC-A (UPC-12), we need
to enter extra number of zeros to convert into 13-digit format. As for UPC-E (UPC-8),
we have to convert it into UPC-A (UPC-12) first and then add extra zero to
become 13 digits.
EAN-13 is 13 digits in
length (including the check digit).
The first (high-order) digit
is a non-zero digit.
Eg: 888 8247 13411 3
This EAN-13 barcode
will be stored in NEPC database as:
|
EANCODE |
|
888 8247 13411 3 |
EAN-8 is 8 digits in length
(including the check digit).
The first (high-order) digit
is a non-zero digit.
Eg: 50 28554 9
It will be stored
in NEPC database as:
|
EANCODE |
|
0000050285549 |
Note: Extra 5 zeros are
padded to the front to form a 13-digit long format.
UPC-A is 12 digits in length
(including the check digit).
The first (high-order) digit
is known as the Number System Character. Number System Character serves to
identify the category of the item carrying the number.
The next ten digits are the
information characters and the last (low order) digit is the modulo check
character.
Acceptable Number System
Characters are 0, 2, 3, 4, 5, 6, 7.
1, 8 and 9 have been
reserved for uses and are unidentified at this point in time. Any product
currently found with 1, 8 and 9 as the leading number on a UPC-12 digit barcode
are therefore illegal numbers, not yet authorised for use.
Eg: 0 73390 00016 5
This UPC-12
barcode will be stored in database as:
|
EANCODE |
|
0 07339000016 5 |
|
0 2xxxxxxxxxx C |
|
0 3xxxxxxxxxx C |
|
0 4xxxxxxxxxx C |
|
0 5xxxxxxxxxx C |
|
0 6xxxxxxxxxx C |
|
0 7xxxxxxxxxx C |
Note: An extra zero is
padded to the front to form a 13-digit format
UPC-E is 8 digits in length
(including check digit). UPC-E is used on packages that are too small to use
UPC-A (UPC-12).
The first (high-order) digit
is always zero. Only UPC-A with leading ‘0’ can be expressed in UPC-E.
The next 6 digits are the
information characters.
The last digit is the
check-digit calculated over the full-length of converted UPC-A.
Eg: 01 98791 3 where the check-digit is calculated from the
converted
UPC-A (0 19100
00879).
This will be
stored in the database as:
|
EANCODE |
|
0 01910000879 3 |
The storage of a UPC-E
number is first converted to UPC-A first based on a conversion algorithm
described below.
Note: An extra zero is
padded to the front to form a 13-digit format.
UPC-E : 0 a b c d e f C
|
0 |
: Prefix digit |
|
abcdef |
: UPC short version
bar code |
|
C |
: Check-digit |
The conversion depends on
the f value. Zeros are inserted in order to reconstitute a full-length number
(UPC).
f Full-length
Number
0 0 ab 000 00 cde C
1 0 ab 100 00 cde C
2 0 ab 200 00 cde C
3 0 ab c00 00 0de C
4 0 ab cd0 00 00e C
5 0 ab cde 00 005 C
6 0 ab cde 00 006 C
7 0 ab cde 00 007 C
8 0 ab cde 00 008 C
9 0 ab cde 00 009 C
The check digit is calculated over the full length reconstituted
number.
The Check Digit is calculated
by a modulo-10 algorithm from all other digits in the number through the
following steps:
Step 1: Starting
with the digit on the right of the number (excluding the check digit), sum all
the alternative digit values, reading from right to left.
Step 2: Multiply the result
of Step 1 by 3
Step 3: Starting with second
number on the right, add remaining alternative numbers
Step 4: Add the results of
Step 2 and Step 3.
Step 5: The
modulo-10 check digit is the smallest number which when added to the result of
Step 4 produces a multiple of 10.
Example
To calculate the check digit
for 888 6451 73885 C.
Step 1 :
5 + 8 + 7 + 5 + 6 + 8 = 39
Step 2 : x 3 =
117
Step 3 : 8 + 3 + 1 + 4 + 8 + 8 = 32
Step 4 : Add Step2 + Step3 = 149
Step 5 : C =
1
-----
150
===
The complete number is
therefore 888 6451 73885 1.
In general, one product item
will have a corresponding packing or a carton code assigned to it. The carton
code is used to facilitate purchasing and logistics management.
Carton Code used may be the
ITF-14 or EAN-13 barcoding format.
Assuming the EAN CODE is an
EAN-8 number.
Eg: 0000050285549
Step 1: Remove the check digit from the
EAN-8 number which reads
000005028554
Step 2: Append a numeric digit 1 in front.
1000005028554
Step 3: Compute the check digit to form the
ITF-14 number.
10000050285546 where 6 is the check digit
generated.
Note:
====
In cases where companies have
more than one pack size containing the same base item in a shipping carton,
e.g. 1ctn 24pcs, 1ctn 36pcs, 1ctn 48pcs, etc.
In this case, the ITF-14 can
be represented by 1 for ctn with 24pcs, 2 for ctn with 36pcs , 3 for 48pcs.
To derive the Check Digit,
simply use the Module 10 Algorithm to generate the Check Digit using Step 3 for
the respective pack size.
E.g. Carton of
24 : 1
000005028554 6
Carton of 36 : 2 000005028554 3
Carton of 48 :
3 000005028554 0
Zero Suppression is the
process of removing (suppressing) zeros from UPC Numbers which begin with a
zero in order to reduce the area required for the symbol by using a UPC-E
(Version E) symbol. Zero-suppression may
be accomplished in number system ‘0’ only.
Only companies with Number
System Character 0 (first digit of the U.P.C.)
can be zero suppressed. A U.P.C. Version E code is 8 digits in length
(including the Number System Character and check digit). The six digits beneath
the symbol represent a portion of the manufacturer identification number, as
well as a portion of the item number. These six digits are determined based
upon a formula dictated by the U.P.C Manufacturer Identification Number.
The six explicit characters
in a UPC-E (Version E) are derived from the UPC-A (Version A) as follows:
·
If a
manufacturer’s number begins with a zero and ends in 000 or 100 or 200, he has 1,000
item numbers between 00000 and 00999 available for use. The six characters are
obtained from the first two characters (after the leading '0') of the
manufacturer’s number followed by the last three characters of the item number
and finally followed by the third character of the manufacturer's number.
·
If a
manufacturer’s number begins with a zero and ends in 300, 400, 500, 600, 700,
800, or 900, he has 100 item numbers between 00000 and 00099 available for use.
The six characters are obtained from the first three characters (after the
leading ‘0’) of the manufacturer’s number followed by the last two characters
of the item number and finally followed by ‘3’ of the manufacturer's number.
·
If a
manufacturer’s number begins with a zero and ends in 10, 20, 30, 40, 50, 60,
70, 80, or 90, he has 10 item numbers between 00000 and 00009 available for use. The
six characters are obtained from the first four characters (after the leading
‘0’) of the manufacturer’s number followed by the last character of the item
number and finally followed by '4' of the manufacturer's number.
·
If a
manufacturer’s number begins with a zero and does not end in zero, then five item
numbers between 00005 and 00009 are available for use. The six characters are
obtained from all five characters of the manufacturer's number (after the
leading '0') followed by the last character of the item number.
NOT all UPC-A number with leading zero can be suppressed to become UPC-E
number.
Eg:
(1) 0 11561 87201 2
(2) 0 13134 00719 7
(3) 0 79656 00062 7
However, UPC
011561, 013134 and 079656 do have Version E capability. The item number portion
of the UPC code must be an item number of 00005, 00006, 00007, 00008 or 00009.
For example, the
full UPC number that can be converted into a Version E symbol for the UPC
Manufacturer Identification numbers listed above are as follows:
|
0 11561 00005 C |
0 13134 00005 C |
0 79656 00005 C |
|
0 11561 00006 C |
0 13134 00006 C |
0 79656 00006 C |
|
0 11561 00007 C |
0 13134 00007 C |
0 79656 00007 C |
|
0 11561 00008 C |
0 13134 00008 C |
0 79656 00008 C |
|
0 11561 00009 C |
0 13134 00009 C |
0 79656 00009 C |