Shopify 商品与变体

商品变体涨到上千个后批量改价总是漏一半怎么处理

现象#

把一个商品扩到 1200 个变体后,后台变体列表翻到第三页开始转圈,脚本用 variants(first: 250) 只拿到前 250 个,剩下 950 个价格一直没改。

原因#

  • GraphQL 单次 connection 最多返回 250 条,不翻页永远只看得到第一页
  • productVariantsBulkUpdate 一次只能带一个 productId,跨商品改价必须逐个调用
  • productSet 一次写入的 inventoryQuantities 合计不能超过 50000 条,多地点时先撞上限
  • REST 的 /products/{id}/variants.json 已不支持 2048 变体,返回的是截断结果

处理步骤#

  1. 用 variants(first: 250, after: $cursor) 循环翻页,以 pageInfo.hasNextPage 作为退出条件
  2. 全量导出改用 bulkOperationRunQuery,JSONL 里按 __parentId 还原变体归属
  3. 改价按每批 100 个调 productVariantsBulkUpdate,只在同一 productId 内合并
  4. 库存改动走 inventorySetQuantities,别和变体写入抢同一个 50000 条配额
  5. 回写后对比 variantsCount 与改前数字,数量不一致说明有批次失败

验收标准#

抽查第 1000 个之后的变体,价格与新价一致;variantsCount 与改前相同,且返回的 userErrors 为空。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。