商品表导入显示‘完成’,子变体却没有挂到上衣,未审核商品还意外公开。先别重传整表:商品类型、父子关系和发布状态都由 CSV 里的字段决定,需要用小文件把它们查清。CSV 是用逗号分隔字段的表格文件。
五行小样分别放一件简单商品、一件可变父商品、两个子变体和一行错误父商品关系,用来检查每一步。本篇使用 WooCommerce 原生导入器;CSV Import Suite 或 ERP(管理商品、库存和订单的系统)插件有自己的字段模式,不能混用。一两件商品可直接手工编辑,已有较多商品货号(SKU)的目录再用 CSV。
先分清新增还是更新,并保存备份
新增商品要使用没有与店内冲突的 SKU,变体也应有自己的唯一货号。更新商品则靠已有 ID(本店的商品编号)或 SKU 找到店内对象,勾选‘更新现有商品(Update existing products)’。错误货号可能改到另一件商品,不能以名称相似来匹配。
生产店先保留原文件、整理后的文件和当前商品导出,并做可恢复的商品、媒体与数据库备份,方法可参考备份恢复检查。商品 CSV 导出便于比较数据,但不是包含订单和插件配置的整站备份。
下面故意设置一行错误,只在隔离测试站使用。没有可恢复材料时,先完成准备,不拿大批供应商数据试生产。
取得模板,或复制这份五行 CSV
已有正确商品时,进入‘商品 → 所有商品’,点顶部‘导出(Export)’,选择需要的类型、分类和列,再点‘生成 CSV(Generate CSV)’。保留下载原文件,复制一份作模板。可以保留一件简单商品,以及一件可变商品和其子变体,参照它们的完整列名整理供应商数据。新版本若有‘导出已选商品’按钮,也可用它缩小范围。
没有可用模板时,可以把下面内容保存为 UTF-8 编码的 .csv 文件,仅在隔离测试站使用。这是最小关系示例,不含真实图片和库存,价格与货号都是教学值;生产文件换成自己的准确数据。
Type,SKU,Name,Published,Regular price,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global,Images
simple,CASE-01,测试保护壳,-1,29,,,,,,
variable,TEE-01,测试上衣,-1,,,颜色,"蓝, 灰",1,0,
variation,TEE-01-B,测试上衣蓝色,-1,29,TEE-01,颜色,蓝,1,0,
variation,TEE-01-G,测试上衣灰色,-1,31,TEE-01,颜色,灰,1,0,
variation,TEE-01-X,测试错误行,-1,31,TEE-MISSING,颜色,红,1,0,
第一行是列名,不计入五行商品。simple 是简单商品,variable 是父商品,variation 是子变体。父行放在子行前;子行 Parent 填父货号 TEE-01,已有父商品也可按 id:123 这类格式引用实际 ID,不要把别站导出的 ID 当成本店同一对象。
不看代码时,可以先用这张表确认五行各做什么:
| SKU | 身份与归属 | 试导后要核对 |
|---|---|---|
| CASE-01 | 独立简单商品 | 草稿、价格29 |
| TEE-01 | 蓝灰上衣的父商品 | 可变商品,颜色含蓝和灰 |
| TEE-01-B | 属于TEE-01的蓝色子行 | 父商品变体区有此SKU,价格29 |
| TEE-01-G | 属于TEE-01的灰色子行 | 父商品变体区有此SKU,价格31 |
| TEE-01-X | 故意写不存在的父SKU,并用红色 | 查真实失败/跳过记录,不当作一件正常新商品 |
完整文件可下载本例五行UTF-8 CSV。它与上方代码相同,含故意错误,仅用于隔离测试;导入前先看文件内容。
父商品的颜色列有蓝、灰两个值,子行每次只有一个。CSV 中多个属性值用逗号,因此父行的 "蓝, 灰" 要有英文双引号,不能把它拆成两列。这与后台属性输入框的竖线分隔不是同一种输入方式。此例使用商品自己的属性,所以 Attribute 1 global 为 0;全站共用属性按实际配置处理。
Published=-1 是草稿,0 是私密,1 是公开,2 是待审核。全设草稿适合本次试导,但不代表子变体已经启用可售,发布前还要逐行检查。不要以为 0 就是草稿。完整模式和样例下载见 WooCommerce CSV 官方说明。
供应商数据中的公式、合并单元格、币种符号和说明列先整理掉。用表格工具另存为 CSV UTF-8,再重新打开确认中文、货号和价格没有变形。
上传后,先看列映射再运行
进入‘商品 → 所有商品’,点顶部‘导入(Import)’,选择 CSV,按本次目的决定是否勾选更新,再点‘继续(Continue)’。本例在干净测试站创建新商品,不勾更新。
到‘列映射(Column mapping)’先逐项看下拉框:类型对应 Type,货号对应 SKU,名称对应 Name,发布状态对应 Published,常规价格对应 Regular price,父商品对应 Parent。再看属性名称、值、可见性和全局属性是否分别对应,不要把一个属性值列误配成描述。
不需要的供应商备注列选‘不导入’,未知列默认可能被忽略,不能随便映射到相近字段。全部确认后点‘运行导入器(Run the importer)’,等待完成,不刷新或离开页面。
要试图片,可在小样的 Images 中填真实、可直接打开的图片 URL,或官方支持的已有媒体文件名。多个图片地址用逗号分隔,并把这一格整体用英文双引号包住,例如 "https://example.com/main.jpg, https://example.com/detail.jpg";这两个教学地址要换成自己的真实图片链接。第一张是商品主图,后面的放商品图库,不用后台属性输入框的竖线分隔。云盘分享页和经过跳转脚本的链接不等于图片文件;本例空图片列先只检查商品关系,随后加入真实图再测试。
看失败行,修完后只导需要的内容
完成页面查看创建、更新、跳过和失败的对象,打开失败或跳过行的报告。第五行的 Parent=TEE-MISSING 找不到父商品,红色也不在父商品的蓝灰选项中,这就是刻意留下的错误。实际报错文案随版本不同,不能只追求五行全部显示成功。
先看真实商品是否需要这行。没有红色款,就从正式批次删掉它;确实要新增红色,先在测试父商品属性中增加红色并保存,再将该行 Parent 改为实际父货号,确认没有重复的红色变体。
如果这行确实没有创建成功,把它单独留在一个带相同表头的新 CSV 中,再按新增方式导入。如果已经创建但挂错关系,先查清当前对象,使用匹配的 ID/SKU 更新,或在隔离样本中由负责人整理,不能再新增一件同货号商品。
更新模式通常更新匹配商品,未匹配行跳过。WooCommerce 11.1 起,满足既有父商品、唯一识别值和父属性等条件的新变体可以在更新导入中创建;这不是‘勾更新就会补所有子规格’。较早版本或条件不齐时,按官方两批方法先处理父商品,再以新增方式导入尚不存在的子行。拿当前版本的一件父商品确认流程后再扩大。
打开商品,检查价格、变体和图片
在商品列表找到 CASE-01,打开看名称、货号、常规价格和草稿状态。再打开 TEE-01,看商品类型是否为可变商品,属性中是否有蓝、灰,变体区是否出现对应两行,各自 SKU 和价格是否正确。只看到父商品标题不算子行已导入。
本例所有行都是草稿,先用后台和预览检查。获得实际发布批准后,检查每个要卖的变体已启用、价格和库存正确,再发布父商品,未登录逐规格加入购物车;不要仅为测试图片而把整批草稿公开。
加入真实图片后,到‘媒体 → 媒体库’查看文件,再在商品页打开图片检查最终地址,确认从计划中的店铺媒体或 CDN(图片分发服务)加载。原生 CSV 导入器不负责图片替代文字的新增或修改,需按站点流程另填。
五行样本的商品关系、状态、价格和图片都符合实际安排,再按分类或供应商分批导入。保留每批文件和报告,抽查简单品、带变体父品及多图商品;发现同类错误就先修这一批。需要协助,可把脱敏 CSV、列映射和失败行发给跨境YOUNG。
导入已经结束,手动改商品却提示“更新失败”,那是另一次保存操作。先保住新增文字,再按保存请求与返回内容检查取错,不要靠再次导入整表覆盖。
常见问题
CSV 有重复 SKU,会自动覆盖已有商品吗?
不能这样假定。未勾更新时,既有 SKU 冲突可能被跳过或报错;勾更新时可能改到对应旧商品。先在商品列表查这个货号的实际对象,再决定更新还是修正货号,不靠重复上传试覆盖。
父商品出现了,子变体却没有挂上去,先看哪几列?
先看子行 Type=variation、唯一 SKU、Parent 的父 SKU 或 id: 格式,再比属性名称和值是否与父商品一致。核父行顺序和当前更新逻辑,查看失败/跳过报告。修一两行在测试站重试,打开父商品变体区确认,不只看产品总数。
导入后图片能显示,却仍从供应商地址加载怎么办?
先查 Images 是直接图片地址还是分享页,报告是否有取图错误,店铺媒体库有没有对应文件。页面仅借用临时供应商地址时,要取得有权使用的图并补入目标媒体,再更新商品引用。最终请求地址和文件都正确后,才扩大图片导入。