调用addProductsToCart时商品存在,却返回Selected option is not valid。这个错误通常发生在购物车写入前,说明选项UID与当前父商品、Store或变体不匹配。

实际处理步骤

  1. 使用与购物车相同的Store Header查询父SKU,从configurable_options.values读取uid和value_index,不要把attribute_id或option_id自行编码。
  2. selected_options必须包含组成真实子SKU所需的全部超级属性;只传颜色、不传尺码时无法解析唯一变体。
  3. 属性选项重建、环境迁移或Store切换后清除客户端保存的旧UID,再用本次products查询返回值提交。
  4. 自定义选项应使用其自己的selected_options或entered_options UID,不能混入可配置属性UID。

检查命令

query { products(filter:{sku:{eq:"CONF-1"}}){items{... on ConfigurableProduct{configurable_options{attribute_code values{uid label value_index}} variants{product{sku}}}}}}

验证结果

有效组合可加入购物车且SKU对应正确子商品;缺属性、禁用子SKU和其他Store的旧UID必须明确失败。