raw_data/shopee_chanpin_1_已处理.xlsx、shopee_chanpin_2_已处理.xlsx、shopee_chanpin_3_已处理.xlsx 共 2075 个蝦皮商品、33049 条唯一规格,需要通过 POST /api/v1/integrations/catalog/batches 分批导入。文件是一行一个规格,同商品重复;没有真实蝦皮 SKU ID,也没有可靠的颜色/尺码维度名称,且不同文件的两个变种列顺序不一致,不能猜测结构化颜色尺码。
raw_data/shopee_chanpin_1_已处理.xlsx
shopee_chanpin_2_已处理.xlsx
shopee_chanpin_3_已处理.xlsx
POST /api/v1/integrations/catalog/batches
raw_data
tools/import_catalog_xlsx.py
openpyxl
在线商品
spec_raw
sku_id
parse_ok=false
batch_id
observed_at
--base-url
CMAUTOBUY_CATALOG_BASE_URL
CMAUTOBUY_CATALOG_TOKEN
docs/admin/10-商品目录接入接口.md
从仓库根目录执行 Python 单元测试;设置非敏感占位接口地址后对三个 raw_data 文件执行 --dry-run,核对商品、SKU、PDD、关联、批次数量和最大 JSON 大小;从 admin/ 使用固定 Go 1.23 执行 build/test/vet。真实提交时由负责人设置环境变量 Token 后运行���不在测试中调用生产写接口。
--dry-run
admin/
批量接口会写生产商品目录,首次真实提交前先执行 dry-run 并备份数据库。出现校验或业务冲突立即停止,不跳过失败批次;修正源文件后若请求内容变化,需使用新文件内容哈希生成的新批次 ID。回退脚本只需停止进程;已成功批次按接口 upsert 规则保留,不自动删除或覆盖人工数据。
目标扩展为部署当前 main 最新 Admin 到 185.216.248.75,部署前备份 autobuy;为生产服务生成并配置至少 32 字节随机 CMAUTOBUY_CATALOG_TOKEN(只写入 /etc/cmautobuy/admin.env,权限保持 600,不输出);验证 HTTPS 商品目录路由和鉴权后,用本任务脚本提交三个 Excel 的 11 个幂等批次。遇到非重试错误停止,修正后继续;完成后核对导入记录成功数及生产商品/SKU/PDD/关联计数。
新增验收:
实现完成,状态更新为待验收。
三个真实 Excel dry-run 通过:共 2075 个蝦皮商品、33049 条 SKU、11 个批次,最大请求约 1.02 MB;未调用生产写接口。Python 5 项测试及 Admin 固定 Go 1.23 build/test/vet 全部通过。
提交:acfa699、e4385ac。
生产部署和真实导入完成,状态恢复为待验收。
用户于 2026-08-12 明确验收通过。已确认本地归档 docs/task/146-商品目录Excel分批提交脚本.md 存在,现关闭工单。
docs/task/146-商品目录Excel分批提交脚本.md
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
raw_data/shopee_chanpin_1_已处理.xlsx、shopee_chanpin_2_已处理.xlsx、shopee_chanpin_3_已处理.xlsx共 2075 个蝦皮商品、33049 条唯一规格,需要通过POST /api/v1/integrations/catalog/batches分批导入。文件是一行一个规格,同商品重复;没有真实蝦皮 SKU ID,也没有可靠的颜色/尺码维度名称,且不同文件的两个变种列顺序不一致,不能猜测结构化颜色尺码。做什么 / 不做什么
raw_data�����业样本;不猜测颜色尺码、不伪造蝦皮 SKU ID 或 PDD 规格/价格;不修改 Admin 接口、数据库结构和 Client 四接口。怎么做
tools/import_catalog_xlsx.py,用openpyxl只读解析在线商品;严格校验 22 列中的必需列、商品字段一致性、货源 ID 与 URL、规格非空和同商品规格唯一。spec_raw,sku_id留空,颜色/尺码留空且parse_ok=false。batch_id使用转换器版本、文件内容哈希和批次序号生成;observed_at使用批内 Excel 最大更新时间并附加 +08:00,保证相同文件重跑请求字节稳定。--base-url或CMAUTOBUY_CATALOG_BASE_URL获取,Token 只从CMAUTOBUY_CATALOG_TOKEN获取;网络、429 和可重试 5xx 指数退避,非重试错误立即停止。重新运行时已成功批次由服务端幂等重放。docs/admin/10-商品目录接入接口.md的脚本用法���验收标准
spec_raw稳定保留两个变种列顺序。怎么验证
从仓库根目录执行 Python 单元测试;设置非敏感占位接口地址后对三个
raw_data文件执行--dry-run,核对商品、SKU、PDD、关联、批次数量和最大 JSON 大小;从admin/使用固定 Go 1.23 执行 build/test/vet。真实提交时由负责人设置环境变量 Token 后运行���不在测试中调用生产写接口。风险和回退
批量接口会写生产商品目录,首次真实提交前先执行 dry-run 并备份数据库。出现校验或业务冲突立即停止,不跳过失败批次;修正源文件后若请求内容变化,需使用新文件内容哈希生成的新批次 ID。回退脚本只需停止进程;已成功批次按接口 upsert 规则保留,不自动删除或覆盖人工数据。
实施记录
生产执行范围变更(用户于 2026-08-11 明确确认)
目标扩展为部署当前 main 最新 Admin 到 185.216.248.75,部署前备份 autobuy;为生产服务生成并配置至少 32 字节随机 CMAUTOBUY_CATALOG_TOKEN(只写入 /etc/cmautobuy/admin.env,权限保持 600,不输出);验证 HTTPS 商品目录路由和鉴权后,用本任务脚本提交三个 Excel 的 11 个幂等批次。遇到非重试错误停止,修正后继续;完成后核对导入记录成功数及生产商品/SKU/PDD/关联计数。
新增验收:
生产执行结果
实现完成,状态更新为待验收。
三个真实 Excel dry-run 通过:共 2075 个蝦皮商品、33049 条 SKU、11 个批次,最大请求约 1.02 MB;未调用生产写接口。Python 5 项测试及 Admin 固定 Go 1.23 build/test/vet 全部通过。
提交:acfa699、e4385ac。
生产部署和真实导入完成,状态恢复为待验收。
用户于 2026-08-12 明确验收通过。已确认本地归档
docs/task/146-商品目录Excel分批提交脚本.md存在,现关闭工单。