商品导入最容易失败的地方,往往不是Magento本身,而是CSV里混进了错误编码、拼错的属性代码,或者把正式数据一次性全部倒进去。我的习惯是先准备两个不会对业务造成影响的测试SKU:一个最简单的商品,一个带分类和库存的商品。小文件能成功,再扩展到几十、几百、几千条。

先从后台下载模板,不要自己猜列名

进入 System > Data Transfer > Import,把 Entity Type 设为 Products,然后点击 Download Sample File。不同站点可能有自定义属性,直接使用当前网站生成的模板,比从网上复制一份CSV可靠得多。

如果只是更新现有商品,不需要保留模板里所有列。Magento允许只提交 sku 和需要修改的字段。新建商品则要补齐当前属性集要求的必填字段。

先做一个最小可用文件

下面是一个用于测试的简单示意。属性集名称、网站代码、分类路径和税类名称要以你的后台实际值为准。

sku,store_view_code,attribute_set_code,product_type,product_websites,name,price,product_online,tax_class_name,visibility,weight,categories,qty,is_in_stock
TEST-IMPORT-001,,Default,simple,base,CSV导入测试商品A,99.00,1,Taxable Goods,Catalog Search,0.5,Default Category/Test,20,1
TEST-IMPORT-002,,Default,simple,base,CSV导入测试商品B,129.00,1,Taxable Goods,Catalog Search,0.8,Default Category/Test,5,1

这里有几个细节值得先确认:

  • sku 必须唯一,后续不能通过导入修改SKU本身。
  • attribute_set_code 写属性集名称,不是后台看到的数字ID。
  • product_websites 使用网站代码;多网站用后台设置的多值分隔符分开。
  • categories 写完整分类路径,例如 Default Category/Test。
  • product_online 为1表示启用,0表示禁用。
  • visibility 必须使用当前语言环境能够识别的选项值。若不确定,先导出一个现有商品查看实际写法。

CSV保存方式比看上去更重要

文件建议保存为UTF-8,并确认没有BOM。用Excel编辑时,要特别留意它是否自动改写了SKU、邮编、日期或长数字。像 000123 这样的值很容易被变成 123,包含字母E的长编号也可能被处理成科学计数法。

逗号、双引号和换行出现在商品名称或描述中时,应由CSV工具正确转义。不要用文本替换的方式随意处理引号,否则一处格式错误可能让后面的所有列错位。

后台导入时怎么选

  1. Entity Type 选择 Products。
  2. Import Behavior 选择 Add/Update。第一次测试不要使用Replace,更不要使用Delete。
  3. Error Strategy 可以先选遇错停止,Allowed Errors 保持较小的数字,便于发现第一处真实问题。
  4. 字段分隔符通常是英文逗号,多值分隔符要与CSV中的分类、网站等字段一致。
  5. 选择文件后先点 Check Data,验证通过再点Import。

“Check Data通过”只说明格式和主要引用关系可接受,不等于前台一定正确。导入完成后,还要打开两个测试商品,确认属性集、网站、分类、价格、库存和可见性都在预期位置。

最常见的几类错误

Attribute does not exist 通常是列名写成了后台标签,而不是属性代码。比如后台显示“品牌”,实际属性代码可能是 brand 或 manufacturer。

Value is not allowed 多半是下拉属性值不存在。导入不会替你可靠地创建所有属性选项,先在后台把颜色、尺寸等选项准备好,再导入商品。

URL key already exists 表示同一作用域中已经有相同URL Key。批量新建商品时,可以先不提供 url_key,让系统根据名称生成;如果必须控制URL,就提前做唯一性检查。

分类或网站不存在 时,不要直接改成数字ID。先导出一个已正确分配的商品,复制它的路径或代码,再替换SKU和其他业务字段。

放大批次前,先做一次可回退测试

两个测试SKU确认无误后,再导入20条。观察导入耗时、索引状态、日志和前台结果。如果文件中并不修改分类或URL,建议删除 categories 与 url_key 列,避免系统为每个商品重复生成URL Rewrite,批量数据越大,这个差别越明显。

正式导入前保存原始CSV、导出当前商品快照,并记录导入时间。Magento后台的Import History也可以下载本次文件和错误文件。出现问题时,先根据批次和SKU定位,而不是直接再导一次完整文件。


批量商品数据不确定怎么整理?

如果您的商品字段、属性集或多网站关系比较复杂,可以先用小样本做映射验证。需要协助检查CSV、制定导入顺序或处理失败记录,欢迎联系我们的团队。