Estoy un poco confundido con la identificación de la orden y la identificación del incremento de la orden , entonces, ¿alguien puede ayudarme a comprender la diferencia entre estos dos?
Tengo un observador para sales_order_place_after donde guardo los detalles de ventas en una tabla personalizada.
Pero con
$orderId = $observer->getEvent()->getOrder()->getId();
Obtengo los identificadores de pedido como identificadores normales como 112 o 113 o 110, etc.no como 20001201
Entonces, ¿cuál es el ID de orden real, 20001201 o 112?
Necesito procesar aún más los datos de pedido en función de esta identificación de pedido, uso 112, 113, etc. y funciona, pero necesito aclarar esto.
fuente
id
= elsales_flat_order
valor de la clave primaria de la tabla. Esto se incrementa automáticamente para cada pedido que recibe en su tienda. Suele comenzar desde 1 y sube.increment id
= un número "fácil de usar" generado antes de realizar el pedido. Debe ser único y se utiliza como método de pago en línea como referencia (pero no solo).La identificación de incremento por defecto se ve así.
El número de ceros es variable. Se agrega usando
str_pad
para que la longitud de la identificación de incremento sin la identificación de la tienda sea8
.fuente
eav_entity_store
. Pero para el primer orden no hay registro en esa tabla. Entonces uno es creado. Cuando se crea, la identificación de la tienda se almacena comoincrement_prefix
. Vea cómo funciona en el métodoMage_Eav_Model_Entity_Type::fetchNewIncrementId
. A partir de la línea:if (!$entityStoreConfig->getId()) {
.Un pedido de ventas contiene dos valores, entity_id (Id. De pedido) e increment_id (Id. De incremento de pedido). Entity_id es la clave principal en la tabla de pedidos. Esto significa que lo usa para cargar la entidad de pedido real. Vea abajo
Y pasar
$order->getId();
o$order->getEntityId();
El increment_id es normalmente un número más amigable que a menudo es específico del sitio web / tienda, es decir, 20001201 el 2 en el frente a menudo significará que es un pedido de su segunda tienda / sitio web (no puedo recordar cuál). Esto a menudo se conoce como el ID de orden real. Puede cargar una entidad de pedido utilizando este increment_id
Y pasar
fuente
La
order_id
, que creo que es la mismaentity_id
, es la clave principal en la tabla sales_order utilizada para unir todas las tablas eav. Se usa internamente en magento.order_increment_id
se utiliza para mostrar al clientefuente