一次生成几百个条形码,和生成一个的技术门槛差不多——但批量场景里,编号设计和文件管理才是真正的难题。编号设计错了,后续追溯、防重、系统对接都会麻烦。
编号结构设计原则
好的条形码编号满足三个条件:唯一、可读、可追溯。
推荐结构:[前缀]-[日期]-[批次序号]
示例:WH-20240315-00001
^^ ^^^^^^^^ ^^^^^
仓库 日期 批次内序号(补零)
前缀:2-4 个字母,标识业务线、仓库、产品线。同一系统里前缀不重复。
| 场景 | 前缀示例 |
|---|---|
| 仓库货位 | WH / BJ01 |
| 活动门票 | TK + 活动编号 |
| 资产标签 | IT / FA |
| 订单追踪 | ORD |
日期:YYYYMMDD 格式(8 位),按字母排序 = 按时间排序,批次天然隔离。
序号:从 00001 开始,位数根据批次最大量决定(见 FAQ)。
批量流程
第一步:准备内容列表
在 Excel/Sheets 里生成序号列:
A列(编号内容)
WH-20240315-00001
WH-20240315-00002
WH-20240315-00003
...
WH-20240315-01000
Excel 生成序号技巧:A1 填 WH-20240315-,B1 填 =A1&TEXT(ROW(),"00000"),向下拖填。
注意纯数字的陷阱:如果编号是纯数字(如 EAN-13),Excel 默认列格式会把 0012345678901 变成 12345678901(去掉前导零)。解决:选中列 → 右键设置单元格格式 → 文本 → 重新填入数据。
第二步:粘入工具批量生成
把 A 列内容全选复制,粘进工具的文本框,每行一个编号,点生成。
第三步:文件命名和存档
批量生成的文件以条形码内容命名,例:
WH-20240315-00001.png
WH-20240315-00002.png
...
同目录维护一个 index.csv:
barcode,item_name,location,created_at
WH-20240315-00001,联想笔记本,A区01货架,2024-03-15
WH-20240315-00002,戴尔显示器,A区02货架,2024-03-15
文件名 = CSV 主键,需要补打或重新生成时按文件名查 CSV 取内容。
防重复策略
批次隔离
日期作为批次标识,同日期内序号不超过上限,天然防止跨批次重复。即使明天再生成一批,前缀日期不同,编号不会撞。
系统侧去重
条形码贴到物品前,先在系统登记。扫描入库时:
- 扫码 → 查数据库,是否已存在?
- 已存在 → 拒绝,提示重复
- 不存在 → 入库,标记”已使用”
这一层是批量生成工具无法替代的,工具只负责生成图案,唯一性保证在后端。
防伪场景:一次性核销
条形码本身可被复制,配合后端才能防伪:
生成阶段:
工具生成编号 → 写入数据库(状态: 未核销)→ 打印贴标
核销阶段:
扫码 → 查数据库
├── 未核销 → 标记已核销,放行
└── 已核销 → 报警,记录重复扫描时间和设备
升级版:编号由服务端使用 HMAC 签名,格式 WH-20240315-00001-{签名后6位}。扫码后本地验签,不需要联网查库也能识别伪造码(签名对不上)。
打印建议
批量打印时,不同用途的建议尺寸:
| 用途 | 条形码宽 | 条形码高 | 标签纸规格 |
|---|---|---|---|
| 仓库货架(远距离扫) | ≥ 6cm | ≥ 2cm | 100×50mm |
| 资产标签(近距离扫) | ≥ 3cm | ≥ 1.5cm | 50×25mm |
| 快递单内嵌 | ≥ 4cm | ≥ 1.5cm | 按快递单模板 |
| 活动门票 | ≥ 5cm | ≥ 2cm | 按票面设计 |
导出 SVG 格式(矢量)比 PNG 更适合专业打印——SVG 放大不失真,交给印刷厂时直接用。