Миграция интернет-магазина Reazy с Woodmart на кастомную тему

REAZYCREATE

Перенос действующего интернет-магазина с Woodmart на полностью кастомную WordPress-тему с сохранением уже существующего функционала, данных WooCommerce и привычных для покупателей сценариев.

Главная цель проекта — убрать зависимость от тяжёлой универсальной темы, существенно ускорить магазин и получить возможность развивать интерфейс и бизнес-логику без ограничений Woodmart.

Главный экран сайта Plantis
ЗадачаWoodmart → кастомная тема
ПлатформаWordPress + WooCommerce
AJAX add to cartдо 4 сек → 300–400 мс
Моя рольFrontend + Backend + WooCommerce
О проекте

Не разработка магазина с нуля, а техническая миграция работающего e-commerce

На момент начала работ магазин уже несколько лет работал на WordPress, WooCommerce и теме Woodmart. Внутри накопилась собственная логика каталога, цен, остатков, корзины, доставки, избранного и интеграций.

Поэтому задача была сложнее обычной смены темы: нельзя было просто отключить Woodmart и сверстать новые шаблоны. Нужно было понять, какие части проекта зависят от темы, отделить их от бизнес-логики и перенести на собственную архитектуру без потери данных и рабочих сценариев.

После миграции WooCommerce остался источником товаров, заказов, покупателей, цен и остатков, а интерфейс и прикладная логика больше не зависят от возможностей готовой темы.

Главная задача проекта
Миграция Woodmart → custom theme

Отвязать магазин от темы и ничего не потерять

Миграция выполнялась поверх уже работающего WooCommerce-магазина. Существующие товары, категории, заказы, пользователи и большая часть данных остались на месте, а зависимый от Woodmart слой постепенно заменялся собственной реализацией.

Сохранение WooCommerce-данных

Магазин не переносился на новую CMS и не создавался заново. Товары, категории, цены, остатки, корзина и заказы продолжают использовать стандартную модель WooCommerce.

Разбор зависимостей Woodmart

Существующий кастомный код был отделён от функций, классов, разметки и поведения Woodmart. Там, где функционал раньше опирался на тему, появились собственные шаблоны, хуки и обработчики.

Миграция избранного

Для избранного предусмотрен перенос данных из Woodmart в YITH: у гостей товары мигрируют из cookie, у авторизованных пользователей — из данных Woodmart в базе, без потери уже сохранённых позиций.

Постепенная замена

Критичные e-commerce-сценарии переносились не как изолированная новая витрина, а с учётом уже работающих правил цен, наличия, упаковок, доставки и интеграций.

Производительность

Критичный AJAX-сценарий ускорен примерно в 10–13 раз

До переноса добавление товара в корзину по AJAX могло занимать до 4 секунд. После перехода на кастомную тему и переработки клиент-серверного взаимодействия этот же сценарий выполняется примерно за 300–400 мс.

Точечные AJAX-ответы

Для корзины реализованы собственные обработчики, которые возвращают необходимые fragments, totals, цены, статусы остатков и состояние интерфейса без полной перезагрузки страницы.

Без лишних расчётов

Например, доставка не рассчитывается при добавлении товара из каталога или карточки — расчёты подключаются там, где они действительно нужны: в корзине и checkout.

Собственные стили вместо слоя темы

Отключены стандартные WooCommerce-стили, блоковые стили WordPress и лишняя фронтенд-обвязка. Интерфейс собран из собственных CSS-модулей под конкретные страницы и компоненты.

Частичное обновление DOM

После операций с корзиной обновляются только связанные элементы: mini-cart, количество, цены, суммы, уведомления и статусы товара. Это уменьшает объём лишней работы на клиенте.

Сохранение бизнес-логики

Существующий функционал перенесён вместе с магазином

До смены темы в проекте уже была собственная WooCommerce-логика, связанная с ассортиментом, ценами, количеством товаров, аккаунтами покупателей, корзиной и оформлением заказа. При миграции её не заменяли стандартными возможностями новой темы, а перенесли в кастомную архитектуру и сохранили рабочие бизнес-сценарии.

Бизнес-правила WooCommerce

Сохранились существующие правила работы с товарами: продажа упаковками, персональные цены для отдельных групп покупателей, особенности сортировки и отображения ассортимента.

Пользователи и личный кабинет

Регистрация, дополнительные данные покупателей, структура личного кабинета и связанные сценарии были перенесены на новую тему без необходимости заново создавать пользовательскую базу или менять привычный процесс работы клиентов.

