Сайт-каталог для производителя фасадных материалов с геозависимым контентом и интеграцией Salesforce

Разработали сайт с каталогом, реализовали карточки товара, которые меняются в зависимости от местоположения клиента, подключили функцию сравнения товаров и настроили передачу данных в CRM.

О проекте

Американская компания — производитель фасадных материалов — обратилась с задачей миграции сайта на новую версию Drupal и расширения функциональности платформы.

Их сайт представлял собой агрегатор собственной продукции и товаров брендов-партнёров. Платформа должна была учитывать региональные особенности ассортимента, поддерживать работу с дилерами и обеспечивать передачу данных в CRM-систему Salesforce.

Задачи проекта

Сайт должен был стать не просто каталогом, а полноценным инструментом продаж и взаимодействия с партнёрами.

Мы решали следующие задачи:

  • миграция сайта с Drupal 7 на Drupal 9;
  • внедрение нового дизайна, разработанного клиентом;
  • настройка форм сбора заявок с передачей данных в Salesforce;
  • разработка регионально-зависимых карточек товаров;
  • реализация функции сравнения товаров;
  • создание системы управления страницами дилеров;
  • интеграция с сервисом отзывов.

Миграция сайта с Drupal 7 на Drupal 9

Переход с Drupal 7 на Drupal 9 требовал полной переработки архитектуры проекта, так как версии системы существенно отличаются. Миграция стала возможностью пересобрать сайт и одновременно решить накопленный технический долг.

В рамках работ мы:

  • перенесли большой объём контента без потерь;
  • провели аудит легаси-кода и удалили неиспользуемые элементы;
  • оптимизировали структуру данных под новую архитектуру.

Гибкая система сборки страниц на Layout Builder

Для команды клиента важно было дать возможность самостоятельно собирать страницы без участия разработчиков. Для этого был внедрён модуль Layout Builder, который сочетает drag-and-drop и WYSIWYG-подход. Администраторы получили возможность собирать страницы из блоков и сразу видеть финальный результат, аналогично конструкторам сайтов.

Геозависимый каталог товаров

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

Front-End механизм геолокации без потери кэширования

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

Мы реализовали альтернативный подход — Front-End Modifier на JavaScript:

  • все геозависимые элементы скрываются по умолчанию;
  • определяется геолокация пользователя;
  • применяются правила отображения контента;
  • показывается только релевантный региону ассортимент.
Такой подход позволил сохранить кэширование страниц, ускорить загрузку и избежать «мерцания» контента.

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

Система работы с дилерами

Мы разработали механизм поиска официальных дилеров по ZIP-коду.

Пользователь вводит индекс и получает:

  • карту с отмеченными дилерами;
  • список компаний рядом;
  • карточку дилера с контактами, адресом и графиком работы;
  • описание и галерею выполненных проектов.

Интеграция с Salesforce

Сайт был интегрирован с CRM Salesforce для автоматизации обработки заявок и централизованного хранения данных.

Гибкий маппинг данных из форм

Ранее интеграция была жёстко зашита в код Drupal 7, и любое изменение требовало работы разработчика. Мы переработали архитектуру и реализовали:

  • кастомный webform handler;
  • маппинг полей через интерфейс без кода;
  • настройку соответствий между полями формы и Salesforce прямо в админке.

Теперь администраторы могут самостоятельно управлять логикой передачи данных.

Обработка ошибок и повторная отправка данных

Мы также реализовали систему контроля неуспешных отправок. Если передача данных в Salesforce не проходит (ошибка API, токена или формата), заявка попадает в раздел Failed Submissions. В этом интерфейсе администратор может:

  • просматривать ошибки отправки;
  • выбирать заявки;
  • повторно отправлять данные в CRM.

Это гарантирует, что ни одна заявка не теряется.

Результаты проекта

В результате клиент получил масштабируемую цифровую платформу, которая объединяет каталог, дилерскую сеть и CRM-интеграцию.

Сайт стал:

  • геозависимым и персонализированным по региону;
  • удобным для администрирования без разработчиков;
  • интегрированным с Salesforce без ручной обработки заявок;
  • устойчивым к ошибкам в передаче данных.

Drupal позволил создать гибкую систему, в которой кастомные решения органично встроены в админ-панель и не влияют на производительность сайта.
Ждём вашей заявки!
У нас много писем, но ваше в приоритете.
Бюджет