Estou um pouco confuso com o ID do pedido e o ID do incremento do pedido. Alguém pode me ajudar a entender a diferença entre esses dois?
Eu tenho um observador para sales_order_place_after onde armazeno detalhes de vendas em uma tabela personalizada.
Mas com
$orderId = $observer->getEvent()->getOrder()->getId();
Recebo os IDs dos pedidos como IDs normais, como 112 ou 113 ou 110, etc., não como 20001201
Então, qual é o ID do pedido real, 20001201 ou 112?
Preciso processar ainda mais os dados do pedido com base nessa identificação, uso 112, 113 etc. e funciona, mas preciso esclarecer isso.
magento-1.8
orders
event-observer
Charlie
fonte
fonte
id
= osales_flat_order
valor da chave primária da tabela. Isso é incrementado automaticamente para cada pedido que você recebe em sua loja. Geralmente começa a partir de 1 e sobe.increment id
= um número "amigável" gerado antes de fazer o pedido. Ele deve ser exclusivo e é usado pelos métodos de pagamento online como referência (mas não apenas).O ID de incremento por padrão é semelhante a este.
O número de zeros é variável. É adicionado usando
str_pad
para que o comprimento do ID de incremento sem o ID da loja seja8
.fonte
eav_entity_store
. Mas, pela primeira ordem, não há registro nessa tabela. Então, um é criado. Quando é criado, o ID da loja é armazenado comoincrement_prefix
. Veja como funciona no métodoMage_Eav_Model_Entity_Type::fetchNewIncrementId
. Começando com a linha:if (!$entityStoreConfig->getId()) {
.Um pedido de venda contém dois valores, entity_id (ID do pedido) e increment_id (ID de incremento do pedido). O entity_id é a chave primária na tabela de pedidos. Isso significa que você usa isso para carregar a entidade do pedido real. Ver abaixo
E passar
$order->getId();
ou$order->getEntityId();
O incremento_id é normalmente um número mais amigável que geralmente é específico do site / loja, ou seja, 20001201, os 2 à frente geralmente significam que é um pedido da sua segunda loja / site (não consigo lembrar qual). Isso geralmente é chamado de ID do pedido real. Você pode carregar uma entidade de pedido usando este increment_id
E passar
fonte
A
order_id
, que acredito ser a mesmaentity_id
, é a chave primária na tabela sales_order usada para unir todas as tabelas eav. É usado internamente no magento.order_increment_id
é usado para exibir para o clientefonte