Shopify 商品 CSV 校验器

Shopify 是在导入之后才告诉你哪里错了 —— 而最贵的那个错,也就是覆盖线上商品,它压根不会告诉你。先把文件查一遍。

🔒 你的商品数据不会离开浏览器。

在本地读取,绝不上传。
把你店里现有的 handle 加进来,以便检查是否会覆盖(可选,推荐)

在 Shopify 后台:商品 → 导出 → 全部商品,然后把 Handle 那一列粘到这里(每行一个)。什么都不会上传 —— 比对在你的浏览器里完成。

没人会警告你的那个导入错误

Shopify 按 Handle 匹配商品。如果你 CSV 里的某个 handle 在店里已经存在,导入就是更新那个商品 —— 用你文件里的内容替换掉它的标题、描述、定价和变体。而导入会报告成功。界面上没有任何东西告诉你,线上商品已经被重写了。

这就是校验器要你提供现有 handle 的原因:在你点下导入之前,这是唯一能知道「哪些商品即将被替换」的办法。

同一个 handle 的各行必须挨在一起

一个商品的所有行必须相邻。如果同一个 handle 在文件更靠后的地方 —— 在别的商品之后 —— 又出现一次,Shopify 会把后面那一段当成同一商品的另一次导入,于是前一段里的变体消失了。按 handle 排序就能避免。

为什么要在这里查条码?

Shopify 对条码字段里的任何文字照单全收,不做校验。那个坏掉的条码随后流进你连接的每一个销售渠道 —— Google、Meta、Amazon —— 并在那些地方把你的商品拒掉,离造成它的那个文件已经很远。本校验器对这一列跑完整的 GS1 检查。

本工具执行的全部检查(24 条规则)

表头与文件结构

SHP-H01 缺 Handle 列

Handle 是 Shopify 用来指认每个商品、并把商品与它的变体归到一起的那一列。没有它,导入直接失败。

修复: 加一列 Handle。用小写单词加连字符,例如 "stainless-water-bottle"。

Shopify 官方文档 ↗

SHP-H02 缺 Title 列

每个新商品都必须有 Title。「Invalid CSV header: missing headers: Title」是被报告最多的导入错误之一 —— 它通常意味着表头行被改过名,或者这个文件是从别的平台导出来的。

修复: 加一列 Title,一字不差地写作 "Title"。

Shopify 官方文档 ↗

SHP-H03 这个列名不是 Shopify 的标准字段

这一列与 Shopify 的模板对不上。不认识的列在导入时会被忽略,所以像 "Vairant Price" 这样的拼写错误不会大声失败,而是悄悄把那一列数据丢掉。

修复: 对照 Shopify 商品 CSV 模板核一下拼写;确实是有意加的列就删掉(metafield 列要写成完整的 "Metafield: namespace.key [type]" 形式)。

Shopify 官方文档 ↗

SHP-H04 重复的列

同一个列名出现了两次。Shopify 读哪一个是未定义的,于是其中一份取值会被悄悄丢掉。

修复: 删掉或改名重复的那一列。

Shopify 官方文档 ↗

SHP-H05 这一行的字段数与表头不一致

某一行的字段比表头多或少,通常意味着有一个逗号没被引号包住,或者某个取值里夹了换行。取值会整体左移或右移,落进错误的列。

修复: 含逗号或换行的取值用双引号包起来,取值内部的引号写成两个。

Shopify 官方文档 ↗

handle 与商品分组

SHP-D01 Handle 是空的

没有 Handle 的行挂不到任何商品上。变体行必须重复它所属商品的 Handle。

修复: 把 Handle 填上。变体行要一字不差地重复父商品的 handle。

Shopify 官方文档 ↗

SHP-D02 Handle 里有非法字符

handle 只能包含小写字母、数字和连字符 —— 它会成为商品 URL 的一部分。大写字母、空格、下划线、斜杠和带重音的字符都不合法。

修复: 转成小写,其余字符一律换成连字符:"Water Bottle 1L" → "water-bottle-1l"。

Shopify 官方文档 ↗

SHP-D03 同一个 handle 的行被拆散在文件各处

共用一个 handle 的所有行必须相邻。当一个 handle 在别的商品之后再次出现时,Shopify 会把后面那一段当成同一商品的另一次导入 —— 后一段覆盖前一段,前一段里的变体随之消失。

修复: 按 Handle 排序,让每个商品的各行挨在一起。

Shopify 官方文档 ↗

SHP-D04 Handle 撞上了店里已有的商品(有静默覆盖风险)

导入按 Handle 对照。如果这个文件里的某个 handle 在你店里已经存在,导入会直接改掉那个线上商品,而不是新建一个 —— 而且没有任何提示。这是 Shopify 导入里最贵的一次事故:界面报告「成功」,线上商品却已被悄悄替换。

修复: 导入之前先把当前商品导出一份,对一遍 handle。真正是新商品的,给它一个店里还不存在的 handle。

Shopify 官方文档 ↗

SHP-D05 商品级字段在变体行上重复出现

