opencart-catalog-migration — міграція великого магазину на OpenCart 3/4 або Хорошоп
Огляд
Міграція діючого високонавантаженого інтернет-магазину із застарілого рушія — OpenCart 1.5 / 2.x, PrestaShop 1.6, VirtueMart чи самописної CMS — на сучасний стек: OpenCart 3.0.x / 4.x на PHP 8.2+ або SaaS-платформу Хорошоп. Розрахована на каталоги від 10 000 SKU й зберігає все, що магазин накопичив: товари, варіації, історію замовлень і клієнтів. Мета — швидший сайт і завершення технологічного боргу без втрати даних і позицій у пошуку.
Складне й як із цим працюємо
| Складність | Як вирішується |
|---|---|
| Реляційний каталог: десятки характеристик, опції (розмір, колір, фасування), виробники, багаторівневі категорії | ETL зберігає всі зв’язки; атрибути й опції нормалізуються, структури варіацій відображаються на цільову модель даних, тож нічого не розсинхронізується |
| Клієнти та історія замовлень | Хеші паролів переносяться зі збереженням солі й сумісності автентифікації, адресні книги й повна історія транзакцій лишаються для програм лояльності |
| Брудний контент | Застарілі HTML-теги, inline-стилі, биті зображення й небезпечні скрипти прибираються з описів товарів автоматичними правилами й парсерами |
| Швидкість на масштабі | Тюнінг запитів і пошукових індексів MySQL, кешування Redis чи Memcached, Nginx FastCGI cache, конвертація всіх зображень каталогу у WebP |
| Позиції в пошуку | Старі SEO-URL (SEO PRO / alias) зіставляються з новою структурою й перетворюються на 301-правила для Nginx чи Apache |
Як це відбувається
Вихідна CMS (OpenCart 1.5 / PrestaShop)
│ SQL-дамп / ETL
▼
Екстрактор (скрипти на Go і Node.js)
├─ нормалізація атрибутів і опцій
├─ очищення описів товарів
├─ зіставлення ієрархії категорій
└─ карта 301 для старих URL
│ імпорт і валідація
▼
Ціль: OpenCart 3/4 (PHP 8.2) або Хорошоп
├─ односторінковий чекаут
├─ AJAX-фільтр за характеристиками
└─ фіскалізація Checkbox + Monobank + Нова Пошта
- Екстракція й трансформація. Пряма вибірка з MySQL таблиць
product,product_description,product_option,product_attribute,category,customerіorder, переформатована під цільову модель. - База даних і хостинг. PHP 8.1 / 8.2 з налаштованим OPcache, Nginx FastCGI cache і Redis для результатів фільтрації, пакетна конвертація у WebP із прев’ю потрібних розмірів.
- Функціонал. Швидкий AJAX-фільтр без перезавантаження сторінки, онлайн-оплата (Monobank, LiqPay), автоматична фіскалізація (ПРРО Checkbox / ВчасноКаса) і «Нова Пошта» з інтерактивною картою відділень і поштоматів.
- SEO. Стара структура URL зіставляється з новою, генеруються правила редиректів, тож старі посилання продовжують працювати.
Дивіться також: fastshop (швидка вітрина на OpenCart із 30 000 товарів), fiscalgate, feedsync.
Стек
OpenCart 3 / 4 · Хорошоп · PrestaShop · PHP 8.2+ · Go (ETL) · MySQL 8 · Redis · Nginx + PHP-FPM · Monobank API · LiqPay · ПРРО Checkbox · Nova Poshta API · Screaming Frog