Я немного запутался с идентификатором заказа и порядка приращение идентификатора , поэтому может любой мне помочь понять разницу между этими двумя?
У меня есть наблюдатель для sales_order_place_after, где я храню данные о продажах в пользовательской таблице.
Но с
$orderId = $observer->getEvent()->getOrder()->getId();
Я получаю идентификаторы заказа как обычные идентификаторы, такие как 112 или 113 или 110 и т. Д., А не 20001201
Так какой же реальный идентификатор заказа, 20001201 или 112?
Мне нужно дополнительно обработать данные заказа на основе этого идентификатора заказа, я использую 112, 113 и т. Д., И это работает, но мне нужно уточнить это.
id
= значениеsales_flat_order
первичного ключа таблицы. Это автоматически увеличивается для каждого заказа, который вы получаете в своем магазине. Обычно начинается с 1 и идет вверх.increment id
= «удобный» номер, сгенерированный до размещения заказа. Он должен быть уникальным и использоваться в качестве справочного метода оплаты через Интернет (но не только).Идентификатор приращения по умолчанию выглядит следующим образом.
Количество нулей является переменным. Он добавляется с использованием
str_pad
длины идентификатора приращения без идентификатора магазина8
.источник
eav_entity_store
. Но для первого заказа в этой таблице нет записи. Итак, один создан. Когда он создан, идентификатор магазина сохраняется какincrement_prefix
. Посмотрите, как это работает в методеMage_Eav_Model_Entity_Type::fetchNewIncrementId
. Начиная с линии:if (!$entityStoreConfig->getId()) {
.Заказ на продажу содержит два значения, entity_id (идентификатор заказа) и increment_id (идентификатор увеличения заказа). Entity_id - это первичный ключ в таблице заказов. Это означает, что вы используете это для загрузки фактического объекта заказа. Увидеть ниже
И пройти
$order->getId();
или$order->getEntityId();
Increment_id обычно является более дружественным числом, которое часто зависит от веб-сайта / магазина, т. Е. 20001201 перед двумя часто означает, что это заказ из вашего второго магазина / веб-сайта (не помню, какой именно). Это часто называют реальным идентификатором заказа. Вы можете загрузить объект заказа, используя этот increment_id
И пройти
источник
order_id
, Который я считаю , это так же , какentity_id
, является первичным ключом в таблице sales_order , используемой для соединения всех таблиц EAV вместе. Это используется внутренне в magento.order_increment_id
используется для показа клиентуисточник