Sto cercando di creare un prodotto configurabile chiamato "Kudos Configurable" con opzioni che l'utente può selezionare tra verde piccolo, verde grande, arancione piccolo e arancione grande.
Sono arrivato al punto in cui un prodotto configurabile è stato creato tramite l'API utilizzando il seguente JSON in una richiesta 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
}
}
}
}
I prodotti figlio sono stati creati utilizzando l'API utilizzando il seguente JSON per ciascuno dei 4 articoli con attributi per dimensioni e set di colori con lo stesso metodo.
{
"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"
}
]
}
}
Funziona bene e i prodotti vengono creati con gli attributi impostati correttamente.
Avevo pensato che l'ultima fase fosse usare il servizio configurableProductLinkManagementV1 per collegare i prodotti figlio ma usando una richiesta POST a / rest / V1 / configurable-products / KudosConfig / child con il seguente errore JSON restituisce HTTP 400 errore richiesta errata.
{
"childSku":"KudosConfigGreenSmall"
}
Sto pensando che potrebbe esserci qualcos'altro che devo fare sul prodotto genitore, ma sto lottando per capire cosa. All'interno del servizio catalogProductRepositoryV1 è possibile aggiungere una matrice di configurable_product_options, ho provato a giocare con questo, ma ho ricevuto solo errori di richiesta errata.
Qualsiasi luce che chiunque possa far luce su questo sarebbe molto apprezzata, già impiegata troppo a lungo in questo.
MODIFICARE:
Ora ho provato ad aggiungere configurable_product_options nella richiesta PUT del prodotto configurabile, questo ora appare così.
{
"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
}
]
}
]
}
}
}
Quando provo questo, ricevo una risposta 400 con il messaggio:
Si è verificato un errore durante il salvataggio dell'opzione.
Non particolarmente utile ...
Un breve suggerimento su Google suggerisce che questo è il problema https://github.com/magento/magento2/issues/5580 .
Il prossimo passo è vedere se il cliente è felice di fare l'hacking sul file configurable.php.
EDIT: Ora ho provato a cambiare il file configurable.php ma non sembra aver fatto la differenza, ottenendo ancora lo stesso errore, così sconcertato di nuovo.