Кейс: сайт производственной компании на Joomla — мультиязычный каталог и четыре отдела редакторов без хаоса

Завод, соединённый с сайтом-витриной, вокруг которого четыре редактора разных отделов с пиктограммами — рупор, коробка, люди, папка — и переключатель языков RU/EN сверху

Исходная ситуация: что болело у клиента

Дисклеймер. Это собирательный кейс: он основан на нескольких похожих внедрениях ITfresh для производственных компаний, но названия, цифры и детали изменены и обобщены, чтобы не раскрывать данные заказчиков. Технические решения — настоящие, ровно такими мы пользуемся в работе.

Меня зовут Евгений Семёнов, я технический директор ITfresh. Мы обслуживаем IT-инфраструктуру московских компаний до пятидесяти рабочих мест — серверы держим в дата-центре МТС, за плечами больше пятнадцати лет практики. Сегодня разберу типовое внедрение, которое хорошо показывает, за что я люблю Joomla в корпоративном сегменте: сайт производственной компании, где контент правят четыре разных отдела и при этом никто никому не наступает на ноги.

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

  • новость о выставке публикуется неделю — через письмо «куда-то», напоминания и ожидание;
  • англоязычная версия — вручную скопированные страницы, которые давно разъехались с русскими: на EN-версии висят снятые с производства модели;
  • каталог продукции — статические страницы, характеристики в них правит только «тот самый» подрядчик;
  • заявки с сайта падают в общий ящик info@, где тонут между спамом и счетами.

Требования сформулировали быстро: нормальный каталог продукции с характеристиками и чертежами, честная английская версия, возможность редактировать сайт силами четырёх отделов без риска «кто-то удалил главную», и чтобы заявки долетали в CRM отдела продаж. Отдельным пунктом — независимость от конкретного подрядчика: обжёгшись раз, директор хотел систему, которую сможет подхватить любой специалист с рынка.

Почему выбрали Joomla, а не WordPress и не Bitrix

Мы не «джумла-студия» и не защищаем никакую CMS по религиозным соображениям — ставим клиентам и WordPress, и коробки, когда это оправдано. Здесь выбор решили три фактора.

Первый — права доступа. Четыре отдела в одной админке — это ровно тот случай, где у Joomla до сих пор фора: гибкие ACL (списки контроля доступа) с группами, наследованием и правами на уровне отдельных категорий встроены в ядро. В WordPress из коробки пять фиксированных ролей, и тонкую нарезку «маркетинг правит новости, но не каталог» дают только сторонние плагины.

Второй — мультиязычность. В Joomla ассоциации языков — штатный механизм: связал русский и английский материал, переключатель языка сам ведёт на правильную страницу, hreflang генерируется ядром. В WordPress это опять плагины — со своей ценой, своими багами и своим циклом обновлений.

Третий — деньги и независимость. Полноценный интернет-магазин клиенту не нужен (каталог без корзины — B2B-продажи идут через менеджеров), поэтому переплачивать за коммерческую платформу с ежегодным продлением лицензии незачем. Joomla распространяется по GPL, бесплатна для коммерческого использования, а специалистов по ней на рынке достаточно, чтобы не зависеть ни от нас, ни от кого-либо ещё.

Таблица критериев, как мы её показывали директору (упрощённо):

КритерийJoomla 6WordPressКоммерческая коробка
Права для 4 отделовв ядре, до уровня категорииплагиныесть
RU + EN версиив ядреплагиныесть
Каталог с характеристикамиядро: кастомные поляплагины/конструкторыесть
Лицензия0 ₽ (GPL)0 ₽ (GPL)десятки тыс. ₽/год
Зависимость от подрядчиканизкаянизкаясредняя
Капча/формы без сервисов Googleв ядре (PoW-капча)плагинызависит

Немаловажно и то, что проект живой: на момент внедрения актуальной была ветка Joomla 6.1 «Nyota» с визуальным редактором workflow и встроенной proof-of-work капчей, security-релизы выходят регулярно. Про сам движок и его состояние в 2026 году я подробно писал в обзорной статье серии.

Проектирование структуры: каталог на кастомных полях

Главный архитектурный выбор проекта: не ставить CCK-конструктор контента, а собрать каталог на штатных механизмах — категориях, материалах и кастомных полях ядра.

Структура получилась такая. Категории повторяют товарные линейки: «Насосное оборудование», «Компрессоры», «Запчасти и оснастка» — с подкатегориями до второго уровня. Каждая единица продукции — обычный материал Joomla в своей категории. А всё, что отличает карточку товара от статьи, сделано наборами кастомных полей, привязанными к категориям каталога:

  • числовые поля — мощность, производительность, масса;
  • поля-списки — класс защиты, тип привода, напряжение питания (жёсткие справочники, чтобы редакторы не плодили «380В», «380 В» и «~380»);
  • медиа-поля — фотографии изделия и, отдельным полем, чертежи в PDF;
  • поле-файл — сертификаты и декларации соответствия.

