Как изменить номер заказа в Мадженто
Задача: изменить номер заказа при оформлении покупки в магазине на CMS Мадженто на более короткий, например, пятизначный и содержащий буквы.
Теория:
Данные по заказам хранятся в базе данных Мадженто в следующих таблицах:
eav_entity_store eav_entity_type
В таблице eav_entity_store
есть два столбца (опции):
increment_prefix
– автоматический префикс прироста (первые значки, цифры) при формировании номера заказа
increment_last_id
– последние зафиксированные заказы (их полные номера – id) в системе
В таблице eav_entity_type
настраивается формат номера заказов/доставок/инвойсов/возвратов и т.д.
В этой таблице нас интересуют строки order
, invoice
, shipment
(их значения в столбце entity_type_id
) и столбец increment_pad_length
.
Значения в столбце increment_pad_length
определяют количество цифр в номере заказа (без учета префикса). По умолчанию это 8.
Исходные данные: нам нужно, чтобы следующий номер заказа (доставки, инвойса) начинался с аббревиатуры нашей компании (SW), стартовал с 25 и содержал всего пять цифр. Например, должен получиться номер SW25005.
Решение:
1) для начала нужно узнать используемые в таблице eav_entity_type
значения entity_type_id
(код операции). В нашем примере это:
- 11 – ID для заказов (order)
- 19 – ID для доставки (shipment)
2) нужно узнать используемые в таблице eav_entity_store
значения для store_id
(код магазина):
- 1 – для дефолтной версии сайта
- 8 – для русской версии сайта
3) обновляем поле increment_prefix
в таблице eav_entity_store
:
c 8 на SW25 для записей с store_id
8 в полях entity_type_id
со значеним 11 (это для номера заказа) и значением 19 (это для номера доставки)
4) изменяем поле increment_last_id
в этой же таблице на последний требуемый номер:
- для номера заказа с 800000512 на SW25005
- и для номера доставки с 800000512 на SW25005
5) изменяем для тех же ID операций в таблице eav_entity_type
в поле increment_pad_length
на 3 (длина номера заказа без префикса).
Финальный результат: следующий заказ в магазине будет иметь номер SW25006.