Корзина, checkout и избранное

Кастомные сценарии вокруг корзины, оформления заказа и избранного были сохранены, но больше не зависят от шаблонов и фронтенд-механики Woodmart. Для избранного отдельно предусмотрена миграция уже сохранённых пользователями товаров.

Интеграции и данные

Смена темы не затронула WooCommerce как источник товаров, заказов и покупателей. Существующие интеграции и служебные данные были сохранены, а новая тема продолжила работать поверх той же e-commerce-модели.

Развитие после миграции

После переноса функционал продолжили развивать уже без ограничений Woodmart

Кастомная тема стала не финальной точкой миграции, а технической базой для дальнейшей доработки магазина. Новые правила и интерфейсные сценарии теперь можно проектировать непосредственно под процессы бизнеса, не подстраивая их под возможности и структуру готовой темы.

Каталог и покупка

Каталог стал полноценным рабочим интерфейсом для оптового заказа

После миграции каталог и карточки товара можно было дорабатывать исходя из реального сценария закупки: покупателю важны не только изображение и цена, но и упаковка, количество, остаток, статус заказа и быстрое управление корзиной.

Собственная карточка товара

Разметка полностью контролируется темой и собирается через WooCommerce hooks. Можно менять структуру карточки, порядок данных и поведение элементов без привязки к компонентам Woodmart.

Количество прямо в каталоге

Работа с количеством вынесена непосредственно в листинг. Интерфейс учитывает упаковочный шаг, уже добавленное в корзину количество и актуальное состояние товара.

Остатки и предзаказы

Логика наличия стала точнее: для нужных групп товаров поддерживается покупка доступного остатка и дополнительного количества под заказ, включая отдельные правила минимального объёма предзаказа.

Фильтры и управление выдачей

Каталог получил собственную обвязку фильтров и выдачи: sidebar, мобильный сценарий фильтрации, управление количеством товаров и другие элементы можно развивать независимо от DOM и настроек готовой темы.

Асинхронный поиск

Поиск работает через собственный AJAX-обработчик и возвращает подходящие товары прямо в интерфейсе поиска, без перехода на промежуточную страницу результатов.

Цены, корзина и checkout

Бизнес-правила стали сложнее, а покупательский сценарий — проще

После переноса существующую e-commerce-логику расширили новыми правилами ценообразования, наличия и оформления заказа. Благодаря собственной теме эти изменения можно было реализовать как единую систему, а не набор обходных решений поверх Woodmart.

Многоуровневые оптовые скидки

К персональным ценам добавлена система скидок от суммы корзины. Уровни задаются из админки, рассчитываются от исходной стоимости товаров, а покупатель видит текущую скидку и сумму до следующего порога.

Единый pricing-слой

Персональные и оптовые скидки сведены в контролируемую систему расчёта: сохраняется исходная цена товара, корректно пересчитывается корзина и исключается случайное повторное применение скидок.

Корзина + checkout

Оформление заказа встроено в страницу корзины. Покупателю не нужно проходить отдельный стандартный checkout WooCommerce, а изменение состава заказа сразу синхронизируется с totals, скидками, доставкой и уведомлениями.

Собственные AJAX-сценарии

Изменение количества, удаление товаров и связанные операции обрабатываются точечно. Сервер возвращает только необходимые fragments и актуальные данные, что одновременно ускорило интерфейс и дало полный контроль над его состояниями.

Динамические условия заказа

В корзине рассчитываются и показываются бизнес-зависимые условия: достигнутый уровень скидки, следующий порог, минимальная сумма заказа и условия бесплатной доставки.

Доработанный checkout

Сценарий оформления адаптирован под физлиц и компании, дополнен необходимыми полями и связан с существующими доставочными интеграциями. DPD и DaData встроены в новый интерфейс без необходимости подстраивать его под шаблон Woodmart.

Интеграции и данные

Новая тема стала основой для развития аналитики, фидов и управления данными

После перехода на кастомную тему магазин продолжили развивать уже на уровне данных и интеграций. Были добавлены Яндекс Метрика E-commerce, собственная генерация YML / XML-фидов и управление бизнес-параметрами через ACF. Существующая интеграция WooCommerce с WOOMS была сохранена и доработана под новую логику каталога, корзины и оформления заказа.

Яндекс Метрика E-commerce

Полноценная аналитика действий покупателя, включая AJAX-сценарии

