## 你现在就能这样做
- 目标：在没有“规格/数量/单位”列、只有“订单数量”列（如“4瓶/1箱/5箱/3件”）时，拆分出数量与单位，并按名称提取规格，最终规范化为银豹模板字段。

### A. 最小映射（只为模板填充）
- 在“供应商管理 → 列映射与表头”页，只需映射这些常用列：
  - name ← 商品名称
  - barcode ← 条码（如有）
  - unit_price ← 单价（如有）
  - total_price ← 金额/小计（如有）
- 不需要映射“数量/单位/规格”，后续用规则直接从原始列生成。

### B. 规则与词典设置（关键）
- 在“供应商管理 → 规则与词典”页：
1) 规则列表按顺序添加：
  - split_quantity_unit，参数：source=订单数量
  - extract_spec_from_name，参数：source=商品名称
  - normalize_unit，参数：target=unit，map={"箱":"件","提":"件","盒":"件"}
  - fill_missing，参数：fills={"unit":"瓶"}
  - mark_gift（可选）
  - compute_quantity_from_total（可选，当只有金额/单价时）
2) 词典设置：
  - unit_synonyms：{"箱":"件","提":"件","盒":"件","瓶":"瓶"}
  - pack_multipliers：{"件":24,"箱":24,"提":12,"盒":10}（根据你的供应商习惯调整）
  - default_unit：瓶
  - default_package_quantity：1
  - ignore_words：如（白膜、彩膜、赠品）
  - name_patterns（每行一个正则）：
    - (\d+(?:\.\d+)?)(ml|l|升|毫升)[*×xX](\d+)
    - (\d+)[*×xX](\d+)瓶
    - 需要时加入供应商特有格式，如“550水24白膜”可匹配“(\d{2,3}).*?(\d{1,3})”并将第二组当作包装数

### C. 预览与验证
- 在“规则与词典”页选择Excel，点击“生成步骤预览”：
  - 看“原始 → 规范化”两侧表，对比是否出现 quantity（数值）、unit（单位）、specification、package_quantity
  - 在“预览步骤”中逐步查看每一条规则的结果；必要时导出CSV核对
- 保存后会自动重载处理器；用真实文件跑一次，结果会出现在“最近文件”，双击打开核验。

### D. 解释关键点
- 映射是为了模板填充字段的命名统一；对于“订单数量”这种来源列，规则会直接读取 source=订单数量，不要求你把它映射成标准列。
- 规则执行后，会产生标准字段：quantity、unit、specification、package_quantity，可被模板填充。
- normalize_unit会用词典的pack_multipliers或name解析出的package_quantity，自动把“件/箱/提/盒”的数量换算成“瓶”，并将unit统一为“瓶”。

## 我将继续优化的点（让流程更清晰）
1) 规则表单中的“来源列”改为可选下拉（直接从Excel列名取值），无需手填。
2) 步骤预览支持“仅显示变化的列（Diff模式）”与“错误计数”（未匹配的行统计）。
3) 提供“无数量/单位列”的快速模版：自动添加上述规则与词典默认值，一键套用。
4) 规则帮助提示：每条规则说明输入/输出字段与常见示例。
5) 供应商级的“测试运行”：选文件→一键规范化→预览→导出结果，独立于正式处理。

如果你同意，我将按上述方案完善GUI交互（来源列下拉、快速模板、Diff预览、错误计数与一键测试），并把默认规则与词典预设直接提供出来，确保“只有订单数量列”的场景开箱可用。