亚马逊格式数据转店匠商品导入模板.md
6.29 KB
亚马逊格式数据 → 店匠(Shoplazza)商品导入模板:转换说明
本仓库支持把 data/mai_jia_jing_ling/products_data/*.xlsx(亚马逊格式导出)转换为店匠后台可导入的 docs/商品导入模板.xlsx 格式。
对应脚本:
- 主入口:
scripts/amazon_xlsx_to_shoplazza_xlsx.py - 历史兼容:
scripts/competitor_xlsx_to_shoplazza_xlsx.py(仅名称过时,逻辑一致) - 模板写入复用工具:
scripts/shoplazza_excel_template.py
一、输入数据(亚马逊格式 xlsx)的关键字段
以 Competitor-US-Last-30-days-363464.xlsx 为例(文件名不影响:内容是亚马逊维度字段):
- ASIN:变体 id(我们视为
sku_id,会写入模板的商品SKU) - 父ASIN:父商品 id(我们视为
spu_id/product_id,会写入模板的商品spu,并用于分组 M/P) - 商品标题:商品标题(写入
商品标题*、SEO标题等) - SKU:亚马逊变体描述字符串(关键:解析出多款式维度)
- 示例:
Size: One Size | Color: Black
- 示例:
- 商品主图:图片 URL(用于
商品图片*/商品主图) - 价格($) / prime价格($):价格(用于
商品售价*/商品原价) - 详细参数:详情参数串(用于拼接
商品描述) - 上架时间:用于
创建时间 - 类目路径/大类目/小类目/品牌/商品详情页链接/品牌链接:用于专辑、标签、SEO、供应商URL、备注等
- 商品重量(单位换算)/商品重量/商品尺寸:用于
商品重量/重量单位/尺寸信息
注意:该数据源通常没有库存,脚本默认给每个变体一个固定库存(当前默认 100),以满足导入后的可用性。
二、输出数据(店匠导入模板)的核心规则(M / P / S)
店匠模板在 docs/商品导入模板说明.md 中定义了三种商品属性(商品属性*):
- S(单一款式):一个商品只有一个变体(只有 1 个 ASIN)
- 输出 1 行
- M(主商品)+ P(子款式):一个父商品(父ASIN)包含多个变体(多个 ASIN)
- 输出 1 行 M + N 行 P
- 且 同一商品的 P 行必须紧跟在 M 行后面(模板导入强约束)
本仓库的转换策略:
- 对每个
父ASIN分组:- 分组 size = 1 → 生成
S - 分组 size > 1 → 生成
M+ 多个P
- 分组 size = 1 → 生成
三、多款式(变体)是如何构造的(最关键部分)
1)为什么 “SKU” 列是关键
亚马逊格式里,变体的“颜色/尺码”等信息往往并不拆成多个列,而是集中在 SKU 字符串里,例如:
Size: One Size | Color: BlackColor: Red | Style: 2-Pack
店匠模板的多款式需要:
- M 行:
款式1/款式2/款式3写“维度名”(例如 Size / Color / Material) - P 行:
款式1/款式2/款式3写“维度值”(例如 One Size / Black / Cotton)
2)脚本如何从 SKU 解析出维度(key/value)
脚本会把 SKU 以 | 分割,再用 : 拆成 key/value:
- 输入:
Size: One Size | Color: Black - 解析结果:
{ "Size": "One Size", "Color": "Black" }
3)如何从多个变体里选出 “最多3个维度”
店匠模板只提供 款式1~3 三个维度,因此脚本会在一个 父ASIN 组内统计 key 的出现频次,并按优先级挑选最多 3 个维度:
- 优先级大致为:
Size、Color、Style、Pattern、Material…… - 如果一个组里解析不到任何 key/value,则退化为单维度:
Variant- M 行
款式1 = Variant - P 行
款式1 = ASIN
- M 行
4)M 行与 P 行分别填什么(避免导入报错)
根据模板说明,脚本遵循以下分工:
- M 行(主商品):
- 填:标题/描述/SEO/专辑/标签/主图/款式维度名
- 不填:价格、库存、重量等 SKU 级字段(保持为空更安全)
- P 行(子款式):
- 填:款式维度值、价格、商品SKU(ASIN)、库存、重量、尺寸、(可选)子款式图
- 不填:描述/SEO/专辑/供应商等 SPU 级字段(保持为空)
四、字段映射总览(高频字段)
- 商品spu ←
父ASIN(无父ASIN则用 ASIN) - 商品SKU ←
ASIN - 商品标题\* ←
商品标题 - 商品图片\* / 商品主图 ←
商品主图 - 商品售价\* ←
prime价格($)优先,否则价格($) - 创建时间 ←
上架时间(仅日期时补齐为YYYY-MM-DD 00:00:00) - 商品描述 ←
商品标题+详细参数(以 HTML 拼接) - 专辑名称 ←
大类目(无则取类目路径第一段) - 标签 ←
品牌,大类目,小类目 - 商品重量/重量单位 ← 优先解析
商品重量(单位换算)(如68.04 g) - 尺寸信息 ← 解析
商品尺寸前三段数字(英寸)拼成L,W,H
五、如何运行(生成导入文件)
1)先小批量验证(推荐)
python scripts/amazon_xlsx_to_shoplazza_xlsx.py \
--input-dir data/mai_jia_jing_ling/products_data \
--template docs/商品导入模板.xlsx \
--output data/mai_jia_jing_ling/amazon_shoplazza_import_SAMPLE.xlsx \
--max-files 1 --max-rows-per-file 2000 --max-products 50
性能提示(很重要)
- 旧实现如果用
ws.cell()逐格读取/写入,处理 1 个 xlsx 就可能非常慢(分钟级甚至更久)。 - 当前脚本已经使用
iter_rows(values_only=True)做快速读取,并默认启用 fast writer(写出时不逐格写模板)。 - 如需使用慢速的“按模板逐格写入”(不推荐),可加:
--no-fast-write
2)生成全量
python scripts/amazon_xlsx_to_shoplazza_xlsx.py \
--input-dir data/mai_jia_jing_ling/products_data \
--template docs/商品导入模板.xlsx \
--output data/mai_jia_jing_ling/amazon_shoplazza_import_ALL.xlsx
六、可扩展点(后续常见需求)
- 库存/上架/收税策略参数化:目前是脚本默认值(Y/N/100),可按目标店铺规则改为命令行参数。
- 更强的多款式解析:如果未来亚马逊格式
SKU不规范,可补充从详细参数里挖出Color/Size。 - 图片策略:目前 P 行用各自
商品主图;也可改为 M 行合并多图(逗号拼接)。