Я пытаюсь создать настраиваемый продукт под названием «Kudos Configurable» с возможностью выбора пользователем: маленький зеленый, большой зеленый, маленький оранжевый и большой оранжевый.
Я дошел до стадии, когда настраиваемый продукт был создан с помощью API с использованием следующего JSON в запросе PUT для / rest / V1 / products / KudosConfig.
{
"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
}
}
}
}
Дочерние продукты были созданы с использованием API с использованием следующего JSON для каждого из 4 элементов с атрибутами для размера и цвета, заданными одним и тем же методом.
{
"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 для связывания дочерних продуктов, но использование запроса POST к / rest / V1 / configurable-products / KudosConfig / child со следующим JSON возвращает ошибку HTTP 400 неверного запроса.
{
"childSku":"KudosConfigGreenSmall"
}
Я думаю, что может быть что-то еще, что мне нужно сделать с родительским продуктом, но я изо всех сил пытаюсь решить, что. В службу catalogProductRepositoryV1 вы можете добавить массив configurable_product_options, я пытался поиграть с этим, но получил только неверные ошибки запроса.
Любой, кто может пролить свет на это, был бы очень признателен, уже потратил слишком много времени на это.
РЕДАКТИРОВАТЬ:
Теперь попытались добавить 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 с сообщением:
Что-то пошло не так при сохранении опции.
Не особенно полезно ...
Краткая информация о поиске в Google позволяет предположить, что это проблема https://github.com/magento/magento2/issues/5580 .
Следующим шагом является проверка того, готов ли клиент взломать файл configurable.php.
РЕДАКТИРОВАТЬ: Теперь попытался изменить файл configurable.php, но, похоже, ничего не изменилось, все еще получая ту же ошибку, снова озадаченную.
источник