需求背景

在 FedEx 发货链路中,存在一定比例的订单“未上网/轨迹迟迟不更新”问题。经与 FedEx 沟通确认,影响因素之一是面单清晰度与可扫描性:若面单打印不够清晰,或在打印/缩放/二次处理过程中导致条码边缘模糊,FedEx 分拣与扫描环节可能无法稳定识别,从而影响首次扫描上网的成功率与时效表现。

预研结论显示:
Zebra(斑马)侧具备对 ZPL 指令面单的原生支持能力,且 ZPL 作为标签打印行业常用标准,天然更利于条码清晰输出;
现网存在大量 PNG/PDF 面单格式,同时部分业务场景存在“面单二次加工”(如额外展示 SKU*数量等自定义信息)的历史诉求,需要在推进 ZPL 时同步评估兼容策略,避免影响仓库作业与业务展示。
因此,需要将 ZPL 面单能力重新提上日程,以“提升扫描识别率、改善未上网”为核心业务目标,推动仓库打印侧与系统面单展示侧形成稳定的统一方案。

需求描述

1)目标与价值
核心目标:在 FedEx(及后续可扩展至 UPS 等)发货场景中,引入 ZPL 面单打印能力,提升面单条码可扫描性,降低“未上网”发生概率,提升上网时效与轨迹稳定性。
用户体验目标:系统侧对业务用户(客服、运营、仓库)尽量“无感”,面单查看与打印操作保持一致或更简化。

2)业务范围
适用渠道范围(第一阶段):FedEx(后续必要时同步评估 UPS 等同类渠道)。
适用场景范围:
仓库日常出库打印面单;
客服/运营在系统中查询、预览、下载面单;
若存在自提/非自提等模式差异,需保证不影响现有作业路径。

3)业务要求(不限定技术实现方式)
为达成上述目标,系统需满足以下业务要求:
面单可用性:在启用 ZPL 能力后,仓库打印面单应能稳定输出清晰条码,满足 FedEx 扫描识别要求。
查看一致性:业务在系统内查看面单时,应能看到统一、可阅读的标准文件格式(例如 PDF 预览体验一致),避免因 ZPL 导致无法直接预览或体验割裂。
双格式留存:考虑打印与展示的不同诉求,系统需具备 同时留存“打印用格式”与“展示用格式”的业务能力,以支持打印清晰度与业务可视化并存。
二次加工兼容评估:对历史存在的“面单二次加工/自定义展示内容”(例如 SKU*数量等)的场景,需确保在启用 ZPL 后仍可实现或提供可替代方案。
可控切换与回退:上线需具备业务可控的启停机制,支持按开关切换新旧打印方案,并在异常时可快速回退,保障仓库作业连续性。
设备兼容性:启用前需确认仓库现有打印设备具备可支撑该方案的能力,并形成设备清单与兼容结论,避免上线后现场不可用。

支持按“仓库代码”配置启用面单格式
由于后续自营仓将逐步切换为 ZPL,但代理合作仓可能仍需保持 PDF格式,因此需支持仓库&物流产品维度差异化启用:
可配置:哪个仓库使用 ZPL、哪个仓库继续使用 PDF(保持现有逻辑)做到“分仓灰度切换”。
WPGA7/WPHOU7 合作仓面单需传输至对方系统打印发货,需调研对方是否支持接收/打印 ZPL;若仅支持 PDF,则该仓需长期保持 PDF 输出,不纳入 ZPL 切换范围。

开发设计

主体流程和思路:

  1. 采用双格式留存,即在西邮渠道中,fedex/dhl/ups 自有对接的官方渠道支持zpl格式预报,其他渠道还是走原逻辑,不做改变
  2. 西邮自提渠道越来越多,做不到所有渠道都支持zpl格式
  3. 暂只考虑订单模块,代卖模块不做,也先接入fedex渠道,考虑后续渠道

表结构改动:

  1. 订单附件表,添加仓储zpl数据字段 label_zpl
  2. 新增标签渲染服务每日统计表wpglb_lms.label_render_daily_stat、标签渲染服务每日统计-明细label_render_daily_stat_detail

核心逻辑:

在fedex预报中,新增ZPLPrintConfig 配置项,按仓库、物流产品、(客户)维度进行zpl打印试行,由于免费zpl转换png有限制,还需要判断每天是否超出额度(label_render_daily_stat 统计判断,免费额度5000次),符合则进行zpl预报,然后调用https://labelary.com/ 中的api转换成png格式,转换不成功则会报错并记录在订单日志中(FEDEX CONVERT LABEL ERROR),并且记录到label_render_daily_stat_detail中,方便技术查看异常原因。zpl数据会仓储到订单附件表中的 label_zpl字段。png格式会再次进行二次处理并转成pdf,和原逻辑一样。

总结:

  1. ZPLPrintConfig 配置,总开关 “globalSwitch”: true 开启 / 关闭
  2. ZPLPrintConfig 配置,仓库、物流产品、(客户)维度 配置
  3. label_render_daily_stat.total_count 当日总调用次数是否超过5000次
  4. 当上面3个条件均符合,才会向fedex预报zpl格式,并把zpl转换成png格式,即双格式留存
  5. 这次暂只针对 fedex 渠道,少量客户仓库试行。
作者:黄天文  创建时间:2026-02-11 13:32
最后编辑:黄天文  更新时间:2026-03-03 10:08