La primera vez que obtuve un número fuera de secuencia, tuvimos sorpresa y cierta consternación hasta que descubrí lo que estaba sucediendo. Tiene que ver con cómo Magento asigna los números de pedido de ventas.
Es completamente normal tener uno fuera de secuencia como ese, ser anterior a los números asignados actuales y tener un mes o más de antigüedad. El secreto es que fue un cliente registrado que no completó el pedido después de una cierta etapa crítica, regresó, inició sesión y finalmente decidió comprar.
La cotización con el número de pedido de ventas asignado usa ese número para el número de pedido de ventas.
Ahora para la explicación.
El proceso de pedido de Magento crea una cotización la primera vez que se agrega algo al carrito.
- Para los clientes invitados, esta cotización dura mientras su sesión no haya expirado, momento en el que existe en la base de datos, pero el cliente invitado no puede recuperarla.
- Cuando un cliente registrado inicia sesión, la cotización del carrito recibe su identificación de cliente para que el carrito dure mientras el cliente no lo vacíe y el cliente registrado pueda recuperarlo iniciando sesión en su cuenta.
En este punto, la cotización es solo un posible pedido de cliente. No tiene un número asignado porque el cliente no se ha comprometido a pagarlo.
A medida que el cliente hace clic en el botón Continuar para pagar, ellos:
- iniciar sesión antes de comenzar el carrito
- o si no inició sesión, se les preguntó si desean registrarse o salir como invitados.
Lo que sigue es un punto importante: los clientes que eligen registrarse en el carrito son tratados como clientes invitados hasta que se completa el pedido y llegan a la página de éxito, momento en el que se crea su cuenta y se registran. sigue siendo una cotización de cliente invitado con la pérdida de tiempo de espera del carrito de la sesión si el pedido no se completa y se muestra una página de éxito.
Con un pedido con tarjeta de crédito, sucede lo siguiente cuando se hace clic en el botón Realizar pedido .
- La información de la tarjeta de crédito, la información de la dirección de facturación, los totales del carrito y la información del pedido están reunidos
- Se asigna un número de pedido de ventas para esta cotización (
sales_flat_quote
tabla en la reserved_order_id
columna)
- El paquete de datos se envía a la puerta de enlace de la tarjeta de crédito para autorizar / calcular los fondos para pagar el pedido.
- El procesador del carrito de crédito devuelve:
- ya sea una autorización / captura de fondos con la información de transacción apropiada que se registrará
- o rechazo del pago con información apropiada sobre por qué se denegó la autorización / captura.
- Con una autorización / captura exitosa, la cotización se convierte en un Pedido de ventas y si se trata de un registro de carrito, se crea la cuenta del cliente.
Si la pasarela de pago de la tarjeta de crédito rechaza la transacción de la tarjeta de crédito para cualquier cliente, y el siguiente cliente realiza un pedido exitoso , se omitirá la secuencia del número de pedido de ventas debido a que el pedido rechazado se le asignó un número de pedido de venta reservado y al siguiente pedido de cliente exitoso se le asigna el siguiente número disponible.
Para los carritos de invitados (pedidos de invitados y clientes que no se registraron correctamente en el carrito) que exceden el tiempo de espera de la sesión, este número de pedido de ventas reservado se perderá cuando la sesión caduque, dejando huecos en la secuencia del pedido de ventas.
Para los clientes que iniciaron sesión antes de hacer clic en el botón Continuar , a la cotización se le asigna una identificación de cliente, por lo que si intentan hacer un pedido y descubren que se ha rechazado, pueden regresar, iniciar sesión, encontrar que el carrito todavía tiene contenido y colocar el orden, a veces mucho más tarde (el más largo hasta la fecha fue de cuatro meses). El presupuesto utilizará el número de pedido de cliente reservado asignado, lo que dará lugar a un número de pedido de cliente fuera de secuencia que se mostrará en la pantalla de gestión de pedidos de cliente.