MDVA-36572: Nova reserva de inventário criada após a atualização do aviso de crédito
Produtos e versões afetados
O patch foi criado para a versão do Adobe Commerce:
Adobe Commerce na infraestrutura em nuvem 2.4.1
Compatível com as versões do Adobe Commerce:
Adobe Commerce (todos os tipos de implantação) 2.3.5-2.4.2-p1
magento/quality-patches
para a versão mais recente e verifique a compatibilidade na Quality Patches Tool: página Procurar patches. Use a ID do patch como palavra-chave de pesquisa para localizar o patch.Problema
O observador de atualização de reserva de Aviso de Crédito é acionado sempre que o aviso de crédito é atualizado. De acordo com o contrato com o PO, a lógica de atualização de reserva foi alterada para ser acionada somente no memorando de crédito criado. A possibilidade de edições de memorando de crédito por API será revisada pelo PO, bem como no escopo de tíquetes separados.
Etapas a serem reproduzidas:
-
Criar conta de cliente.
-
Crie um produto simples.
-
Criar novo pedido, nota fiscal e aviso de crédito para o pedido.
-
Criar nova integração.
-
Verificar tabela 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)
-
Enviar solicitação GET para:
../rest/default/V1/creditmemo/3
-
Copiar resposta (exemplo):
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": [] }
-
Enviar solicitação POST para:
../rest/default/V1/creditmemo
code language-json { "entity": --paste full response from previous step here-- }
note note NOTE Essa carga útil é usada apenas para simplificar a reprodução - o cliente recebe o mesmo problema depois de atualizar seu atributo personalizado -
Verificar tabela inventory_reservation:
Resultados reais:
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)
Resultados esperados:
Não é criada nenhuma segunda reserva para o mesmo aviso de crédito.
Aplicar o patch
Para aplicar patches individuais, use os links a seguir, dependendo do tipo de implantação:
- Adobe Commerce ou Magento Open Source no local: Guia de Atualização de Software > Aplicar Patches na documentação do desenvolvedor.
- Adobe Commerce na infraestrutura em nuvem: Atualizações e patches > Aplicar patches na documentação do desenvolvedor.
Leitura relacionada
Para saber mais sobre a Ferramenta de correção de qualidade, consulte:
Para obter informações sobre outros patches disponíveis no QPT, consulte a seção Patches disponíveis no QPT.