В новой теме реализована передача e-commerce событий для основных этапов взаимодействия с товаром: показ в каталоге, клик, просмотр карточки, добавление в корзину, удаление и покупка.

Отдельно учтена работа динамического интерфейса. Изменение количества и состава AJAX-корзины также передаётся в аналитику, поэтому Метрика получает реальные действия пользователя даже без перезагрузки страницы.

YML / XML

Собственный товарный фид из актуальных данных WooCommerce

В новой теме добавлена собственная генерация товарных YML / XML-фидов. Данные берутся непосредственно из WooCommerce: категории, товары, цены, изображения, описания, характеристики и другие необходимые параметры.

При формировании учитываются правила самого магазина — в том числе видимость отдельных категорий и особенности ценообразования. Генерация автоматизирована и выполняется по расписанию, поэтому фид обновляется вместе с каталогом без ручной подготовки файлов.

WooCommerce / WOOMS

Существующая интеграция сохранена и адаптирована под новую архитектуру

Интеграция с WOOMS продолжила работать после отказа от Woodmart, но была доработана с учётом новой структуры темы и расширенной логики магазина.

Кастомные каталог, корзина и checkout по-прежнему используют стандартные сущности WooCommerce, поэтому товары и заказы остаются совместимыми с внешней обработкой. Дополнительные данные заказа сохраняются в WooCommerce и могут передаваться дальше вместе с существующим процессом обмена.

ACF

Бизнес-настройки вынесены из кода в управляемые параметры

В новой теме ACF используется не только для контента страниц, но и как инструмент управления параметрами магазина. В Options вынесены значения, которые бизнес может менять без правки PHP — например, уровни скидок и пороги бесплатной доставки.

Структура полей поддерживается через ACF Local JSON, что позволяет хранить конфигурацию вместе с темой и стабильно переносить сложные группы и repeater-поля между окружениями.

После миграции магазин получил не только более быстрый интерфейс, но и собственный слой работы с данными: аналитика, товарные выгрузки и управляемые бизнес-параметры развиваются внутри проекта, а существующий обмен через WooCommerce / WOOMS остаётся частью общей архитектуры.

Архитектура новой темы

Новый функционал можно добавлять без борьбы с архитектурой темы

После миграции логика разложена по отдельным зонам ответственности: core, pricing, catalog, cart, checkout, account, integrations. Это делает проект понятнее и позволяет менять конкретный сценарий, не затрагивая весь магазин.

WooCommerce как ядро

Кастомная тема расширяет WooCommerce через шаблоны, hooks и filters. Нет отдельной параллельной корзины, каталога или системы заказов, которую пришлось бы синхронизировать.

Модульный WooCommerce-слой

Функции разделены на отдельные модули: остатки, add to cart, цены и скидки, категории, каталог, карточка товара, корзина, checkout, аккаунт и избранное.

PHP считает — JavaScript обновляет

Критичная бизнес-логика остаётся на сервере. JavaScript инициирует действие и применяет подтверждённое сервером состояние: fragments, totals, наличие, цены и сообщения.

Независимость от конструктора

Главная, служебные страницы и WooCommerce-шаблоны реализованы кодом темы и ACF. Новый функционал можно проектировать под задачу магазина, а не под доступные блоки Woodmart.

Контроль фронтенд-нагрузки

Стили и скрипты проекта подключаются явно. Стандартные стили WooCommerce и часть глобальных WordPress-ресурсов отключены, поэтому фронтенд не обязан загружать слой, который не используется в интерфейсе.

Технологии

Что под капотом

WordPress WooCommerce PHP JavaScript / jQuery AJAX ACF YITH Wishlist DPD DaData Яндекс Метрика E-commerce YML / XML Swiper

Кастомная тема построена как самостоятельный WooCommerce-проект: собственные шаблоны, CSS и JavaScript, отдельные AJAX-обработчики и модульная PHP-логика. Главный результат миграции — не только новый интерфейс, а более быстрый и управляемый технический фундамент для дальнейшего развития магазина.

Готовая тема стала ограничением для магазина?

Могу перенести действующий WooCommerce-магазин на кастомную тему без пересборки каталога и заказов с нуля: сохранить нужный функционал, убрать зависимость от готовой темы и дальше развивать проект под реальные бизнес-процессы.

    Имя
    Телефон / Telegram
    Опишите задачу или прикрепите ссылку
    Ответ обычно в течение рабочего дня