UPC CODE算法原理以及如何使用PHP和JAVASCRIPT生成通用的UPC CODE

2024-02-23
无论是国内电商,还是跨境电商,有一种编码几乎跟sku一样流行,那就是upc码。

虽然upc码是由美国统一代码委员会(Universal Code Council, UCC)制定,而且主要用于北美的美国、加拿大和墨西哥,但是upc发展至今,已经可以在全世界畅通无阻了,因此有人称之为万能条码。另外一种全球通行的商品编码——ean正是站在它的肩膀上诞生的。


PHP

<?php

/*
+-------------------------------------------------------------------------------------------------+
| 690 ~ 695 开头编码为中国区代码
|-------------------------------------------------------------------------------------------------+
|1. 将所有奇数位置(第1、3、5、7、9和11位)上的数字相加。
|2. 然后,将该数乘以3。
|3. 将所有偶数位置(第2、4、6、8和10位)上的数字相加。
|4. 然后,将该和与第2步所得的值相加。
|5. 保存第4步的值。要创建校验位,需要确定一个值,当将该值与步骤4所得的值相加时,结果为10的倍数。
+-------------------------------------------------------------------------------------------------+
*/

$n1 = 6;
$n2 = 9;
$n3 = rand(0,5);
$n4 = rand(0,9);
$n5 = rand(0,9);
$n6 = rand(0,9);
$n7 = rand(0,9);
$n8 = rand(0,9);
$n9 = rand(0,9);
$n10 = rand(0,9);
$n11 = rand(0,9);


$c1 = ($n1 + $n3 + $n5 + $n7 + $n9 + $n11) * 3;
$c2 = $n2 + $n4 + $n6 + $n8 + $n10;
$c3 = $c1 + $c2;

$c = 10-substr($c3,-1);


$n12 = $c == 10 ? 0 : $c;

$upcode	=	$n1.$n2.$n3.$n4.$n5.$n6.$n7.$n8.$n9.$n10.$n11.$n12;

echo $upcode;

?>

JAVASCRIPT

function set_new_upcode(){
	var a1 = 6;
	var a2 = 9;
	var a3 = Math.floor(Math.random()*6);
	var a4 = Math.floor(Math.random()*10);
	var a5 = Math.floor(Math.random()*10);
	var a6 = Math.floor(Math.random()*10);
	var a7 = Math.floor(Math.random()*10);
	var a8 = Math.floor(Math.random()*10);
	var a9 = Math.floor(Math.random()*10);
	var a10 = Math.floor(Math.random()*10);
	var a11 = Math.floor(Math.random()*10);

	var _j = (a1 + a3 + a5 + a7 + a9 + a11) * 3;
	var _o = a2 + a4 + a6 + a8 + a10;
	var _t = _j + _o;

	var a12 = (10 - _t % 10) == 10 ? 0 : 10 - _t % 10;

	
	//console.log('奇数合:' + _j);
	//console.log('偶数合:' + _o);
	//console.log('奇偶综合:' + _t);
	//console.log('12位补数:' + a12);
	console.log(a1 + '-' + a2 + '-' + a3 + '-' + a4 + '-' + a5 + '-' + a6 + '-' + a7 + '-' + a8 + '-' + a9 + '-' + a10 + '-' + a11 + '-' + a12);

	var upcode = a1.toString() + a2.toString() + a3.toString() + a4.toString() + a5.toString() + a6.toString() + a7.toString() + a8.toString() + a9.toString() + a10.toString() + a11.toString() + a12.toString();
	//console.log(upcode);

	return upcode;

}

此UPC code仅仅只是格式正确,并不代表可以正规实用。在12位upc码之前加一个0,即可转化为13位ean码。

upc码分两种,一种是标准版,一种是缩短版。标准版upc码是长度为12位的数字,缩短版upc码是长度为8位的数字。

查询UPC是否正确: https://www.upcdatabase.com/

upc数字代表什么意思?

在数学家眼中,世间万物均可以用数字表示。upc码之所以广为流行,是因为它几乎可以指代一切商品。其中的秘密在于,组成upc码结构的不同数字代表了不同的含义。

以12位标准版upc码为例,各个数字段的意思如下:

  1. 第1位数字代表:系统码(1位)。
  2. 第2至第6位代表:厂商码(5位)。
  3. 厂商码包含了代表国家的前缀码。690~699之间的前缀码代表中国,以这些前缀码开始的厂商识别码由中国物品编码中心分配。以其他前缀码开始的则由境外GS1成员分配。
  4. 扩展阅读:489代表中国香港、471代表中国台湾、958代表中国澳门。
  5. 第7至第11代表:商品码(5位)。
  6. 最后1位代表:校检码(1位)。

附校验码计算方法

步骤:

  1. 自右向左顺序编号。
  2. 从序号2开始,求出偶数位上数字之和①。
  3. ①×3=②。
  4. 从序号3开始,求出奇数位上数字之和③。
  5. ②+③=④。
  6. 用大于或等于结果④,且为10最小整数倍的数减去④,其差即为所求校验码的值。

具体例子见下图:

UPC CODE算法原理以及如何使用PHP和JAVASCRIPT生成通用的UPC CODE

本文地址:

转载请注明出处,谢谢!

声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。

评论()
昵称 验证码
RELATION
判断访客是境外还是境内然后跳转至不同页面
马斯克开源Grok-1:3140亿参数迄今最大,附下载地址
编程记录 Recommend
UPC CODE算法原理以及如何使用PHP和JAVASCRIPT生成通用的UPC CODE
02/23 613
判断访客是境外还是境内然后跳转至不同页面
03/05 529