ユーザーが小緑、大緑、小オレンジ、大オレンジから選択できるオプションを備えた、「Kudos Configurable」と呼ばれる構成可能な製品を作成しようとしています。
/ rest / V1 / products / KudosConfigへのPUTリクエストで次のJSONを使用して、APIを介して設定可能な製品が作成される段階になりました。
{
"product":{
"sku":"KudosConfig",
"name":"Kudos Configurable",
"price":30.00,
"status":4,
"type_id":"configurable",
"attribute_set_id":4,
"weight":1,
"extension_attributes":{
"stock_item":{
"qty":10,
"is_in_stock":true
}
}
}
}
子商品は、同じメソッドを介してサイズと色の属性が設定された4つのアイテムのそれぞれについて、次のJSONを使用するAPIを使用して作成されています。
{
"product":{
"sku":"KudosConfigGreenSmall ",
"name":"Kudos Configurable Green Small",
"price":30.00,
"status":0,
"type_id":"virtual",
"visibility":1,
"attribute_set_id":4,
"weight":1,
"extension_attributes":{
"stock_item":{
"qty":10,
"is_in_stock":true
}
},
"custom_attributes":[
{
"attribute_code":"kudos_colour",
"value":"328"
},
{
"attribute_code":"kudos_size",
"value":"330"
}
]
}
}
これは正常に機能し、属性が正しく設定された製品が作成されます。
最後の段階は、configurableProductLinkManagementV1サービスを使用して子製品をリンクすることだと思っていましたが、次のJSONで/ rest / V1 / configurable-products / KudosConfig / childへのPOSTリクエストを使用すると、HTTP 400不正なリクエストエラーが返されます。
{
"childSku":"KudosConfigGreenSmall"
}
親製品で他にやらなければならないことがあるのではないかと思っていますが、何を解決するのに苦労しています。configurable_product_optionsの配列を追加できるcatalogProductRepositoryV1サービス内で、これを試してみましたが、不正なリクエストエラーのみが返されました。
誰もがこれに当てることができるどんな光でも非常に高く評価されます、すでにこれにあまりにも長い時間を費やしました。
編集:
これで、configurable_product_optionsを構成可能な製品のPUTリクエストに追加しようとしましたが、これは次のようになります。
{
"product":{
"sku":"KudosConfig",
"name":"Kudos Configurable",
"price":30.00,
"status":4,
"type_id":"configurable",
"attribute_set_id":4,
"weight":1,
"extension_attributes":{
"stock_item":{
"qty":10,
"is_in_stock":true
},
"configurable_product_options":[
{
"attribute__id":"kudos_colour",
"label":"Colour",
"values":[
{
"value_index":340
},
{
"value_index":341
}
]
},
{
"attribute__id":"kudos_size",
"label":"Size",
"values":[
{
"value_index":343
},
{
"value_index":342
}
]
}
]
}
}
}
これを試すと、次のメッセージで400応答が返されます。
オプションの保存中に問題が発生しました。
特に役に立たなかった...
Googlingのクイックビットは、これがhttps://github.com/magento/magento2/issues/5580の問題であることを示唆しています。
次のステップは、お客様がconfigurable.phpファイルをハックできるかどうかを確認することです。
編集:configurable.phpファイルを変更しようとしましたが、違いはないようですが、同じエラーが発生するため、再び困惑しました。