MDVA-36572: nueva reserva de inventario creada después de actualizar el abono

Productos y versiones afectados

El parche se crea para la versión de Adobe Commerce:
Adobe Commerce en la infraestructura en la nube 2.4.1

Compatible con las versiones de Adobe Commerce:

Adobe Commerce (todos los tipos de implementación) 2.3.5-2.4.2-p1

NOTE
El parche podría ser aplicable a otras versiones con las nuevas versiones de la herramienta Parches de Calidad. Para comprobar si el parche es compatible con su versión de Adobe Commerce, actualice el magento/quality-patches paquete a la versión más reciente y compruebe la compatibilidad en la Quality Patches Tool: Página Buscar Parches. Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.

Problema

El observador de actualización de reserva de nota de abono se activa cada vez que se actualiza la nota de abono. Según el acuerdo con PO cambió la lógica de la actualización de la reserva para que solo se active cuando se cree la nota de crédito. La posibilidad de las ediciones de nota de crédito a través de API será revisada por PO también en el ámbito de tickets separados.

Pasos a seguir:

  1. Crear cuenta de cliente.

  2. Cree un producto sencillo.

  3. Crear nuevo pedido, factura y nota de abono para el pedido.

  4. Crear nueva integración.

  5. Comprobar tabla 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)
    
  6. Enviar solicitud de GET a: ../rest/default/V1/creditmemo/3

  7. Copiar respuesta (ejemplo):

    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": []
       }
    
  8. Enviar solicitud de POST a: ../rest/default/V1/creditmemo

    code language-json
        {
        "entity":
         --paste full response from previous step here--
        }
    
    note note
    NOTE
    Esta carga útil solo se utiliza para simplificar la reproducción: el cliente obtiene el mismo problema después de actualizar su atributo personalizado
  9. Comprobar tabla inventory_reservation:

Resultados reales:

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:

No se crea una segunda reserva para la misma nota de abono.

Aplicar el parche

Para aplicar parches individuales, utilice los siguientes vínculos en función del tipo de implementación:

Lectura relacionada

Para obtener más información sobre la herramienta Parches de calidad, consulte:

Para más información sobre otros parches disponibles en QPT, consulte la Parches disponibles en QPT sección.

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a