Как правильно использовать мультимагазин в OpenCart без сторонних модулей


243

Мультимагазины в OpenCart - это одна из самых сильных и вкусных фич из коробки. Разные поддомены или домены, разные валюты, языки - всё уже есть в ядре. Но вот беда: модуль для вывода списка магазинов (который должен быть глобальным и удобным) в vanilla - это просто позор. Плохо стилизованный список, который ты вынужден пихать в какой-то layout как обычный модуль. При этом он глобальный по сути! Зачем его привязывать к layout'у? Это же базовая фича мультимагазина, а в ядре её до сих пор нет!

Логичное и практичное решение, которое я вижу на многих рабочих магазинах - это выводить его в шапке. Так я и сделал.

  • Если модуль включен - рядом с логотипом появляется текущий магазин (поле "Город", которое я добавил в общие настройки + в настройки каждого магазина). В дефолте только страна и регион, ладно, спасибо и на этом. Теперь видно "Москва", "Санкт-Петербург", "New York" или "Los Angeles" и можно легко и быстро переключаться между ними.
  • Перечень всех магазинов теперь выводится в модальном окне асинхронно (AJAX). Ссылок на другие магазины нет в серверном HTML - это плюс для SEO (не плодим дубли страниц), плюс страница грузится быстрее. Клиент кликает - открывается модальное окно с полным списком.
  • Добавил простой клиентский поиск по магазинам. Если у тебя 50+ точек (реальные сети, франшизы, склады) - поиск реально спасает. Вводишь город или адрес - мгновенно фильтрует. Без модулей за 40 баксов, без костылей.

Это не какая-то выдумка. Это то, что мультимагазин должен уметь из коробки. В vanilla ты либо живёшь с уродским списком в layout'е, либо пишешь свой модуль/тему, либо покупаешь очередного монстра за 100 баксов. Зачем?

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

Я ни на что не намекаю, но чтобы узнать надо попробовать. Ты же скачал сборку и уже тестируешь или опять ищешь модуль подешевле? 😉


Написать комментарий
Введите код с картинки