Estoy tratando de crear un producto configurable llamado "Kudos Configurable" con opciones para que el usuario seleccione entre verde pequeño, verde grande, naranja pequeño y naranja grande.
Llegué a la etapa en la que se creó un producto configurable a través de la API utilizando el siguiente JSON en una solicitud PUT a / 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
}
}
}
}
Los productos secundarios se han creado utilizando la API utilizando el siguiente JSON para cada uno de los 4 elementos con atributos de tamaño y color establecidos mediante el mismo método.
{
"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"
}
]
}
}
Esto funciona bien y los productos se crean con los atributos establecidos correctamente.
Pensé que la última etapa era usar el servicio configurableProductLinkManagementV1 para vincular los productos secundarios, pero usando una solicitud POST a / rest / V1 / configurable-products / KudosConfig / child con el siguiente JSON devuelve el error de solicitud incorrecta HTTP 400.
{
"childSku":"KudosConfigGreenSmall"
}
Estoy pensando que podría haber algo más que deba hacer en el producto principal, pero estoy luchando para resolver qué. Dentro del servicio catalogProductRepositoryV1 puede agregar una variedad de opciones_product_configurable, he intentado jugar con esto pero solo he recibido errores de solicitud incorrectos.
Cualquier luz que alguien pueda arrojar sobre esto sería muy apreciada, ya pasó demasiado tiempo en esto.
EDITAR:
Ahora he intentado agregar las opciones de producto configurable en la solicitud PUT del producto configurable, esto ahora se ve así.
{
"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
}
]
}
]
}
}
}
Cuando intento esto, recibo una respuesta 400 con el mensaje:
Algo salió mal al guardar la opción.
No particularmente útil ...
Un poco de Google sugiere que este es el problema https://github.com/magento/magento2/issues/5580 .
El siguiente paso es ver si el cliente está feliz de hackear el archivo configurable.php.
EDITAR: ahora he intentado cambiar el archivo configurable.php pero no parece haber hecho una diferencia, aún obteniendo el mismo error tan perplejo de nuevo.
fuente