{
  "id": "E02",
  "slug": "shopify-translation-source-digest-review",
  "group": "ecommerce",
  "title": "Qwen3.8-Flash 实测：Shopify 商品翻译：把译文和原文 digest 绑定审核",
  "query": "Shopify 商品翻译 source digest",
  "goal": "把商品标题和说明翻为日文，保留资源 ID、字段 key 与原文摘要；修改原文后识别过期译文。",
  "input": {
    "sample_notice": "虚构业务样本；实际调用 apizt API。不是商店、客户或游戏生产数据。",
    "records": [
      {
        "id": "T1",
        "resource": "gid://shopify/Product/1001",
        "key": "title",
        "locale": "ja",
        "text": "Trail Cup 500 mL"
      },
      {
        "id": "T2",
        "resource": "gid://shopify/Product/1001",
        "key": "body_html",
        "locale": "ja",
        "text": "<p>Includes one lid.</p>"
      }
    ],
    "knowledge": [],
    "rules": {
      "tokens": {
        "T1": [
          "Trail Cup",
          "500 mL"
        ],
        "T2": [
          "<p>",
          "</p>"
        ]
      }
    }
  },
  "instruction": "逐条输出 id、value（日文译文）、source_ids。保留 Trail Cup、500 mL 和原HTML标签，不添加内容。程序生成 SHA-256 本地快照摘要。真实注册必须使用Shopify translatableContent提供的digest，不能把本地摘要冒充它。 source_ids只能选这些来源ID：T1,T2；不能用resource、字段名或虚构的编号。 T2中的Includes one lid.必须翻成日文可见文字，例如蓋が1つ付属します。",
  "columns": [
    "id",
    "value",
    "source_ids"
  ],
  "expected": [],
  "steps": [
    "分开保存 resource、key、locale、source。本例完整记录（含资源标识和规则）随请求发送；模型只输出译文，资源字段由程序从原记录回填。",
    "生成 translations-review.json，本地 source_sha256 用来发现编辑后过期，不是 Shopify 注册 digest。",
    "把原说明改成 two lids，再离线校验旧摘要应失败。真正注册前重新读取 translatableContent 的 digest，本篇不执行 mutation。"
  ],
  "trap": "本地 SHA-256 不等于 Shopify 提供的 translatableContentDigest，不能直接提交注册。",
  "sources": [
    {
      "label": "Shopify translationsRegister 与 digest",
      "href": "https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister"
    },
    {
      "label": "Qwen3.8-Flash 官方模型说明",
      "href": "https://docs.qwencloud.com/developer-guides/getting-started/latest-model"
    }
  ],
  "base_title": "Shopify 商品翻译：把译文和原文 digest 绑定审核",
  "model": "qwen3.8-flash",
  "model_label": "Qwen3.8-Flash",
  "request_options": {
    "enable_thinking": false
  },
  "omit_temperature": false
}