На витрине шаблон выводит поля таблицей характеристик, а модуль фильтрации позволяет сузить список по значениям полей — «компрессоры от 15 кВт с классом защиты IP54» находятся в два клика.

Почему не CCK? Потому что каждый крупный конструктор — это фактически вторая CMS внутри первой: свой формат хранения, свои шаблоны, своя судьба при мажорных обновлениях. Штатные поля переживают обновления ядра безболезненно — что и подтвердилось: плановые апдейты в течение года не потребовали ни часа доработок каталога. Для сравнения: на «наследных» сайтах с конструкторами каждое мажорное обновление — мини-проект.

Перенос данных — отдельная песня, о ней в разделе про грабли: 800 позиций каталога жили в Excel-файле, который вёлся годами без какой-либо дисциплины.

Мультиязычность: русский + английский без плагинов

Включение второго языка в Joomla — это штатная последовательность: устанавливаем языковой пакет, создаём языковые категории контента, включаем плагины «Языковой фильтр» и «Языковые ассоциации», дублируем меню. После этого у каждого русского материала появляется вкладка ассоциаций, где он связывается со своим английским переводом — и переключатель RU/EN на любой странице ведёт ровно на её перевод, а не на главную.

Что переводили, а что нет — решение бизнесовое, и его стоит принимать до старта:

  • каталог — полностью: карточки, характеристики, чертежи с двуязычными подписями; это ядро экспортных продаж;
  • страницы о компании, контакты, сертификаты — полностью;
  • новости — только по-русски: англоязычные посетители приходят за оборудованием, а не за новостью о корпоративном субботнике. Языковой фильтр честно скрывает раздел на EN-версии.

Две ловушки, которые надо закладывать в смету сразу. Первая: меню и модули дублируются на каждый язык — по сути, вы собираете две навигации. Это не сложно, но это часы работы, которые забывают посчитать. Вторая: связывание сотен карточек ассоциациями — механическая, но обязательная работа; мы её частично автоматизировали скриптом при импорте каталога, привязывая переводы по артикулу.

SEO-часть ядро закрывает само: hreflang на связанные страницы, отдельные sitemap по языкам, корректные канониклы. Для экспортёра это не косметика — EN-карточки индексируются и приводят запросы от иностранных дилеров.

Четыре отдела в одной админке: ACL и workflow на практике

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

Собрали четыре группы пользователей поверх стандартной иерархии Joomla:

ГруппаКто в нейЧто может
Маркетинг2 человекановости, главная, акции; публикация ВЕЗДЕ
Продукт3 инженерасоздание и правка карточек каталога, без публикации
HR1 человекраздел вакансий: создание и правка
Секретариат1 человекконтакты, реквизиты, режим работы

Техника простая: в правах каждой категории («Новости», «Каталог», «Вакансии», «О компании») разрешаем нужной группе «Создание» и «Изменение», остальным — наследование запрета. Инженеры «Продукта» физически не видят чужих разделов в админке — меньше соблазнов и меньше случайных правок.

Поверх прав — workflow согласования, штатный механизм публикации, который в ветке 6.1 получил визуальный drag-and-drop редактор. Наша схема из трёх состояний: «Черновик» → «На согласовании» → «Опубликовано». Инженер заполняет карточку и передвигает её на согласование; публиковать переход имеет право только группа «Маркетинг». Маркетолог видит очередь на одобрение, проверяет тексты и жмёт «Опубликовать». Для новостей самого маркетинга workflow короткий — они публикуют сразу.

Результат за полгода эксплуатации: ни одного инцидента «кто-то удалил страницу» или «на сайте появился черновик с ошибками». До внедрения подобные случаи у клиента были нормой жизни — на старом сайте все правки шли через один аккаунт с полными правами.

Схема прав доступа ACL: четыре группы редакторов — маркетинг, продукт, HR, секретариат — соединены линиями доступа с деревом разделов сайта, запретные направления показаны пунктиром

Формы, капча и лиды

Заявки — то, ради чего сайт существует. Сделали три вещи.

Форма запроса КП на каждой карточке. Кнопка «Запросить коммерческое предложение» открывает форму, в которую скрытым полем автоматически подставляется артикул и название позиции. Менеджер получает не «здравствуйте, сколько стоит?», а конкретный запрос по конкретной модели — скорость ответа выросла в разы.

Капча без Google. До запуска тестовая версия формы без защиты собирала десятки спам-заявок в день — боты находят формы быстрее, чем поисковики. Классическое решение — reCAPTCHA — для российского сайта сегодня ненадёжно: сервис то доступен, то нет. Выручила встроенная proof-of-work капча Joomla 6.1: посетитель не видит ничего (задачку решает его браузер), внешних зависимостей ноль, а спам упал до единичных писем в месяц.

