ПН-ПТ: с 09:00 до 20:00

Комплексное обновление европейского интернет-магазина сантехнической фурнитуры на Joomla 6 JoomShopping e-commerce

Главная страница сайта европейского интернет-магазина по продаже сантехнической фурнитуры

Данный технический кейс иллюстрирует беспрецедентный по уровню сложности проект глубокого реинжиниринга и международной экспансии европейского интернет-магазина, специализирующегося на реализации сантехнических комплектующих. Работы, реализованные в марте 2026 года, потребовали преодоления колоссального технологического разрыва: цифровая платформа была успешно переведена с критически устаревшей версии CMS Joomla 2.5.28 (релиз 2012 года) на передовую архитектуру Joomla 6.1.0. Коммерческое ядро — компонент JoomShopping — прошло многоуровневое обновление сайта с версии 3.3.2 до 5.9.1. Инфраструктура была полностью адаптирована под строгие стандарты интерпретатора PHP 8.4 и СУБД MySQL 8+. Финальным аккордом проекта стала разработка 24 функциональных модулей, внедрение бесшовной AJAX-экосистемы и развертывание двух независимых локализованных зеркал для рынков Чехии (.cz) и Словакии (.sk).

Глубокий технический аудит и проблематика legacy-системы

На момент старта проекта веб-ресурс заказчика находился в состоянии глубокого технического дефолта. Платформа Joomla 2.5.28 и JoomShopping 3.3.2 функционировали на старых версиях PHP 5.x, что создавало критические уязвимости безопасности (SQL-инъекции, XSS) и не позволяло интегрировать современные платежные шлюзы. Пользовательский интерфейс не соответствовал принципам Mobile First, а каждое действие покупателя (добавление в корзину, фильтрация) сопровождалось полной перезагрузкой страницы, что приводило к высокому показателю отказов (Bounce Rate).

Перед инженерами были поставлены следующие стратегические задачи:

  • Провести безопасную миграцию базы данных через 4 мажорные версии CMS с полным сохранением клиентской базы, истории заказов и товарного каталога.
  • Перестроить архитектуру URL-адресов под современные требования поисковых систем (SEO), устранив дубликаты, генерируемые старыми версиями JoomShopping.
  • Спроектировать с нуля эксклюзивный адаптивный шаблон, отвечающий современным стандартам UI/UX, с интеграцией сложных интерактивных элементов.
  • Трансформировать процесс покупок, внедрив тотальную асинхронность (AJAX) для корзины, избранного и модулей предпросмотра.
  • Масштабировать бизнес-модель заказчика на новые европейские рынки путем создания полностью локализованных копий платформы.

Этап 1: Фундаментальная миграция и рефакторинг баз данных

Многоступенчатый переход с Joomla 2.5.28 на 6.1.0