只有一个 handle 的第一行承载商品级字段(Title、Body、Vendor、Type、Tags)。在变体行上重复它们对 Shopify 来说不算错误,但同一 handle 的各行之间取值一旦冲突,其中一个就被悄悄丢掉了。

修复: 每个 handle 的第二行及以后,把商品级的列留空。

Shopify 官方文档 ↗

变体与选项

SHP-V01 有选项取值,却没有选项名

某一行给了 "Option1 Value",但这个商品没有 "Option1 Name"。Shopify 会以「You need to add option values for …」拒绝导入。

修复: 在该 handle 的第一行设好 Option1 Name(例如 "Size"),并给每个变体行一个 Option1 Value。

Shopify 官方文档 ↗

SHP-V02 变体行上有选项名却没有取值

商品声明了一个选项(例如 Size),但这个变体行把对应的取值留空了。每个变体都必须为每个已声明的选项给出取值。

修复: 把这一行的选项取值填上;如果这个商品本来就没有变体,就把该选项去掉。

Shopify 官方文档 ↗

SHP-V03 重复的选项组合

同一商品的两个变体行有完全相同的选项取值(例如两行都是 Size=M、Color=Blue)。Shopify 保留一个,丢掉另一个。

修复: 一个商品的每个变体都需要一组独一无二的选项取值组合。

Shopify 官方文档 ↗

SHP-V04 一个商品的变体太多

Shopify 限制一个商品最多 100 个变体。超出的行会被拒绝而其余照常导入,商品于是只装了一半。

修复: 把商品拆开,或者减少选项组合的数量。

Shopify 官方文档 ↗

SHP-V05 跨商品重复的 SKU

同一个 SKU 出现在不同商品的变体上。Shopify 允许这样,但库存跟踪、履约以及大多数第三方应用都假定 SKU 是唯一的。

修复: 给每个变体各自的 SKU。

Shopify 官方文档 ↗

字段取值

SHP-F01 价格无效

价格必须是用句点作小数点的纯十进制数 —— 不能有货币符号,不能有千分位,也不能用逗号当小数点。"1,299.00" 和 "$19.99" 都过不了。

修复: 写 1299.00 和 19.99。导出之前把该列设为文本,或者设为不带分隔符的数字格式。

Shopify 官方文档 ↗

SHP-F02 图片 URL 无效

Image Src 必须是一个完整、公网可达、以 http:// 或 https:// 开头的 URL。相对路径和本地文件路径通不过校验(报出来的错误是「Validation failed: Invalid URL provided」)。

修复: 用公网托管图片的完整 URL。

Shopify 官方文档 ↗

SHP-F03 布尔取值无效

Published、Variant Requires Shipping、Variant Taxable 和 Gift Card 只接受 TRUE 或 FALSE。像 "yes"、"1"、"Y" 这样的写法会被拒绝。

修复: 用 TRUE 或 FALSE。

Shopify 官方文档 ↗

SHP-F04 库存策略取值无效

Variant Inventory Policy 只接受 "deny"(缺货即停售)或 "continue"(缺货继续卖)。

修复: 用小写的 deny 或 continue。

Shopify 官方文档 ↗

SHP-F05 重量或库存数量无效

Variant Grams 与 Variant Inventory Qty 必须是数字。取值里夹着文字或单位("500g"、"12 pcs")会被丢掉,或者让这一行失败。

修复: 字段里只放一个光秃秃的数字;单位属于 Variant Weight Unit。

Shopify 官方文档 ↗

SHP-F06 条码无效

Variant Barcode 这一列通不过 GS1 校验。Shopify 把你给的东西原样存下,但一个坏掉的条码会传播到你连接的每一个销售渠道 —— Google、Meta、Amazon —— 并在那些地方把你的商品拒掉。

修复: 拿商品上印的号码核对一遍条码,并把该列设为文本格式,免得表格软件继续把它弄坏。

Shopify 官方文档 ↗

编码与脏数据

SHP-E01 弯引号或非 UTF-8 标点

没被引号包住的字段里出现弯引号(“ ”)或其他 Word 风格的标点,会把 CSV 解析弄坏 —— Shopify 报的是「illegal quoting」错误。它们来自在 Word 或 Google Docs 里写的文案。

修复: 把文件存成 UTF-8 CSV,并把数据字段里的弯引号换成直引号。

Shopify 官方文档 ↗

SHP-E02 被表格软件弄坏的取值

这个取值带着表格软件做数字转换的指纹:科学计数法(8.71E+12)、末尾多出的 ".0",或者一个丢了前导零的条码。光靠这个文件本身,原始数据往往已经找不回来了。

修复: 从源头重新导出,并把受影响的列设为文本格式。

Shopify 官方文档 ↗

SHP-E03 字段里有不可见字符

取值里有零宽空格、不换行空格,或者一个 BOM。它们在表格里看不见,却会成为商品标题、handle 或 SKU 的一部分 —— 这就是为什么两个「一模一样」的 SKU 后来会对不上。

修复: 把受影响的取值重新敲一遍,或者在导入前先清洗文件。

Shopify 官方文档 ↗

关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →