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


234

В дефолтном OpenCart (и ocStore тоже) с меню всё предсказуемо грустно. Главное меню - это тупо корневые категории, у которых ты поставил галочку "Главное меню" (или как там она называется). На этом возможности управления кончились. Хочешь добавить страницу "Доставка"? Придется марать лапки правкой шаблона, а то и контроллера. Не для этого мама тебя растила, такую снежиночку. Хочешь бренды, акции, блог, контакты? Ишь чего удумал!

А теперь представь: хомячок заходит на сайт, видит вверху жирное, всегда видимое (sticky, липнет к верху при скролле) меню. Не надо искать глазами "где тут каталог", "а где акции", "а как связаться". Всё на виду. Кликнул - сразу получил. Конверсия не растёт сама по себе, но такой UX точно не мешает ей расти. Это не про «красиво», это про механику: мозг видит навигацию, вероятность клика растёт, меньше отказов.

В exopencart я сделал именно так - нормальное, взрослое главное меню из коробки, без установки очередного мега-монстра, в котором вроде есть всё, но даже презренные скрипт кидди чувствуют нутром, что-то здесь нечисто (а под капотом там вообще грязь в 99% случаев).

Что же именно я сделал:

Каталог - кликаешь, выезжает удобное модальное окно со всеми категориями и подкатегориями (дерево, красиво, быстро). Видимость категорий в этом модальном окне определяется той же галочкой «Главное меню» в настройках категории. Никаких сюрпризов.

Бренды - либо прямая ссылка на страницу всех производителей, либо (мой любимый вариант) - модальное окно со списком брендов. Это бомба для SEO: все бренды индексируются, ссылки живые, а юзер не уходит на отдельную страницу просто посмотреть "а есть ли у вас Samsung?".

Акции - прямой переход в раздел Special со всеми текущими скидками. Просто и честно.

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

Статьи из information - любая информационная страница (Доставка, Оплата, Гарантия, Возврат и т.д.) появляется в меню автоматически, если в админке у статьи включён чекбокс «Показывать в меню». Гибко до безобразия - добавил текст, поставил галку, готово. Никаких правок шаблонов.

Контакты - не убогий дефолт, а нормальная страница: все мессенджеры, телефоны, email, адрес, интерактивная карта (Yandex/Google на выбор), плюс список точек продаж/складов из раздела Система/Локализация/Точки продаж.

А если тебе меню вообще не нужно?

Например, ты делаешь промо-сайт или одностраничник, без проблем, идёшь в расширения > модуль «Главное меню» и выключаешь его одним кликом. Там же можно поотключать отдельные разделы (убрать Бренды, Акции, Блог, Контакты), настроить порядок, видимость и прочие мелочи. Никакого зоопарка настроек - всё по делу.

Это золотая середина: достаточно гибко для 95 % магазинов, но при этом код остаётся чистым, понятным и легко правится. Не MegaMenu на стероидах с 500 параметрами, где даже автор через месяц забывает, как оно работает, а править вообще откажется, иначе этот Франкенштейн умрёт во время операции. В общем я просто взял и сделал то, что реально нужно большинству (и мне самому в первую очередь, это ж pet project).

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


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