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