Компания «ТД ТИНКО»

Как мы ускорили поиск и оптимизировали процесс заказа на сайте поставщика систем безопасности
За 4 года сотрудничества мы решили несколько сложных задач по оптимизации работы высоконагруженного сайта клиента. Внедрили заказы комплектов из PDF-каталога типовых решений, улучшили поиск по сайту и ускорили расчет срока и стоимости доставки
  • Клиент

    Компания «ТД ТИНКО» — дистрибьютор российских и зарубежных брендов оборудования систем безопасности. Компания поставляет оборудование по всей России. В 2021 году ее клиентами были 25 000 организаций. Каждый день на сайт заходят ≈ 40 000 человек, чтобы выбрать оборудование из 32 000 номенклатурных позиций.
  • Цель проекта

    «ТД ТИНКО» разработал для клиентов комплекты готовых решений, однако заказать их можно было только по телефону. Другой проблемой был поиск по сайту. Существующее решение хорошо работало на небольших и средних базах данных, однако на высоконагруженном сайте «ТД ТИНКО» давало сбои. Еще одной проблемой был расчет доставки — расчет по пяти ТК занимал слишком много времени.
  • Задачи

    • 1. Внедрить на сайт заказы комплектов из PDF-каталога типовых решений
    • 2. Перенести поиск по сайту на поисковую систему Elasticsearch
    • 3. Настроить расчет доставки так, чтобы клиент видел стоимость и срок поставки сразу по всем транспортным компаниям.
  • Стек технологий

    1С-Битрикс, Vue, ElasticSearch.

Задача 1. Внедрить на сайт заказы комплектов из PDF-каталога типовых решений

Проблема

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

Проблема была в том, что типовые решения находились в журнале в PDF-формате. По ним не было поиска на сайте, а комплект оборудования из решения невозможно было добавить в корзину покупателя. Типовые комплекты существовали только в базе 1С, поэтому клиентам приходилось звонить в офис и оформлять заказ по телефону. Это было неудобно и отнимало время у клиентов и сотрудников «ТД ТИНКО».

Необходимо было реализовать на сайте поиск и покупку комплектов оборудования из журнала.

Технически задача выглядела так:

  • Спроектировать обмен, чтобы специалисты по 1С могли выполнить работу по формированию файлов выгрузки для сайта.
  • Запрограммировать импорт типовых решений на стороне сайта.
  • Доработать обмен заказами, дополнив выгрузку типовыми решениями.
  • Запрограммировать на сайте разделы и механизмы, которые позволят покупать новый вид товаров.

Типовое решение системы видеонаблюдения для магазина

Реализация

Сайт «ТД ТИНКО» работает на 1С-Битрикс. И в 1С и в Битриксе есть понятие комплекта. При этом обе системы понимают под этим одно и то же — товар, который для пользователя выглядит одним товаром, а для учетной системы — несколькими. Проблема в том, что 1С и Битрикс не умеют обмениваться этими данными.

Стандартные модули обмена в этих системах не поддерживают выгрузку комплектов на сайт. Нам нужно было разработать модуль на основе XML-выгрузки силами своей команды. Что мы и сделали.

Теперь стала доступна выгрузка из 1С на сайт всей информации о типовых решениях:

  • описания;
  • изображения;
  • свойства для фильтрации;
  • мета-информация для редактора типовых решений.

Типовое решение, готовое для заказа

Как решение работает в структуре данных сайта

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

Программа 1С ежедневно формирует XML-файл с типовыми решениями. На сайте есть CRON-задача, которая проверяет наличие файла и по FTP загружает его на сайт.

Клиенты «ТД ТИНКО» не всегда оформляют заказы на сайте. Они могут сделать это в офисе или по телефону. Чтобы такие заказы отображались в личных кабинетах на сайте, мы запрограммировали импорт заказов, созданных офлайн на стороне 1С. Эти заказы отображаются на сайте в режиме «только для чтения». Пользователь видит ход выполнения заказа, но не может внести в него изменения.

Результат

