MDVA-36572 : Nouvelle réservation d’inventaire créée après la mise à jour de l’avoir sur le crédit
Produits et versions concernés
Le correctif est créé pour la version Adobe Commerce :
Adobe Commerce sur l’infrastructure cloud 2.4.1
Compatible avec les versions d’Adobe Commerce :
Adobe Commerce (tous les types de déploiement) 2.3.5-2.4.2-p1
magento/quality-patches
vers la dernière version et vérifiez la compatibilité sur la Quality Patches Tool : recherchez des correctifs sur la page. Utilisez l’ID de correctif comme mot-clé de recherche pour localiser le correctif.Problème
L’observateur de mise à jour de la réservation de la note de crédit est déclenché chaque fois que la note de crédit est mise à jour. Conformément à l’accord avec le bon de commande, la logique de mise à jour des réservations a été modifiée de manière à n’être déclenchée que lors de la création de l’avoir. La possibilité que les modifications des notes de crédit sur l’API soient examinées par le PO également dans le cadre de tickets distincts.
Étapes à reproduire :
-
Créez un compte client.
-
Créez un produit simple.
-
Créez une commande, une facture et un avoir pour la commande.
-
Créez une intégration.
-
Vérifiez la table inventory_reservation :
code language-sql select * from inventory_reservation; +----------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------------+ | reservation_id | stock_id | sku | quantity | metadata | +----------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------------+ | 1 | 1 | simple_1 | -1.0000 | {"event_type":"order_placed","object_type":"order","object_id":"","object_increment_id":"000000001"} | | 2 | 1 | simple_1 | 1.0000 | {"event_type":"creditmemo_created","object_type":"order","object_id":"1","object_increment_id":"000000001"} | +----------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
-
Envoyer une demande de GET à :
../rest/default/V1/creditmemo/3
-
Copier la réponse (exemple) :
code language-json { "adjustment": 0, "adjustment_negative": 0, "adjustment_positive": 0, "base_adjustment": 0, "base_adjustment_negative": 0, "base_adjustment_positive": 0, "base_currency_code": "USD", "base_discount_amount": 0, "base_grand_total": 105, "base_discount_tax_compensation_amount": 0, "base_shipping_amount": 5, "base_shipping_incl_tax": 5, "base_shipping_tax_amount": 0, "base_subtotal": 100, "base_subtotal_incl_tax": 100, "base_tax_amount": 0, "base_to_global_rate": 1, "base_to_order_rate": 1, "billing_address_id": 2, "created_at": "2021-04-05 23:43:45", "discount_amount": 0, "entity_id": 1, "global_currency_code": "USD", "grand_total": 105, "discount_tax_compensation_amount": 0, "increment_id": "000000001", "order_currency_code": "USD", "order_id": 1, "shipping_address_id": 1, "shipping_amount": 5, "shipping_incl_tax": 5, "shipping_tax_amount": 0, "state": 2, "store_currency_code": "USD", "store_id": 1, "store_to_base_rate": 0, "store_to_order_rate": 0, "subtotal": 100, "subtotal_incl_tax": 100, "tax_amount": 0, "updated_at": "2021-04-05 23:43:45", "items": [ { "base_cost": null, "base_discount_tax_compensation_amount": 0, "base_price": 100, "base_price_incl_tax": 100, "base_row_total": 100, "base_row_total_incl_tax": 100, "base_tax_amount": 0, "base_weee_tax_row_disposition": 0, "entity_id": 1, "discount_tax_compensation_amount": 0, "name": "simple_1", "order_item_id": 1, "parent_id": 1, "price": 100, "price_incl_tax": 100, "product_id": 1, "qty": 1, "row_total": 100, "row_total_incl_tax": 100, "sku": "simple_1", "tax_amount": 0, "weee_tax_applied": "[]", "weee_tax_applied_row_amount": 0, "weee_tax_row_disposition": 0 } ], "comments": [] }
-
Envoyer une demande de POST à :
../rest/default/V1/creditmemo
code language-json { "entity": --paste full response from previous step here-- }
note note NOTE Cette payload n’est utilisée que pour simplifier la reproduction. Le client rencontre le même problème après la mise à jour de son attribut personnalisé. -
Vérifiez la table inventory_reservation :
Résultats réels :
select * from inventory_reservation;
+----------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------------+
| reservation_id | stock_id | sku | quantity | metadata |
+----------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------------+
| 1 | 1 | simple_1 | -1.0000 | {"event_type":"order_placed","object_type":"order","object_id":"","object_increment_id":"000000001"} |
| 2 | 1 | simple_1 | 1.0000 | {"event_type":"creditmemo_created","object_type":"order","object_id":"1","object_increment_id":"000000001"} |
| 3 | 1 | simple_1 | 1.0000 | {"event_type":"creditmemo_created","object_type":"order","object_id":"1","object_increment_id":"000000001"} |
+----------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)
Résultats attendus :
Aucune deuxième réservation pour la même note de crédit n’est créée.
Appliquer le correctif
Pour appliquer des correctifs individuels, utilisez les liens suivants en fonction de votre type de déploiement :
- Adobe Commerce ou Magento Open Source sur site : Guide de mise à jour logicielle > Appliquer les correctifs dans notre documentation destinée aux développeurs.
- Adobe Commerce sur l’infrastructure cloud : mises à niveau et correctifs > Appliquer les correctifs dans notre documentation destinée aux développeurs.
Lecture connexe
Pour en savoir plus sur l’outil Correctifs de qualité, consultez :
Pour plus d’informations sur les autres correctifs disponibles dans QPT, reportez-vous à la section Correctifs disponibles dans QPT .