面向 ESL 更新的厂商中立 JSON 接口
以下这个问题通常会在第一次电子价签试点之后立刻出现:价签能正常工作,价格也正确,然后有人问:“冷冻货架区能不能换一家标签厂商?”没人愿意回答,因为诚实的答案是“除非我们重写集成”。
这正是厂商中立 JSON 接口要解决的问题。它并不是让硬件神奇地可以互换,而是让内容管线独立于价签的制造商。本文解释这个接口究竟是什么、为什么它是一个 JSON 文件而不是一次 API 调用,以及像 Next Generation Label Printing System 这样的平台在其中扮演什么角色。
什么是面向 ESL 的厂商中立 JSON 接口?
电子价签(ESL)是夹在货架边缘的小型数字显示屏。它们取代纸质价格标签,通过基站无线更新,而不是靠人拿着打价枪走遍货架。
麻烦出在底层管道上。过去,每家 ESL 制造商都有自己的推送更新方式:二进制数据块、专有的 REST 端点、厂商 SDK、串口协议。两家厂商意味着两套集成。三家厂商意味着一个没人愿意维护的小型内部框架,外加一张把产品 ID 映射到各系统所谓“标签”的电子表格。
厂商中立 JSON 接口用一个单一契约取代了这一切:一个有文档说明的 JSON 结构,表达这个标签标识符应显示这个内容。任何能写出 JSON 的系统——ERP、定时脚本、电子表格导出、标签设计工具——都能生成它。任何能读取 JSON 的基站或中间件都能消费它。
这个说法里有两个词承载着分量:
- JSON 是一种基于文本、人类可读的数据格式。你可以在编辑器里打开一个更新文件,对两个版本做 diff,一眼看出价格字段是字符串还是数字。这听起来平淡无奇,直到你在早上 7 点门店开门前调试过二进制载荷。
- 厂商中立意味着该接口不绑定于特定的 ESL 硬件制造商。它定义更新长什么样,而不是由谁的无线电来传输。
有一个区别值得明确说明,因为它承担了大部分作用:厂商中立接口定义的是模式(schema),而不是协议。模式是数据的形状。协议——基站如何通过无线与价签通信——仍然留在它该在的地方:硬件厂商那里。
一个简单的类比:万能电源转换头
想想墙上的插座。英标 Type G 插座、欧标 Type F 插座和美标 Type A 插座是三种互不兼容的物理规格。你的笔记本电脑充电器并不关心其中任何一种;它只关心能否获得电力。所以你随身带一个万能转换头,无论落地哪个国家,充电器都能继续工作。
映射到 ESL 上非常直接:
- 墙上的插座是 ESL 硬件及其基站。
- 你的设备是你要显示的内容——价格、商品名称、条码。
- 万能转换头是双方都认可的 JSON 模式。
这个类比也延伸到维护上,而这正是人们容易低估的部分。换转换头是花五块钱的事。换墙意味着要请电工、在石膏板上开洞,还要搭上你一天的时间。用 ESL 的话说:更换标签厂商应该只是换转换头——让新基站指向同样的 JSON 输出——而不是重写每天早上生成价格的系统。
这种解耦就是全部要点。内容管理侧不再关心硬件。硬件侧不再关心数据来自哪里。
底层是如何工作的
其机制刻意做得平淡无奇,而这正是一个优点。
一次 ESL 更新是一个文件。某个东西生成一个 JSON 文件;ESL 基站或中间件读取它,并把内容分发到物理价签。这个文件如何传输是开放的:HTTP 上传、被监视的共享文件夹、消息队列、在连接不稳定的门店里用 U 盘。模式中没有任何内容规定传输方式。
该结构通常承载三类信息:
- 标签或价签标识符——寻址的是哪个货架标签。
- 内容——文本字段、图像、条码。
- 显示属性——使用哪个模板,以及硬件支持的任何呈现标志。
下面的示例刻意做了简化,以展示其形状。确切的字段名和允许值来自随 ESL 接口文档发布的模式——在向生产环境发送任何内容之前请先核对。
{
"label": "SHELF-0421",
"template": "price-tag-7in",
"content": {
"title": "Arabica Beans 1kg",
"price": "12.49 EUR",
"unit": "per pack",
"barcode": {
"type": "EAN13",
"value": "4006381333931"
}
},
"display": {
"highlight": true,
"validFrom": "2026-11-01"
}
}
因为它是模式而不是协议,同一个文件可以由夜间 ERP 任务、Google Sheets 工作流或可视化标签设计器生成。生产系统不需要知道四号通道上放的是哪个品牌的价签。
RSJ LPSNG 提供了该模型的两半:输出此 JSON 格式的 ESL Interface(ESLSEND),以及将价签与商品关联起来的 ESL Binding API——这对自身没有 Web 界面的移动数据采集(MDE)设备很有用。
为什么厂商中立很重要
三个实际理由,外加一个值得消除的误解。
避免锁定。 如果你的内容管线输出中立的 JSON 文件,那么更换 ESL 硬件就变成一个硬件项目,而不是软件项目。你保留价格逻辑、模板设计和定时任务。你只更换消费输出的那一端。
面向未来。 新的 ESL 型号不断出现——不同尺寸、不同电池配置、不同无线协议栈。稳定的 JSON 模式在硬件侧吸收这些变化,而你的管线保持不变。
更简单的集成。 N 家厂商用同一种格式,胜过 N 个专有 API。一个开发者学会该模式一次,就能集成第二家门店、第二家厂商或第二个国家,而无需重新学习这个领域。
那个误解: 厂商中立并不意味着功能贫乏。中立的模式仍然可以承载丰富的内容——多行文本、商品图像,以及一维或二维条码。中立性关乎谁拥有格式,而不是你能往里面放多少东西。(如果你要生成条码,How to Check Barcodes Before Printing Labels 中的检查同样适用于货架标签和打印标签。)
RSJ LPSNG 如何管理 ESL 内容
Next Generation Label Printing System 是一个标签设计与打印平台,ESL 支持是其跨媒介解决方案的一部分:送往打印机的同一份标签设计可以驱动货架标签。这在运营上很重要——一份设计、一套字段规则、两个不会彼此偏离的输出通道。
工作流如下:
- 只设计一次标签,在 LPSNG Web UI 的标签工作室中完成。
- 将价签与商品绑定,在需要程序化关联的地方通过 ESL Binding API 完成,而不是在手持设备上点 Web 界面。
- 让系统从该设计输出 ESLSEND JSON。你不是手写载荷;平台从你打印所用的同一份布局生成它们。
- 自动化运行,使用 LPSNG Player,这个独立的命令行打印引擎:包加数据输入,PDF、PNG、JSON、直接打印或 ESL 输出。定时任务可以重新生成并交付 JSON,无需浏览器介入。
你可以手工拼装 JSON 并自己把文件丢到基站上——用笨办法——但那样你就在维护第二份并行的标签内容定义,它会在一个月内与打印版本产生偏离。
对于连锁企业,企业级功能覆盖多用户、多区域和多设备环境,因此内容可以集中管理,并通过同一接口分发到多个地点。在硬件方面,RSJ 发布了 CATIC ESL 的安装说明,作为让特定价签系列上线的完整示例。
常见误解与实际考虑
“JSON 接口只给开发者用。” 并不尽然。开发者可以以编程方式生成 JSON,但任何能输出文本的系统都能生成它,而平台可以替你从可视化设计生成它。门槛比这个缩写听起来要低。
“厂商中立意味着没有厂商支持。” 在实践中,它通常意味着更好的互操作性,因为集成面是有文档且共享的,而不是定制的。
考虑事项:确认你的基站。 确认你的 ESL 基站或中间件能消费 ESLSEND 格式,或者能适配它。这是中立模式帮不了你的唯一一步——接收端必须能理解该文件。
考虑事项:部署前先验证。 格式错误的 JSON 文件会静默失败,或者更糟,只更新门店的一半。两个廉价的检查就能抓住大部分问题:
jq empty ./out/SHELF-0421.json && echo "valid JSON"
import json
import sys
REQUIRED = ("label", "template", "content")
def check(path: str) -> None:
with open(path, encoding="utf-8") as f:
doc = json.load(f)
missing = [key for key in REQUIRED if key not in doc]
if missing:
sys.exit(f"{path}: missing {', '.join(missing)}")
print(f"{path}: ok")
check("./out/SHELF-0421.json")
语法验证能抓住损坏的文件。必需键检查能抓住更常见的失败:一个有效文件缺少了基站真正需要的那个字段。
常见问题
ESLSEND 究竟是什么?
ESLSEND 是 RSJ LPSNG 提供的厂商中立 JSON 文件接口,用于更新电子价签显示。它定义了标签内容的标准 JSON 结构,允许任何能生成 JSON 的系统向 ESL 发送更新。
使用厂商中立 JSON 接口需要写代码吗?
不一定。虽然开发者可以以编程方式生成 JSON,但 RSJ LPSNG 提供了 Web UI 和 LPSNG Player 等工具,可以替你生成 JSON。你可以可视化地设计标签,让系统处理 JSON 输出。
RSJ LPSNG 能配合任何 ESL 硬件使用吗?
RSJ LPSNG 支持厂商中立 JSON 接口,这意味着它可以配合接受 ESLSEND 格式的 ESL 硬件使用。不过,你应当确认你的 ESL 基站或中间件能消费这些 JSON 文件。RSJ LPSNG 还提供了 CATIC ESL 硬件的安装说明作为示例。
RSJ LPSNG 如何处理多家门店的 ESL 更新?
RSJ LPSNG 提供面向多用户、多区域和多设备环境的企业级功能。你可以集中管理 ESL 内容,并使用 ESLSEND 接口将更新分发到多个地点,确保各门店之间的一致性。
结论
厂商中立 JSON 接口不是什么巧妙的技术花招——它是一条边界。一侧是你的内容:价格、商品名称、条码、模板。另一侧是硬件:价签、无线电、基站。ESLSEND 用有文档的 JSON 文件画出这条边界,让每一侧都能变化而不拖累另一侧。
实际路径很短:在 Next Generation Label Printing System 中设计标签,让平台从该设计输出 JSON,确认你的基站接受该格式,然后用 LPSNG Player 自动化运行。如果你还在决定需要多少工具,Label Design Software With Python Scripting: What to Expect 和 Label Design Software Pricing: A Small Business Guide 涵盖了相邻的决策。
准备在你自己的标签上看看效果?从托管云版本开始,设计一个货架标签,并在承诺任何硬件之前导出 ESL 输出。
相关文章
- How to Check Barcodes Before Printing Labels
- Label Design Software Pricing: A Small Business Guide
- Label Design Software With Python Scripting: What to Expect
