调用addProductsToCart时商品存在,却返回Selected option is not valid。这个错误通常发生在购物车写入前,说明选项UID与当前父商品、Store或变体不匹配。
实际处理步骤
- 使用与购物车相同的Store Header查询父SKU,从configurable_options.values读取uid和value_index,不要把attribute_id或option_id自行编码。
- selected_options必须包含组成真实子SKU所需的全部超级属性;只传颜色、不传尺码时无法解析唯一变体。
- 属性选项重建、环境迁移或Store切换后清除客户端保存的旧UID,再用本次products查询返回值提交。
- 自定义选项应使用其自己的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必须明确失败。