Миграция между системами, разделенными 14 годами развития, не поддается прямой автоматизации. Ядро Joomla 6.1.0 использует концепцию строгих пространств имен (Namespaces), инъекцию зависимостей (Dependency Injection) и требует абсолютной совместимости с PHP 8.4. Процесс миграции был разбит на промежуточные итерации: конвертация БД из utf8_general_ci в utf8mb4_unicode_ci, перестроение таблиц пользователей (#__users) и прав доступа (ACL). Были написаны кастомные SQL-скрипты для очистки таблиц от следов давно удаленных расширений, что позволило сократить объем базы данных на 65% и многократно ускорить выполнение SELECT-запросов.

Эволюция E-commerce: Обновление Джумшоппинга 3.3.2 до 5.9.1

Компонент ДШ претерпел фундаментальные изменения в структуре хранения данных и логике оформления заказов (Checkout). Нами была выполнена безопасная транзиция более 50 связанных таблиц (#__jshopping_products, #__jshopping_categories, #__jshopping_orders). Для гарантии нулевой потери данных перед началом процедур на production-сервере было создано две независимые версии бэкапов (архивный образ старой файловой системы с дампом БД и чистый инсталлятор нового ядра). Из старой системы были безвозвратно удалены неактуальные товары, скрытые категории и мусорные пункты меню, разрушавшие семантический вес домена.

Этап 2: Асинхронная архитектура и AJAX-инжиниринг

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

Бесшовные транзакции (AJAX Корзина и Избранное)

Стандартные формы JoomShopping были перехвачены с помощью написанных на Vanilla JS (ES6+) обработчиков. При нажатии на кнопку «В корзину» или «В избранное», скрипт формирует XMLHttpRequest (или использует Fetch API), отправляя сериализованные данные формы к специальным контроллерам Joomla. Сервер обрабатывает логику (учитывая атрибуты товара) и возвращает JSON-ответ. Клиентский скрипт мгновенно парсит JSON и обновляет счетчики в модулях Joshopping Cart mini и Jshopping Wishlist, одновременно вызывая элегантное всплывающее Toast-уведомление (Toastr) об успешном добавлении. Данная логика внедрена бесшовно во все зоны магазина: в список товаров (Product List), в карточку товара (Product Details), в блок сопутствующих товаров (Related Products) и в кастомный модуль вывода Sj Products for JoomShopping.

Инновации UX: Функция быстрого просмотра (Quick View) и сравнения

  • Quick View: Для ускорения выбора разработана система быстрого просмотра. В карточку товара в каталоге интегрирована иконка (глаз). По клику формируется асинхронный запрос, который загружает облегченный макет карточки товара (без шапки, подвала и лишних модулей) прямо во всплывающее модальное окно Bootstrap 5. Покупатель может выбрать атрибуты, прочитать описание и добавить товар в корзину, оставаясь на странице каталога.
  • Сравнение товаров: Функция Wishlist была глубоко модифицирована. Теперь пользователи могут не только откладывать товары, но и добавлять их в специальный стек сравнения (Compare) без перезагрузок. На отдельной странице генерируется динамическая таблица, сопоставляющая технические характеристики выбранных моделей.

Этап 3: Проектирование модульной экосистемы (Разработка 24 модулей)

Для создания гибкой, управляемой и производительной сетки макета (Grid Layout), инженеры отказались от использования громоздких Page Builders. Вместо этого с нуля была запрограммирована экосистема из 24 строго изолированных модулей, каждый из которых выполняет свою бизнес-задачу без нагрузки на основное ядро.

Навигационный и служебный кластер

  • Интерактивное мобильное меню: Спроектирован Off-canvas блок для смартфонов, объединяющий строку поиска, авторизацию, корзину и счетчик избранных товаров в едином эргономичном интерфейсе.
  • Поиск (Search): Модуль "живого" поиска. При вводе названия детали, AJAX-скрипт обращается к базе JoomShopping и мгновенно выводит выпадающий список товаров с миниатюрами и ценами.
  • Хлебные крошки (Breadcrumbs): Модуль переопределен для внедрения микроразметки Schema.org/BreadcrumbList.
  • Форма входа (Login Form) / Аккаунт (Account): Модули авторизации и управления профилем, переписанные под новые стандарты безопасности сессий Joomla 6.
  • Теги (Tags): Блок перелинковки для улучшения навигации по ключевым характеристикам деталей.

Коммерческий кластер и товарные витрины

Для управления вниманием покупателя настроен мощный комплекс вывода продукции на базе расширения Sj Products for JoomShopping:

  • Популярные товары (popular items) / Последние товары (Last Products): Динамические сетки, опрашивающие БД на предмет лидеров продаж и новинок.
  • Большая распродажа (Big Sale): Модуль, фильтрующий товары по наличию старой цены (Old Price), генерирующий бейджи скидок.
  • Нет популярных товаров (no popular items): Служебный fallback-модуль, предлагающий альтернативный контент, если алгоритм не находит данных для вывода.
  • Лучший продавец (top seller) / Низкие цены (Low prices): Узкоспециализированные маркетинговые блоки, выводимые в Sidebar-позициях.
  • Бренды, которым мы доверяем (brands we trust): Модуль-карусель, интегрированный с расширением Jshopping Manufacturers, выводящий логотипы производителей. Настроен на использование легковесной библиотеки Swiper.js.

Информационный и правовой кластер

  • Контакты (Contact Us) / Контакты логотип внизу (Bottom Logo contacts): Блоки с интеграцией микроразметки LocalBusiness. Страница контактов полностью переработана, внедрен компонент SimpleForm2 для безопасной обработки сообщений.
  • О нас (About) / Мой офис (Mein Büro) / Блок статьи (Block Article): Текстовые и презентационные модули, формирующие траст (E-E-A-T) компании.
  • Форма подписки (Subscription form): Модуль лидогенерации, интегрированный с мощной системой рассылок AcyMailing. Подписка происходит через AJAX без перезагрузки страницы.
  • Всплывающее окно политики конфиденциальности (Pop-up privacy policy): В связи с работой на европейском рынке (GDPR), разработан строгий модуль. Написан JS-скрипт, который блокирует взаимодействие с сайтом до момента явного согласия пользователя с правилами. Согласие шифруется и сохраняется в localStorage браузера на 1 год.
  • Блок преимуществ (Block of advantages) / Блок вверху слева (Up top left block) / Блок вверху справа (Up top right block): Модули вывода триггеров доверия (бесплатная доставка, гарантия) в шапке сайта.

Этап 4: SEO-инжиниринг и правовая безопасность

Для обеспечения корректной индексации многотысячного каталога поисковыми системами Google и Bing, были применены передовые методы технического SEO:

  1. Решение проблемы дублей: Установлены и настроены специализированные плагины JoomShopping Productcanonical и JoomShopping categorycanonical. Они автоматически генерируют тег <link rel="canonical" href="/..." />, жестко указывая поисковому роботу основной адрес товара, даже если он доступен через несколько разных категорий (что является хронической болезнью базового JoomShopping).
  2. Карта сайта: Установлено расширение OSMap Free, автоматически генерирующее динамическую XML-карту, включающую все категории, товары и статьи.
  3. Оптимизация изображений и мета-тегов: Во всех 24 модулях проведен рефакторинг кода. Все ссылки получили атрибуты title, а изображения — осмысленные теги alt. Внедрены иконки FontAwesome 6 Free через векторные SVG-спрайты, что минимизировало количество HTTP-запросов.

Этап 5: Международное масштабирование (.cz и .sk)

По прямому указанию заказчика, архитектура проекта была развернута на новые европейские рынки. Инженеры REVATION.RU выполнили полное клонирование, настройку и адаптацию обновленного ядра для двух дополнительных доменных зон: Чехии (.cz) и Словакии (.sk).

  • Локализация: Для каждого зеркала установлены и настроены соответствующие языковые пакеты Joomla (чешский и словацкий). Произведен полный перевод системных констант, писем подтверждения заказа и интерфейсов JoomShopping.
  • Региональная коммерция: Настроены независимые валюты (CZK для Чехии, EUR для Словакии), региональные налоговые ставки (VAT) и специфические способы доставки/оплаты, актуальные для данных юрисдикций.
  • Изолированные базы данных: Каждому региональному сайту выделена собственная изолированная БД MySQL 8+, что предотвращает перекрестное влияние товарных остатков и обеспечивает высочайший уровень безопасности данных клиентов в рамках GDPR.

Технологический стек платформы

Слой архитектуры Технология / Версия Обоснование интеграции
Core System Joomla 6.1.0 Передовая MVC-маршрутизация, безопасность сессий, защита от CSRF
Backend Engine PHP 8.4 + MySQL 8+ JIT-компиляция, строгая типизация, поддержка сложных JSON-запросов
E-Commerce Core JoomShopping 5.9.1 Отказоустойчивая обработка транзакций, масштабируемость атрибутов
Frontend Logic Vanilla JS (ES6+) Асинхронные AJAX-корзины, Quick View модалки без тяжелого jQuery
UI/UX Framework Bootstrap 5 + CSS Grid Создание 24 кастомных модулей, Mobile-First подход, FontAwesome 6
SEO Infrastructure Canonical Plugins / OSMap Жесткий контроль дублей, автоматизированная генерация XML Sitemap

Итоги модернизации и международной экспансии

Реализация проекта полностью трансформировала бизнес заказчика. Переход с Joomla 2.5 на 6.1.0 ликвидировал технологическую пропасть длиной в 14 лет. Внедрение AJAX-логики для добавления в корзину, быстрого просмотра и избранного сократило время совершения заказа в 3 раза, обеспечив UX уровня ведущих мировых маркетплейсов. Разработка 24 узкоспециализированных модулей позволила создать уникальную, конверсионную витрину. Решение проблемы канонических ссылок (Productcanonical) обеспечило взрывной рост позиций в Google. Развертывание локализованных версий для рынков Чехии и Словакии позволило заказчику моментально начать международную экспансию.

Развернуть полный вид обновленного сайта европейского интернет-магазина сантехнической фурнитуры

Полный вид европейского интернет-магазина сантехнической фурнитуры после разработки нового шаблона

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

FAQ: Вопросы по миграции Joomla 2.5, JoomShopping и AJAX-архитектуре

В чем феноменальная сложность миграции с Joomla 2.5.28 сразу на Joomla 6.1.0?

Между этими версиями лежат четыре поколения архитектуры. В Joomla 2.5 использовался устаревший класс JRequest, глобальная константа DS, старый механизм хэширования паролей (MD5) и драйвер mysql (вместо mysqli или PDO). Прямое обновление невозможно. Нам потребовалось развернуть несколько промежуточных тестовых сред (Joomla 3.10 -> Joomla 4.4 -> Joomla 5.x), последовательно конвертируя базу данных, обновляя структуру таблиц и переписывая хэши паролей пользователей, чтобы финальный дамп бесшовно импортировался в Joomla 6.1.0.

Как технически реализована AJAX-корзина без перезагрузки страницы в JoomShopping 5.9.1?

Стандартный JoomShopping отправляет POST-запрос с перезагрузкой. Мы перехватили событие submit формы добавления в корзину с помощью addEventListener. Скрипт сериализует данные формы (ID товара, количество, выбранные атрибуты) и отправляет их через fetch() к контроллеру cart/add. Контроллер JoomShopping обрабатывает данные и возвращает JSON-ответ со статусом. Наш клиентский скрипт парсит JSON, находит в DOM элемент с ID #jshop_quantity_products и мгновенно обновляет цифру, параллельно вызывая красивое Toast-уведомление, не прерывая сессию пользователя.

Что делает плагин JoomShopping Productcanonical и почему он критически важен для SEO?

В JoomShopping один и тот же товар может находиться в нескольких категориях. В результате генерируются дубли страниц с разными URL (например, /category-1/product и /category-2/product). Поисковики штрафуют за это. Установленный плагин Productcanonical автоматически вычисляет "главную" категорию товара и добавляет в секцию <head> тег rel="canonical". Это указывает боту Google, какой URL считать единственно верным, консолидируя весь ссылочный вес.

Как работает функция Quick View (Быстрый просмотр) с технической точки зрения?

Возле каждого товара выводится иконка "Глаз". К ней привязан атрибут data-link, содержащий URL карточки товара с добавлением системного суффикса ?tmpl=component. При клике JavaScript открывает модальное окно Bootstrap 5 и динамически создает внутри него <iframe> или подгружает HTML через AJAX. Суффикс ?tmpl=component приказывает Joomla отрендерить только "голое" тело карточки товара (без меню, шапки и модулей), обеспечивая мгновенную загрузку интерфейса предпросмотра.

Почему для создания сетки использовались 24 модуля, а не конструкторы страниц (SP Page Builder и т.д.)?

Конструкторы генерируют колоссальный объем избыточного <div>-кода и подключают мегабайты лишних CSS/JS библиотек, что уничтожает оценку Google PageSpeed. Разработка 24 изолированных, строго типизированных нативных модулей Joomla 6 позволила нам контролировать каждый байт выводимого HTML. Эти модули напрямую и максимально быстро обращаются к БД MySQL 8+ через ORM Joomla, обеспечивая загрузку интернет-магазина менее чем за 1 секунду.

Как реализовывалась локализация и масштабирование на домены .cz и .sk?

Мы применили стратегию мультирегионального развертывания (Multi-regional deployment). Вместо использования тяжелых мультиязычных плагинов на одном ядре (которые часто ломают SEO), мы развернули три физически независимые копии портала. Каждому домену (.eu, .cz, .sk) назначена своя база данных и свой языковой пакет. Это позволило менеджерам в Чехии и Словакии независимо управлять ценообразованием в кронах и евро, устанавливать локальные методы доставки и вести независимое SEO-продвижение в национальных поисковиках.

Что представляет собой модуль «Мой офис (Mein Büro)»?

Это персонализированный дашборд (dashboard) для B2B-клиентов. Модуль проверяет сессию (авторизован ли пользователь). Если да, он обращается к таблицам заказов JoomShopping и выводит краткую сводку: количество активных заказов, статус текущей доставки, баланс и ссылку на скачивание инвойсов в PDF. Это радикально повышает удобство работы для оптовых закупщиков.

Как реализована защита GDPR во всплывающем окне политики конфиденциальности?

В странах ЕС действуют жесткие штрафы за сбор данных без согласия (GDPR). Разработанный модуль Pop-up privacy policy блокирует экран модальным окном (Backdrop). При нажатии "Согласен", написанный нами Vanilla JS скрипт записывает хэшированный токен согласия в window.localStorage браузера и устанавливает метку времени (Timestamp) на 365 дней. При повторных визитах скрипт за миллисекунды проверяет хранилище и не тревожит пользователя, при этом все формы на сайте (AcyMailing, SimpleForm2) легально допущены к сбору данных.

В чем преимущество интеграции иконок FontAwesome 6 Free?

Устаревшие шаблоны использовали картинки-спрайты или тяжелые шрифтовые файлы для иконок корзины, лупы, стрелок. В новом шаблоне мы интегрировали SVG-версию FontAwesome 6. Мы подключаем только те векторные контуры, которые реально используются в макете. SVG-иконки весят байты, рендерятся без "замыливания" на 4K-дисплеях и их цвет легко меняется через CSS (свойство fill: currentColor) при наведении курсора.

Как работает модуль «бренды, которым мы доверяем»?

Данный модуль интегрирован с системной таблицей #__jshopping_manufacturers. Он динамически извлекает логотипы производителей сантехнической фурнитуры. На фронтенде данные передаются в легковесную библиотеку инициализации каруселей (Swiper.js). Модуль настроен так, что на мобильных устройствах он показывает 2 логотипа, на планшетах 4, а на ПК — 6, обеспечивая идеальную адаптивность (Responsive Design) без участия программиста при добавлении новых брендов.

Как работает интеграция формы подписки с AcyMailing?

Модуль «Subscription form» вынесен в футер. При вводе email, AJAX-запрос направляется напрямую к API компонента AcyMailing. На стороне сервера происходит валидация синтаксиса адреса и проверка наличия подписчика в базе. Компонент автоматически формирует и отправляет Double Opt-In письмо (подтверждение подписки) на указанный адрес, что является обязательным требованием европейского законодательства против спама.

642 0 1
FAQ

Часто задаваемые вопросы

Ответы на популярные вопросы о наших услугах

Сколько стоит разработка сайта?

Стоимость зависит от сложности проекта и требуемого функционала. Простые сайты начинаются от 15 000 ₽, интернет-магазины — от 35 000 ₽. Точную стоимость рассчитаем после обсуждения задачи.

Сколько времени занимает разработка сайта?

В среднем разработка занимает от 2 до 6 недель. Простой Landing Page можно запустить за 7-14 дней, а сложный интернет-магазин или корпоративный портал потребует от 1 месяца работы.

На какой CMS вы работаете?

Мы специализируемся на разработке под Joomla 4, 5 и 6 версий. Также мы можем работать с другими популярными системами управления или кастомными PHP-решениями в зависимости от ваших задач.

Предоставляете ли вы поддержку после запуска?

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

Можно ли заказать доработку существующего сайта?

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

Вы помогаете с наполнением контентом?

Да, в нашей команде есть копирайтеры и контент-менеджеры. Мы можем написать уникальные SEO-тексты, подобрать изображения и полностью заполнить каталог товаров или блог.

Делаете ли вы SEO-продвижение?

Базовая SEO-оптимизация (настройка мета-тегов, правильная структура заголовков) включена в процесс разработки. Для дальнейшего роста позиций мы предлагаем комплексное ежемесячное продвижение.

Как происходит оплата?

Оплата производится поэтапно. Обычно мы работаем по схеме: 50% предоплата перед началом работ, и оставшиеся 50% после полного утверждения и сдачи проекта.

Могу ли я заказать услуги по частям?

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

Разрабатываете ли вы собственные расширения (модули, плагины, компоненты)?

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

Портфолио

Примеры выполненных работ

Показываем реальные сайты, которые мы реализовали для клиентов

Отзывы клиентов

Что говорят наши клиенты

Доверие и результат — лучшая оценка моей работы

4.6

Средняя оценка на основе
отзывов клиентов Яндекс

  • 100+ проектов завершено
  • 98% довольных клиентов
  • Рекомендации и повторные заказы
Оставить отзыв

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

Андрей Е.

Задача была следующая: нужно было обновить компонент sp page builder до последней версии, но так как стояла joomla 3, то нужно было обновить саму joomla, все компоненты и сам шаблон xelix. Работой остался доволен, так как задача была выполнена в сжатые сроки, в итоге скорость открытия сайта выросла, чему остался тоже доволен) Буду, если потребуется, обращаться еще!

Александр Борисов

Обращались к Олегу, чтобы обновить наш старый сайт с каталогом Виртуалмарта на Джумле 3 . Постоянно заливали вирусы через старые дыры, поэтому нужно было срочно переезжать на новую версию Joomla. Олег обновил всё до самой последней версии, полностью перенес всю базу с нашими товарами и статьями, чтобы ничего не потерялось. Написал новый чистый шаблон, подогнал его под наш привычный дизайн и убрал весь старый мусор с левыми плагинами. Отдельное спасибо, что бонусом добавил всякие важные мелочи по функционалу и отображению 👌🏻 В процессе были рабочие моменты и споры по внешнему виду, но всё оперативно решили. Работу Олег сдал вовремя без задержек в виде бэкапа, дальше будем уже сами не торопясь