Для удобства пользователей все решения на сайте разбиты под сферы применения

  • Типовые проектные решения для создания систем охранно-пожарной сигнализации

    доступно 56 решений

  • Типовые проектные решения для создания систем охранного телевидения

    доступно 23 решения

  • Типовые проектные решениядля создания систем контроля и управления доступом

    доступно 19 решений

  • Типовые проектные решения для создания домофонных систем

    доступно 10 решений

  • Типовые проектные решения для создания систем оповещения и музыкальной трансляции

    доступно 13 решений

  • Типовые проектные решения для создания систем пожаротушения

    доступно 7 решений

  • Типовые проектные решения для создания системы «Умный дом»

    доступно 3 решения

  • Типовые проектные решения для создания систем взрывозащиты

    доступно 2 решения

  • Типовые проектные решения для создания систем эпидемиологического контроля

    доступно 2 решения

Страница сайта с типовыми решениями под разные задачи

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

Выбор типового решения

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

Изменение состава типового решения

Проект мы делали в 2018 году, сейчас работаем над другими задачами. Количество затраченных часов за 2021 год — 1746, или 150 часов ежемесячно.

Задача 2. Перенести поиск по сайту на поисковую систему Elasticsearch

Проблема

На старой версии сайта поиск был реализован через самописные запросы к базе данных. Решение было создано на MySQL и отлично работало на небольших и средних базах данных. Однако у компании «ТД ТИНКО» высоконагруженный сайт: объемы данных и количество поисковых запросов постоянно увеличиваются. MySQL не предназначен для таких задач. Он часто вел себя непредсказуемо из-за множества одновременных запросов к базе. Для поиска товара в большой номенклатуре со сложной логикой нужно было другое решение.

Реализация

Для оптимизации поиска мы предложили внедрить Elasticsearch. Это одна из самых популярных поисковых систем. Elasticsearch — масштабируемая утилита полнотекстового поиска и аналитики.

Она в режиме реального времени хранит, ищет и анализирует большие объемы данных. В отличие от решения на MySQL, Elasticsearch быстро и легко находит товары, написанные с опечатками или в других формах.

Результат

  • Снизили время ответа на поисковый запрос до 200 миллисекунд

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

  • Оптимизировали поддержку актуального индекса

    Индекс актуализируется за 20 секунд, а добавление товара в индекс занимает 0,3 секунды.

  • Доработали логику поиска по сайту и сделали его удобнее

    А также расширили функциональные возможности поиска и добавили:

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

Задача 3. Настроить расчёт доставки так, чтобы клиент видел стоимость и срок поставки сразу по всем транспортным компаниям

Проблема

Компания «ТД ТИНКО» работает с пятью ТК. При заказе пользователь отправляет запрос, а каждая ТК делает свой расчет. Время расчета у всех компаний разное, поэтому результат по всем ТК в среднем занимает одну минуту. По меркам пользователей, минута ожидания — это вечность. Нужно было оптимизировать и ускорить процесс расчета.

Реализация

Мы изучили документацию API пяти служб доставки и все нюансы обмена информацией. Запрос пользователя с сайта отправляется одновременно в пять ТК, а ответы обрабатываются параллельно. Время обработки ответа от каждой ТК мы ограничили 30 секундами. Если за этот период ответ от какой-либо ТК не пришел, то пользователь увидит только 4 результата. Выберет ТК из текущего списка и быстрее оформит заказ.

Для определения адресов мы используем сервисы КЛАДР и ФИАС, а для удобства пользователей подключили сервис подсказок DaData. Он выдает подсказки по отдельным частям адреса и упрощает поиск.

Результат

  • Покупатель начинает вводить адрес, а сервис DaData помогает найти его быстрее.
  • Запросы и обработка ответов выполняются параллельно, поэтому через несколько секунд пользователь увидит результаты.
  • Время обработки запроса не превышает 30 секунд.
  • У покупателя будет положительный пользовательский опыт: он быстро выберет службу доставки и оформит заказ.
Отзыв клиента
Генеральный директор «ТД ТИНКО»
Генеральный директор «ТД ТИНКО»
Клещенок Г. С.

ООО «ТД ТИНКО» благодарит компанию «Логема» за проявленный высокий профессионализм в разработке и технической поддержке корпоративного сайта.

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

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

Желаем успехов в профессиональной деятельности и надеемся на дальнейшую совместную работу.