Магазин ковров perscarpet.ru: перенос с PHP-CMS на ядро Go без потери адресов

Каталог из 3 267 моделей, 22 270 размеров и 68 контентных страниц перенесли с SiteEdit на BuildNexus. Все 105 индексируемых адресов сохранили, а саму витрину пересобрали под реальную модель продаж: один ковёр может продаваться в нескольких размерах, и у каждого размера своя цена.
3 267 моделей ковров
22 270 размеров с ценой
105 адресов сохранено
3,7 ГБ изображений вместо 9,3 ГБ
perscarpet.ru — интернет-магазин ковров из Бельгии, Египта, Индии, Ирана, Молдовы и других стран. В каталоге 24 раздела верхнего уровня, 160 разделов всего и 44 бренда. Особенность такого каталога в том, что товаром фактически является не только модель ковра, но и конкретный размер. Поэтому за 3 267 моделями находится 22 270 вариантов с отдельными ценами.
Помимо каталога, на сайте есть 68 контентных страниц о чистке и реставрации ковров, доставке, товарах и компании. В них было 220 секций и 131 запись живого текста. При переносе нужно было сохранить не только товары, но и весь контент, который приводит на сайт отдельную аудиторию.
Прежний сайт работал на EDGESTILE SiteEdit — монолитной PHP-CMS на шаред-хостинге. В проекте использовались четыре почти одинаковых скина, 27 типов модулей, Bootstrap 3, 58 JS-файлов и таблица стилей на 114 КБ. Мобильная версия частично дублировала десктопную: в шаблонах отдельно лежали версии логотипа, телефона и выбора города для разных разрешений. Изменение шапки поэтому требовало правок сразу в нескольких местах.
Была и более существенная проблема: изменить поведение витрины без вмешательства в PHP-шаблон было практически невозможно. Архитектура сайта определяла не только внешний вид, но и то, как работает каталог.
При переносе сайт перевели на ядро BuildNexus на Go. Сервер собирает страницы, а интерактивные элементы подключаются точечно — без необходимости загружать на каждую страницу десятки скриптов. Одновременно данные каталога и контента отделили от шаблонов, чтобы дальнейшие изменения можно было делать на уровне проекта, а не переписывать код сайта.
Одним из главных изменений стала работа с размерами и ценами. На старой витрине показывалась цена за квадратный метр и отдельный список размеров. Для покупателя это создавало лишний шаг и могло давать неверное представление о стоимости конкретного изделия. В новой карточке модели сразу показывается диапазон цен по реальным размерам, а выбор конкретного варианта вынесен в понятные чипы размеров.
Изменилась и система подбора ковров. Вместо одного общего набора фильтров для всего каталога BuildNexus показывает фасеты текущего раздела, количество товаров у каждого значения и состояние уже применённых фильтров. Это позволяет не просто фильтровать каталог, а видеть, какие варианты действительно доступны в открытом разделе.
Структуру каталога также сохранили в том порядке, который использует магазин. Разделы и бренды не пересортировывались автоматически по алфавиту. Для плиток использовали реальные превью 300×300 вместо небольших иконок 64×64. На самом сайте каталог сейчас включает отдельные разделы по странам, материалам, стилям, форме и другим характеристикам, а также отдельную страницу брендов.
Отдельно переработали работу с валютой и округлением. Эти параметры вынесли из PHP-хелпера в справочник валют, который можно изменять через CRM. Цены при переносе нормализовали, поэтому итоговая сумма корзины не должна расходиться с ценами отдельных позиций.
Большой объём работы пришёлся на изображения. На диске старого сайта находилось около 26 ГБ графики, но реально использовались 11 408 файлов. Изображения нормализовали по именам и привели к единому боксу 1500. В результате объём используемой графики сократился с 9,3 до 3,7 ГБ без необходимости переносить неиспользуемый архив.
При миграции отдельно контролировали URL. Для интернет-магазина с большим количеством каталогов это критично: автоматическая генерация новых адресов могла привести к появлению дублей и потере накопленной поисковой истории. Все 105 индексируемых адресов сохранили, для необходимых изменений настроили 37 постоянных редиректов, а существующие слаги перенесли как данные. Это позволило не полагаться на новую систему транслитерации и не менять адреса только из-за отличий между платформами.
На новой платформе магазин получил функции, которых не было в прежней реализации: сравнение товаров, избранное, недавно просмотренные товары, страницу брендов с логотипами и переходом в каталог, а также живые подсказки при поиске. На сайте также работает определение города и выбор региона, чтобы показывать соответствующие данные по доставке и контактам.
Заявки из формы обратной связи теперь передаются в CRM и фиксируются как обращения. Контент, блоки и настройки модулей хранятся как данные и редактируются в Studio без необходимости менять PHP-шаблоны. Мобильные настройки также можно корректировать через встроенные инструменты BuildNexus.
При этом витрина perscarpet.ru не стала частью общего шаблона платформы. Она существует как отдельный модуль проекта и собрана под конкретную логику магазина. Поэтому обновления ядра BuildNexus не требуют переделывать магазин, а изменения, сделанные для perscarpet.ru, не затрагивают другие проекты.
В результате perscarpet.ru перешёл с монолитной PHP-CMS на современное Go-ядро без смены структуры индексируемых адресов. Каталог на 3 267 моделей и 22 270 размерных вариантов перенесён в новую модель данных, изображения оптимизированы с 9,3 до 3,7 ГБ, а управление каталогом и контентом отделено от кода витрины.
Сейчас магазин работает на новой платформе: доступны каталог, карточки товаров, подбор ковров, бренды, корзина, личный кабинет и контентные разделы.


