Магазин мебели: с самописной CMS на OpenCart за два месяца
В одиночку перенёс prime-wood.ru с самописной MyCMS 2013 года на OpenCart, релиз перед Новым годом. Покупатели смены движка не заметили, магазин работает на этой платформе седьмой год.
Что было
Осенью 2019 я пришёл в Prime Wood, компанию, которая делает офисную мебель под ключ. Магазин prime-wood.ru работал на MyCMS: самописная система 2013 года, шаблоны на Smarty, адреса вида /item/avance_1/, своя корзина на jQuery-диалогах. Разработчика системы в компании давно не было, и любая доработка означала разбор чужого кода без документации.

Каталог при этом большой и сложный: кабинеты руководителей, коллекции, сочетания цветов, цены в рублях, долларах и евро, размеры и вес у каждой позиции. Магазин приносил заявки каждый день, и остановить его было нельзя.
Что решил
Переписывать магазин с нуля вместе с дизайном я не стал. Решил сменить двигатель, оставив кузов: перенести каталог и всю логику на OpenCart (сборка ocStore 2.3), а дизайн оставить прежним до пикселя. Покупатель не должен был заметить, что под сайтом другая система.
OpenCart выбрал, потому что к тому моменту пять лет на нём работал: знал, где он ломается и как его чинить, и знал, что компания потом найдёт на него разработчика без меня.
Как переносил
Репозиторий начат 5 ноября 2019. Перенос каталога сделал своими SQL-запросами из таблиц старой системы в таблицы OpenCart: товары и разделы, цены в трёх валютах, размеры и вес, коллекции, сочетания цветов, SEO-поля. Старые адреса /item/<url> сохранил, чтобы не потерять позиции в поиске.
Старый фронтовый JS с диалогами корзины переехал внутрь OpenCart как есть и жил там ещё год: сначала работает, потом красиво. Фильтры по характеристикам в ноябре дописывал коллега, остальное делал сам.
Релиз сделали перед Новым годом, через два месяца после первого коммита.

Что было дальше
Год с небольшим после переноса магазин был полностью мой, фронт и бэк:
- своя тема, не покупная, и редизайны по ходу работы;
- поисковые подсказки на Sphinx;
- обмен с 1С, Roistat, курсы валют по расписанию, загрузка прайсов из командной строки;
- своя корзина: добавление коллекции целиком, коммерческое предложение из корзины;
- доработки админки под то, как в компании реально ведут каталог.


В начале 2021 я ушёл в Waviot. Нынешний дизайн магазина сделали после меня другие люди, на моей основе: платформа, каталог и бэк те же.

Что вышло
Проверил в октябре 2026, через семь лет после релиза. Магазин работает на той же платформе и той же теме: страницы отдаются за полсекунды, поиск и подсказки отвечают, корзина принимает товары, в карте сайта 26 тысяч адресов, в подвале «© 2008-2026».
Вывод
Миграция, которую не заметили покупатели, это не отсутствие изменений, а правильная граница: менять двигатель и не трогать кузов. Самая дорогая часть такого переноса не код, а данные: один аккуратный SQL из старых таблиц в новые стоит больше, чем любая тема. И платформу стоит выбирать так, чтобы магазин жил без тебя. Этот живёт.