Как изменить номер заказа в Мадженто
Задача: изменить номер заказа при оформлении покупки в магазине на 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.