J'utilise Magento CE 1.7.0.2 avec SOAPv2 et WS-I. J'essaie de mettre à jour les produits avec la catalogProductUpdate
méthode -M.
La description dans l'exemple de code ci-dessous est mise à jour, mais pas l'attribut fabricant (= select). Le résultat de catalogProductUpdate
est bool(true)
.
J'ai essayé des variations (pas trop bonnes, mais je suis désespéré ;-)) telles que:
- attribuer la valeur entière 777 pour
$manufacturer->value
définir la valeur - dans / sans le champ additional_attributes définissez l'identifiant du produit (mais je suis sûr qu'il doit être défini dans additional_attributes)
- définissez le nom du fabricant au
$manufacturer->value
lieu de la valeur 777
Code:
$newProductData = new stdClass();
$additionalAttrs = array();
$manufacturer = new stdClass();
$manufacturer->key = "manufacturer";
$manufacturer->value = "777";
$additionalAttrs['single_data'][] = $manufacturer;
$newProductData->description = "Description Test1";
$newProductData->additional_attributes = $additionalAttrs;
$result = $client->catalogProductUpdate((object)array('sessionId' => $sessionId,
'productId' => "2110000010058 ",
'productData' => (object)$newProductData,
NULL,
'sku'
));
Éditer:
- Je l'ai testé avec SOAPv2 sans WS-I - fonctionne très bien.
- J'ai également créé un autre attribut pour les tests avec les mêmes paramètres (Dropdown, Scope, ...) qui n'est pas non plus mis à jour avec SOAPv2 WS-I mais le fait avec SOAPv2. Ces nouveaux attributs se comportent donc comme l'attribut fabricant.
- Essayer de définir la valeur d'un champ de texte dans les attributs_supplémentaires ne fonctionne pas non plus.
Des idées, des liens, des suggestions à ce sujet?
Lien: http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.update.html