Bottva: ускорили сайт в 4 раза и избавились от сбоев в работе с внешними сервисами
Перевезли интернет-магазин на OpenCart и настроили интеграции с «МойСклад» и СДЭК
https://bottva.ru
Клиент
Bottva — сеть магазинов с натуральными продуктами, органической косметикой и бытовой химией. Магазины работают в Самаре и Тольятти. Сайт служит полноценной онлайн-платформой для оформления заказов.
Задача
Обеспечить стабильную работу интернет-магазина: устранить ошибки в синхронизации с внешними сервисами, ускорить загрузку и перенести проект на CMS, способную справляться с большим ассортиментом.
ЧТО БЫЛО НА СТАРТЕ
Изначально мы занимались поисковой оптимизацией сайта Bottva. Он работал на WordPress с плагином WooCommerce. К ресурсу были подключены внешние сервисы:
- выгрузка данных из «МойСклад» — автоматическое отображение остатков товара на складе;
- модуль СДЭК — для доставки заказов пользователям магазина;
- блок с лентой из Instagram* — для публикации контента Bottva из соцсетей в новостном разделе сайта.
В процессе работы над SEO мы регулярно проверяли техническое состояние сайта. Постепенно стали замечать технические проблемы, которые мешали как поисковому продвижению, так и стабильной работе магазина. Решить их с помощью плагинов и базовой оптимизации было нельзя, поэтому потребовалась помощь разработчика.
Некорректная синхронизация данных
Главной причиной для беспокойства стала интеграция с «МойСклад». Используемое решение давно не обновлялось, а API сервиса со временем изменился. Это привело к нарушениям в синхронизации: на сайте отображались неактуальные остатки, а пользователи могли оформить заказ на товар, которого фактически не было в наличии. Такие ошибки подрывали доверие к магазину и мешали продажам.

Дополнительные сложности возникли с блоком Instagram*. После запрета Meta (признана экстремистской и запрещена на территории РФ) модуль перестал получать новые публикации. В админке начали появляться ошибки, а на сайте оставались старые посты.
* Принадлежит компании Meta, признанной экстремистской и запрещенной на территории РФ
Производительность
Скорость загрузки страниц была низкой. Причиной стала чрезмерная нагрузка на сервер и неэффективные SQL-запросы. Особенно проблемной оказалась таблица wp_postmeta, где хранились метаполя: она содержала сотни тысяч строк. Это замедляло работу и периодически приводило к блокировкам со стороны хостинга.
Ограничения по функционалу
Поддержка плагинов, которые были установлены, прекратилась, а архитектура сайта не позволяла реализовывать новые задачи. Это привело к ограничениям по функционалу сайта. Стало очевидно, что точечные доработки не решат проблему. Чтобы обеспечить стабильную работу и развивать магазин дальше, потребовался полноценный перенос ресурса на другую CMS, более подходящую для интернет-торговли.
ЧТО МЫ СДЕЛАЛИ
Выбрали новый «движок»
Важно было, чтобы CMS легко справлялась с большим ассортиментом, поддерживала внешние интеграции и не требовала лишних вложений со стороны клиента.
Мы выбрали OpenCart — систему, разработанную специально для интернет-магазинов. У неё открытый исходный код, большое сообщество и множество готовых модулей. По сравнению с WordPress она потребляет меньше ресурсов, быстрее работает и проще в администрировании. А ещё не требует платных лицензий, как, например, Bitrix. Для проекта с ограниченным бюджетом и высокой нагрузкой — это самое разумное решение.
Адаптировали дизайн без лишних затрат
Чтобы сэкономить время и средства, мы не разрабатывали дизайн заново. Вместо этого за основу взяли готовый шаблон из Figma. Он подошёл по общей логике и структуре, поэтому мы адаптировали его под задачи Bottva. А именно — изменили шрифты, цвета и элементы интерфейса, чтобы привести шаблон к фирменному стилю бренда.
Мы также добавили недостающие блоки, необходимые для полноценной работы магазина, и отрисовали те элементы, которые были реализованы на предыдущей версии сайта, но отсутствовали в изначальном шаблоне.
Перенесли сайт на новую систему
После согласования макета мы приступили к верстке и посадке сайта на OpenCart. Типовые модули платформы использовали только там, где они соответствовали требованиям. В остальном, реализовали собственные решения. Например, контент пришлось переносить вручную. Причина в том, что у WordPress и OpenCart разная структура баз данных и стандартный экспорт не сработал. Мы написали скрипты, с помощью которых выгрузили карточки товаров, категории, изображения и т. д. Это помогло перенести всю информацию без потерь и сохранить структуру каталога.
Доработали интеграции
Особое внимание уделили синхронизации с сервисами, которые раньше были нестабильными. Например, для интеграции с «МойСклад» доработали отдельное решение от amgroup. Напомним, ранее на сайте выгружались неактуальные остатки, а данные обновлялись с ошибками. Мы настроили синхронизацию так, чтобы на сайт не попадали товары с пустым артикулом, единицы веса передавались корректно, а при обновлении изменялись только выбранные поля — например, цена и остаток.
Модуль доставки через СДЭК донастраивали с учетом структуры заказов Bottva. За основу также брали готовое решение.

Расширили функционал сайта
Одной из ключевых задач было сделать сайт удобным в управлении. Чтобы администраторы могли добавлять страницы, редактировать структуру и запускать рассылки без участия разработчиков, мы расширили базовый функционал OpenCart за счет собственных решений. Мы собрали модуль настроек сайта, в который вошли:
- Система отзывов (в двух форматах: карточки и изображения);
- Раздел контактов с поддержкой нескольких городов;
- Произвольное меню с гибкой структурой;
- Блок FAQ (вопросы и ответы);
- Ссылки на соцсети;
- Просмотр заявок, пришедших с форм;
- Очистка кэша (в частности, кэш меню каталога);
- Подписка на новости с возможностью рассылки;
- Автоматическое отключение товаров без артикула.

Дополнительно мы внедрили кастомную фильтрацию товаров, разработанную с нуля. Она учитывает особенности каталога Bottva и не перегружает сервер, в отличие от стандартных решений с ограниченной гибкостью.
Еще одна важная функция, которую мы предусмотрели, — Flexible Content. Теперь администратор может собирать страницы из готовых блоков, не влезая в код. В библиотеку блоков вошли: врезка, преимущества, текст с изображением, форма, рекомендуемые товары, текстовый блок, отзывы и FAQ.
Завершили перенос и запустили сайт
После настройки основных процессов и переноса контента мы проверили структуру каталога и формы обратной связи. Когда основной сайт был готов, по аналогичной схеме мы перенесли региональный поддомен Тольятти. Вся логика и функциональность были сохранены.

Ключевые пункты разработки
- Сменили WordPress на OpenCart;
- Доработали шаблон под фирменный стиль и необходимый функционал;
- Перенесли сайт вручную без потери данных;
- Частично переписали интеграции с «МойСклад» и СДЭК;
- Разработали модуль управления настройками сайта;
- Добавили Flexible Content для самостоятельной сборки страниц;
- Сделали кастомную фильтрацию товаров;
- Перенесли функционал и на поддомен для Тольятти.
Результаты
Перенесли интернет-магазин на OpenCart, улучшили стабильность, ускорили работу сайта и добавили функционал для управления каталогом и контентом. Сейчас Bottva использует новую платформу без ограничений и технических сбоев, а мы продолжаем развивать проект.
В 4 раза
2 интеграции
~100 000 рублей
Дарим 8% скидки за любопытство!
Вы дочитали до конца и должны быть вознаграждены за интерес
Заберите свою скидку на любую ежемесячную услугу.