Packing List Exporter(外贸装箱单 A4 生成器)
Overview
为国内束口袋(drawstring bag)等行业的外贸出口场景,提供"解析 → 平台识别 → 差异化排版 → A4 导出"的一体化装箱单生成能力。核心解决三件事:
- 解析装箱单内容:支持结构化 JSON 与自由文本(粘贴的订单/邮件/原装箱单)两种输入,归一化为统一数据模型。
- 自动识别外贸平台:基于关键词加权命中,判定所属平台(Amazon FBA / Alibaba.com / AliExpress / Made-in-China.com / 通用),并对"MADE IN CHINA"等原产地标识做去噪,避免误判。
- 差异化版面 + A4 导出:每个平台套用不同的主题色、字段列规范、专属区块(如 FBA 箱标块、阿里信用保障块),输出
@page A4标准版面,可直接打印或另存 PDF。
When to Use
- 用户要求"做一份装箱单 / 打印装箱单 / 导出 A4 装箱单"。
- 用户粘贴了订单、邮件或原装箱单文本,需要转成标准化、可打印的装箱单。
- 用户提到"亚马逊 FBA 发货箱贴 / 阿里国际站 / 速卖通 / 中国制造网"等具体平台,需要对应的规范版面。
- 需要为多个平台的客户批量生成风格统一但字段各异的装箱单。
Data Model(构造 JSON 输入时使用)
归一化字段(缺省项会按束口袋行业补默认值,如品名默认 "Drawstring Bag / 束口袋"、单位默认 "pcs"):
{
"exporter": { "name", "address", "contact", "tel", "email" },
"consignee": { "name", "address", "contact", "tel", "email" },
"doc": { "invoice_no", "packing_list_no", "date", "po_no",
"order_no", "fba_id", "tracking_no",
"ship_from", "ship_to", "vessel", "terms" },
"items": [
{ "carton_no", "description", "material", "size", "color",
"fnsku", "qty", "unit", "net_weight", "gross_weight", "measurement" }
],
"marks": "唛头 / Shipping Marks",
"remark": "备注"
}
合计(箱数/总数量/总净重/总毛重)若未提供,脚本会按明细自动累加。完整示例见 samples/ 目录(每个平台一个)。
Workflow
Step 1 — 准备输入
- 优先请用户提供 JSON(字段最可靠)。若仅有文本/邮件,直接把原文写入
.txt作为--input。 - 自由文本解析为"尽力抽取":会识别发票号、日期、PO/订单号、毛净重、数量箱数、收发件地址;未识别字段留空并在版面以红色高亮提示补全。
Step 2 — 运行脚本(解析 + 识别 + 渲染 + 导出)
# 自动识别平台(推荐)
python scripts/packlist.py --input <输入文件> --platform auto --out <输出目录> [--pdf] [--json-out]
# 手动指定平台(跳过识别)
python scripts/packlist.py --input samples/amazon_sample.json --platform amazon --pdf
--platform auto:对文本做加权关键词识别,并打印命中明细与置信度。--pdf:若本机存在 Chrome/Chromium/Edge,则额外输出 A4 PDF;否则提示用浏览器 Ctrl+P 另存。- 输出文件:
packing_list_<platform>.html(及可选.pdf/.json)。
Step 3 — 交付与打印
- 打开生成的 HTML,浏览器中 Ctrl+P 即可打印;页面已设为
@page A4、12mm 页边距,可直接"另存为 PDF"。 - 校验要点:出口商/收货人信息完整、明细表合计正确、外箱须贴 "MADE IN CHINA" 与原产地/箱标(FBA 场景还需 FNSKU)。
Platform Differentiation(差异化维度)
| 平台 | 主题色 | 明细表差异化列 | 专属区块 |
|---|---|---|---|
| Amazon FBA | 橙 #FF9900 | 增加 FNSKU 列 | FBA Shipment ID + 仓库地址 + 箱标提示 |
| Alibaba.com | 蓝 #1677FF | 材质/规格/颜色齐全 | 信用保障订单号 (PO/关联订单) |
| AliExpress | 红 #FF4747 | 简化(品名/规格/颜色/毛重) | 订单号 + 物流追踪号 |
| Made-in-China | 红 #C8102E | 材质/规格/颜色齐全 | "MADE IN CHINA" 原产国强调 |
| 通用外贸 | 黑灰 #333 | 标准列 | 中性版面(快递直发/线下客户) |
差异化实现集中在 scripts/templates.py(COLUMN_SPECS 列规范 + render_html 版面)与 scripts/platforms.py(主题色/关键词/标签)。新增平台只需在两处补一项配置。
References
scripts/platforms.py— 平台识别特征、主题色、字段标签覆盖。scripts/parser.py— 输入解析(JSON / 自由文本)与归一化、合计计算。scripts/templates.py— 各平台 A4 HTML 版面与差异化列规范。scripts/packlist.py— CLI 主入口(解析→识别→渲染→导出/PDF)。samples/— 五个平台的示例数据与自由文本样例,可直接用于测试或作为模板填空。references/platform_field_spec.md— 各平台装箱单字段规范与排版要点详表。