feat: 确定性转换蝦皮待补规格 (#152)

This commit is contained in:
chengma
2026-08-11 14:31:13 +08:00
parent c68efe1a55
commit 30bdab3e2e
3 changed files with 312 additions and 21 deletions
+40
View File
@@ -146,3 +146,43 @@ Remove-Item Env:CMAUTOBUY_CATALOG_TOKEN
python tools/import_catalog_xlsx.py raw_data/shopee_chanpin_3_已处理.xlsx
python tools/import_catalog_xlsx.py --update-policy overwrite_same_source --dry-run
```
### 6.1 将确定的待补规格转换为正式规格
三个工作簿没有颜色、尺码的维度名称,不能固定认为第一列是颜色、第二列是尺码。
需要补齐已经导入的待补规格时,使用独立的确定性转换模式:
```powershell
python tools/import_catalog_xlsx.py --formalize-specs --dry-run
```
该模式按商品整体判断两列,不逐行改变列含义。只有整列取值都包含明确尺码证据时,
才把它作为尺码列;另一列作为颜色/款式。单维商品只有在全部取值都能明确识别为
尺码或颜色时才转换。证据冲突、列数不一致或含义不明的商品不会进入写请求,继续
显示“待补”。
当前三个样本的预检基准如下:
| 结果 | 商品数 | SKU 数 |
|---|---:|---:|
| 可以确定并正式化 | 1920 | 31178 |
| 含义不确定,继续待补 | 155 | 1871 |
| 源文件合计 | 2075 | 33049 |
正式化模式强制使用 `fill_missing`:只补数据库中的空颜色/尺码,不覆盖人工记录或已有
正式字段;`spec_raw`、`spec_key` 和真实 SKU ID 均不改变。它使用独立的
`xlsx-spec-v1` 批次版本,相同文件和参数可以幂等重跑。
生产执行前必须重新备份数据库,并先在 MySQL 8.4、库名以 `_test` 结尾的测试库或
生产备份副本演练。确认预检计数和前后不变量后,才在当前 PowerShell 进程设置 Token:
```powershell
$env:CMAUTOBUY_CATALOG_BASE_URL = "https://buy.833729.com"
$env:CMAUTOBUY_CATALOG_TOKEN = Read-Host "请输入商品目录专用 Token"
python tools/import_catalog_xlsx.py --formalize-specs
Remove-Item Env:CMAUTOBUY_CATALOG_TOKEN
```
执行后核对商品总数仍为 2075、SKU 总数仍为 33049,`spec_raw/spec_key` 不变,正式
SKU 增量与预检一致,歧义 SKU 仍为待补,且没有失败批次。Token 和数据库凭据不得
写入命令文件、日志、工单或任务归档。