La documentation de l'API REST indique que PUT /V1/products/{sku}
crée plutôt que met à jour.
Est-ce une erreur dans les documents parce que j'aurais supposé qu'il s'agit d'une méthode de mise à jour et que POST est la méthode à créer?
La documentation de l'API REST indique que PUT /V1/products/{sku}
crée plutôt que met à jour.
Est-ce une erreur dans les documents parce que j'aurais supposé qu'il s'agit d'une méthode de mise à jour et que POST est la méthode à créer?
Réponses:
POST et PUT acheminent vers la même méthode, mais avec POST, vous ne pouvez pas passer sku
<route url="/V1/products" method="POST">
<service class="Magento\Catalog\Api\ProductRepositoryInterface" method="save"/>
<resources>
<resource ref="Magento_Catalog::products" />
</resources>
</route>
<route url="/V1/products/:sku" method="PUT">
<service class="Magento\Catalog\Api\ProductRepositoryInterface" method="save" />
<resources>
<resource ref="Magento_Catalog::products" />
</resources>
</route>
En regardant cette page: http://devdocs.magento.com/guides/m1x/api/rest/Resources/Products/products.html#RESTAPI-Resource-Products-HTTPMethod-PUT-products--id
Je peux voir pour PUT:
Description: vous permet de mettre à jour un produit existant.
J'ai un problème similaire mais dans mon cas, PUT ne fonctionne pas correctement car:
1) Trouvez tous les produits du chariot:
GET: http://my_host.dev/index.php/rest/V1/carts/8/items
(Je ne sais pas encore comment trouver le client cartId ) J'ai trouvé le bon numéro en augmentant le nombre de 1.
2) la réponse était:
[ { "item_id": 11, "sku": "MH07-M-Green", "qty": 1, "name": "Hero Hoodie", "price": 54, "product_type": "configurable", "quote_id": "8", "product_option":{ "extension_attributes":{ "configurable_item_options":[{"option_id": "90", "option_value": 53 }, {"option_id": "138",…] } } } ]
2) Mettre à jour le prix de l'article du panier en:
{ "cartItem": { "itemId": 11, "sku": "MH07-M-Green", "qty": 2, "name": "Hero Hoodie", "price": 1000, "productType": "configurable ", "quoteId": "8" } }
3) Je ne reçois pas le prix de l'article mis à jour dans le panier (ma réponse est la même qu'au point 1). Je dois également dire que je peux supprimer des articles du panier. Une solution pour ça?
Je vous remercie