Mã sản phẩm chung (tiếng Anh: Universal Product Code, viết tắt:
UPC) là các
mã vạch được sử dụng rộng rãi tại
Mỹ và
Canada cho các mặt hàng tại các
cửa hàng. Mặt hàng đầu tiên được đưa qua máy quét UPC trong cửa hàng
bán lẻ là một gói 10 thanh
kẹo cao su Juicy Fruit của
Wrigley tại siêu thị Marsh ở
Troy, Ohio, vào ngày
24 tháng 6 năm
1974.
UPC-A (tên chính thức hiện nay là
EAN.UCC-12)
mã hóa 12
số như sau: S
LLLLLLM
RRRRRRE, trong đó S (bắt đầu) và E (kết thúc) là các
bit mẫu 101, M (giữa) là các bit mẫu 01010 (gọi là các vạch bảo vệ), và mỗi L (trái) và R (phải) là các số, mỗi số dài 7 bit. Tổng cộng có 95 bit. Mẫu chuỗi bit cho mỗi giá trị số được
thiết kế sao cho chúng khác nhau một chút, và không có quá 4 bit 1 hay 0 trong chuỗi. Cả hai giá trị bit này đều có
khả năng đọc được trong quá trình quét.Các mã vạch UPC-A giống như các loại mã vạch UPC khác, chỉ mã hóa các giá trị số, mà không mã hóa các
chữ cái hay các
ký tự dấu câu. Số bên trái (L) đầu tiên bằng 0 đối với các mặt hàng thông thường, 3 cho các mặt hàng dược phẩm, 2 đối với các mặt hàng bán theo
trọng lượng, và 5 dành cho
vé hay
phiếu (mặc dù các cửa hàng thông thường không dùng số này mà sử dụng 000000 hay 999999). Các số bên trái (L) còn lại là mã
nhà sản xuất. Năm số bên phải (R) đầu tiên là mã sản phẩm được nhà sản xuất tự đánh số. Số bên phải R cuối cùng là
số kiểm tra, để phát hiện các sai sót trong quá trình quét hay nhập liệu thủ công. Trong hệ thống của UPC-A, số kiểm tra được tính như sau:Ví dụ, mã vạch UPC-A "03600029145X" trong đó X là số kiểm tra, thì X có thể tính bằng cách lấy tổng các số ở vị trí lẻ (0+6+0+2+1+5 = 14), nhân với 3 (14 × 3 = 42), cộng thêm với tổng các số ở vị trí chẵn 42+(3+0+0+9+4) = 58 và lấy hiệu của số chia hết cho 10 lớn nhất gần với nó (60 - 58 = 2). Do đó số kiểm tra bằng 2 và chuỗi hoàn chỉnh là "036000291452".Các mặt hàng dược phẩm tại
Mỹ có số hệ thống trong UPC như là số NDC của họ (viết tắt của từ tiếng Anh: National Drug Control). Các mặt hàng bán theo trọng lượng, chẳng hạn như
thịt hay
hoa quả tươi hoặc
rau xanh, được gắn số UPC-A bởi cửa hàng nếu chúng được đóng gói ở đó. Trong trường hợp này, các số bên trái LLLLL là số của mặt hàng, và các số bên phải _RRRR hoặc là trọng lượng hoặc là giá của chúng, với số R đầu tiên xác định điều này. Tương tự, vé hay phiếu có mã trong LLLLL, giá trị được lấy ra từ _RRRR, và giá trị này là
phần trăm hay là giá trị bằng chữ được mã hóa trong số bên phải (R) đầu tiên.