Доставка лидов. Каждая отправка формы делает два действия: шлёт вебхук с JSON-полями заявки в CRM клиента (там автоматически создаётся лид с источником «сайт» и артикулом) и дублирует письмо на ящик отдела продаж через корпоративный SMTP — резервный канал на случай недоступности CRM. Все отправки дополнительно логируются в базе сайта, так что спор «была заявка или не было» решается за минуту.

Цифры проекта и что пошло не по плану

Честные цифры собирательного проекта.

Срок: 6 недель от брифа до запуска при плане 4. Разложение по этапам: неделя — структура, прототип и согласование; две недели — шаблон, вёрстка, настройка ACL и языков; неделя (по плану) на перенос каталога, растянувшаяся на две с половиной; параллельно — формы и интеграции; финальная неделя — обучение и запуск. По трудозатратам проект уложился примерно в полторы сотни человеко-часов, из которых треть съел перенос данных.

Теперь грабли — самое полезное в любом кейсе:

  • «Грязный» Excel. В исходном файле каталога одна и та же характеристика писалась пятью способами, половина чертежей ссылалась на локальный диск уволенного сотрудника. Пришлось писать скрипт нормализации + два круга ручной сверки с инженерами. Вывод: аудит исходных данных — до подписания сроков, а не после.
  • Дубли URL после включения SEF. Старый сайт годами жил на адресах вида /catalog.php?id=127, и при переезде часть страниц оказалась доступна по двум-трём адресам. Лечили таблицей 301-редиректов со старых URL и канониклами; позиции в поиске пережили переезд без провала.
  • Обучение — две сессии вместо одной. Редакторы-инженеры прекрасно освоили поля и черновики, но workflow «почему моя карточка ещё не на сайте?» потребовал отдельного часа с разбором сценариев. Закладывайте на обучение больше, чем кажется.

Метрика, которая понравилась директору больше всего: публикация новости теперь занимает 10 минут силами самого отдела — против «письмо подрядчику и ждать неделю». Заявки перестали теряться: до CRM доходит каждая, с артикулом и источником. А англоязычный каталог впервые в истории компании совпадает с русским.

Таймлайн проекта на шесть недель: этапы от брифа и структуры до переноса каталога, обучения и запуска, плановые и фактические сроки двумя рядами

Как этот шаблон переносится на другие сегменты

Паттерн «каталог на кастомных полях + ACL + мультиязычность + workflow» — не специфика производства. Мы переиспользуем его почти без изменений в других отраслях наших клиентов.

Клиника

Отделения — категории, врачи — материалы с полями (специализация, стаж, учёная степень, расписание приёма, фото). ACL: регистратура правит расписания, главврач согласует публикации, маркетинг ведёт акции и новости. Единственное принципиальное отличие — онлайн-запись и интеграцию с МИС мы всегда выносим во внешний специализированный сервис: медицинские данные и календарь приёма — не то, что стоит хранить в CMS; сайт лишь встраивает виджет записи.

Юридическая фирма

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

Бухгалтерская фирма

Тарифы — материалы с числовыми полями (цена, состав услуг), из которых собирается сравнительная таблица; простой калькулятор стоимости на JS; блог со статьями «что изменилось в отчётности» как SEO-канал. Здесь же обычно включаем и наш регламент эксплуатации — про него у меня есть отдельная статья серии.

Вывод простой: большинству корпоративных сайтов нашей целевой аудитории — компаний до 50 рабочих мест со структурой из нескольких отделов — нужен не конструктор лендингов и не тяжёлый портал, а ровно этот набор: структурированный каталог, права по отделам, второй язык и контролируемая публикация. Joomla закрывает его штатными средствами, без единого платного расширения — что прямо влияет и на бюджет запуска, и на стоимость владения.

Сделаем корпоративный сайт, который правят сами отделы

ITfresh — IT-аутсорсинг для компаний до 50 рабочих мест в Москве. Спроектируем и запустим сайт на Joomla с каталогом, правами по отделам и мультиязычностью — и возьмём его на сопровождение. Собственные серверы в дата-центре МТС, 15+ лет опыта. Telegram: @ITfresh_Boss, телефон: +7 903 729-62-41

📞 Связаться с нами
#Joomla #кейс #корпоративный сайт #ACL #мультиязычность #каталог продукции #workflow #ИТ-аутсорсинг
Комментарии 0

Оставить комментарий

загрузка...

Подпишитесь на рассылку ITfresh

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

Письмо придёт в течение минутыНе нашли его во «Входящих» — загляните в папку «Спам» или «Промоакции» и нажмите «Не спам». Так все следующие выпуски будут приходить прямо в основную почту.
Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.