技术博客
零售与仓储如何用条码生成接口做商品条码与价签

零售与仓储如何用条码生成接口做商品条码与价签

作者: 万维易源
2026-08-28
条码生成零售仓储商品条码价签
# 零售与仓储如何用条码生成接口做商品条码与价签 > 接口/接入点:条码生成与识别(apiCode 1129)· 1129-1 生成 | 是否免费:免费 | 请求方式:POST/GET | 返回格式:JSON | 适用人群:零售/仓储运营、全栈工程师 | 阅读时间:约 7 分钟 ## TL;DR - 把 SKU 编码作为 `content` 传给 1129-1,即可生成该商品的条码图片。 - 批量生成 = 循环调用 1129-1,每次一个 SKU;接口无批量端点。 - 生成的图片链接**每 12 小时删除**,生产环境务必生成后立即下载落盘(对象存储/CDN)。 ## Why:零售与仓储的刚需 商品上架要贴条码、价签要印条码、仓储拣货要扫条码。若每个 SKU 都手动用条码软件导出图,既慢又难统一管理。用 1129-1 你可以在后台按 SKU 自动出图,和商品主数据联动。 ## What:接口速览 | 项 | 说明 | |----|------| | 地址 | `https://route.showapi.com/1129-1?appKey={your_appKey}` | | 必填 | `content`(SKU/商品编码) | | 可选 | `width`(95–500)、`height`(20–120)、`formatType`(1–13) | | 返回 | `showapi_res_body.imgUrl`(图片链接)、`ret_code` | | 时效 | 图片每 12 小时删除,需自行保存 | ## How:SKU → 条码图 批量生成并落盘 Python(循环生成 + 下载保存): ```python import requests, os APPKEY = "YOUR_APPKEY" skus = ["6901294172197", "6901234567890", "6912345678901"] os.makedirs("barcodes", exist_ok=True) for sku in skus: r = requests.post( f"https://route.showapi.com/1129-1?appKey={APPKEY}", data={"content": sku, "formatType": "5", "width": "150", "height": "40"}, timeout=10, ) body = r.json().get("showapi_res_body", {}) if body.get("ret_code") != "0" or not body.get("imgUrl"): print("SKU 失败:", sku, body); continue # 关键:立即下载落盘,route.showapi 链接 12h 后失效 img = requests.get(body["imgUrl"], timeout=10).content with open(f"barcodes/{sku}.jpg", "wb") as f: f.write(img) print("已保存", sku) ``` cURL(单条): ```bash curl -X POST "https://route.showapi.com/1129-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "content=6901294172197&formatType=5&width=150&height=40" ``` Node.js(单条): ```javascript const APPKEY = "YOUR_APPKEY"; const body = new URLSearchParams({ content: "6901294172197", formatType: "5", width: "150", height: "40" }); const res = await fetch(`https://route.showapi.com/1129-1?appKey=${APPKEY}`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body }); console.log((await res.json()).showapi_res_body.imgUrl); ``` ## 返回示例与解析 ```json { "showapi_res_body": { "imgUrl": "http://app2.showapi.com/img/barCodeImg/20160930/xxxx.jpg", "ret_code": "0" } } ``` ## 进阶 / 边界 - **落盘是必须的**:`imgUrl` 12h 后删除,不要把 route.showapi 链接直接写进价签/数据库长期字段;下载后转存到你的对象存储/CDN。 - **格式选择**:零售商品建议 `formatType=2`(EAN_13)以契合扫码枪/收银;内部物流可用 `5`(CODE_128)。详见 [13 种格式对照](https://www.showapi.com/guides/barcode-format-types-1129)。 - **无批量端点**:要出一批图就循环调用,注意档位限制。 ## FAQ **Q:一个 SKU 能生成不同尺寸吗?** 可以,通过 `width`(95–500)、`height`(20–120) 调整;生成后同样需落盘保存。 **Q:价签上想同时印商品名和条码怎么办?** 接口只返回条码图;商品名排版由你的价签模板(如 HTML/PDF 生成)负责,把 `imgUrl` 落盘后的本地图嵌入即可。 **Q:生成失败常见原因?** 多为 `content` 与 `formatType` 不匹配(如 EAN_13 内容非 12–13 位数字),或超出尺寸范围;返回 `ret_code` 非 0 时核对后重试。 **Q:落盘后原链接还能用多久?** 原 `imgUrl` 每 12 小时删除;落盘到自有存储后即以你的存储为准,与原链接时效无关。 ## 相关能力 / 下一步阅读 - [条码生成图片 12 小时过期:缓存与本地落盘保存策略](https://www.showapi.com/guides/barcode-image-expiry-1129) - [条码生成与识别:13 种条码格式(formatType)对照与选型指南](https://www.showapi.com/guides/barcode-format-types-1129) - [条码生成与识别:返回字段全解(imgUrl / retText / ret_code / msg)](https://www.showapi.com/guides/barcode-response-fields-1129) - **本系列共 12 篇**:查看[条码生成与识别指南总目录](https://www.showapi.com/guides/barcode-guides-1129)