Closed isaac-sparta closed 4 months ago
Según lo solicitado, acá está un video con el fenómeno ocurriendo en ambiente de pruebas de Magento. Como quedó un poquito grande lo envío por drive. https://drive.google.com/file/d/1Su689r-cMDsDY-0OWbRLIb7jewdsC2UV/view?usp=sharing
Por otro lado comentar que al intentar reproducirlo recién, no me resultó para un producto simple no asociado a configurable, pero sí se dio el comportamiento erróneo en un simple asociado a configurable como en el video (ej. la talla de un producto). Por si ayudase a reproducir el issue en sus ambientes.
Gracias
Gracias @isaac-sparta por el reporte, estamos resolviendo otras cosas en el plugin y tomamos lo que nos reportas. Lo tenemos priorizado en el sprint.
Esto quedo resuelto en https://github.com/TransbankDevelopers/transbank-plugin-magento2-webpay-rest/pull/104 y en la siguiente versión del plugin estará incluido.
Gracias Mauricio. Una duda. Hay un fenómeno muy similar que es cuando un pedido recibe confirmación de pago exitosa, y unos segundos después recibe una notificación de pedido cancelado. Me imagino que a nivel de front end podría ocurrir si el cliente paga exitosamente y luego realiza una acción que la pasarela de pago considere como una cancelación (¿volver atrás? ¿cerrar la pestaña?).
El fix que implementaron acá, ¿en teoría debería corregir también un comportamiento como el que acabo de describir? Este es más difícil de reproducir según yo pero sí lo hemos observado repetidas veces en producción.
Muchas gracias.
Hola, perdona la demora en la respuesta, efectivamente lo soluciona, el fix implementa una protección de que si la orden se encuentra en un estado que consideramos final, no pueda ser alterada ante nuevas peticiones.
Describe el bug
Si se realiza una compra, y en la pasarela de pago se hace clic repetidas veces en el botón para retroceder ("Anular compra"), la orden en Magento recibirá múltiples notificaciones de orden cancelada de parte de Transbank. Estas múltiples notificaciones de orden cancelada provocarán también que se descuadre el stock vendible de los productos que estaban en el carrito de la orden.
Ejemplo: -Agrego 1 unidad de un producto al carrito, y voy a la pasarela de pago de Transbank. Se crea el pedido que queda esperando confirmación de pago, y se crea una reserva por 1 unidad del producto. El stock vendible baja en 1 unidad debido a esa reserva. -En la pasarela de pago hago clic N veces en el botón Retroceder (ej. 10 veces).
Para reproducir
Comportamiento observado
La orden aparece cancelada, pero tiene repetidos registros de orden cancelada (notificaciones de parte del plugin del medio de pago). Al revisar en base de datos de Magento en la tabla de reservas (inventory_reservation), hay repetidos registros que cancelan la reserva del producto. Esto descuadra las unidades en reserva en la BD Magento y por ende descuadra el stock vendible del producto en el carrito.
Comportamiento esperado
La orden debería aparecer cancelada con 1 solo registro de orden cancelada desde el medio de pago. Un solo registro de anulación de la reserva en la tabla inventory_reservation. Y por ende el stock "volvería" a la misma condición anterior a la compra.
Capturas de pantalla
Pedido con múltiples registros de cancelación:
Versiones (por favor agrega aquí la siguiente información):
Contexto adicional
Agrega cualquier otro información sobre el problema aquí.