Авторизация
Сброс пароля
Компания «ТД ТИНКО»: ускорение поиска и оптимизация заказа типовых решений из PDF-каталога
Заказчик: Торговый Дом «ТИНКО»
За 4 годы сотрудничества мы решили несколько сложных задач по оптимизации работы высоконагруженного сайта клиента. Внедрили заказы комплектов из PDF-каталога типовых решений, улучшили поиск по сайту и ускорили расчет срока и стоимости доставки.
1. Вводная задача от заказчика, проблематика, цели
КЛИЕНТ
Компания «ТД ТИНКО» — дистрибьютор российских и зарубежных брендов оборудования систем безопасности. Компания поставляет оборудование по всей России. В 2021 году ее клиентами были 25 000 организаций. Каждый день на сайт заходят ≈ 40 000 человек, чтобы выбрать оборудование из 32 000 номенклатурных позиций.
ЦЕЛЬ ПРОЕКТА
«ТД ТИНКО» разработал для клиентов комплекты готовых решений, однако заказать их можно было только по телефону. Другой проблемой был поиск по сайту. Существующее решение хорошо работало на небольших и средних базах данных, однако на высоконагруженном сайте «ТД ТИНКО» давало сбои. Еще одной проблемой был расчет доставки — расчет по пяти ТК занимал слишком много времени.
ЗАДАЧИ ПРОЕКТА
1. Внедрить на сайт заказы комплектов из PDF-каталога типовых решений.
2. Перенести поиск по сайту на поисковую систему Elasticsearch.
3. Настроить расчет доставки так, чтобы клиент видел стоимость и срок поставки сразу по всем транспортным компаниям.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Для решения поставленных задач был использован следующий стек технологий: 1С-Битрикс, Vue, ElasticSearch. Далее подробнее по каждой задаче.
ЗАДАЧА 1. ВНЕДРИТЬ НА САЙТ ЗАКАЗЫ КОМПЛЕКТОВ ИЗ PDF-КАТАЛОГА ТИПОВЫХ РЕШЕНИЙ
Проблема
Системы безопасности — это технически сложные решения, их подбор и инсталляция требуют высокой квалификации. В помощь своим клиентам «ТД ТИНКО» раз в год выпускает журнал с типовыми решениями. Каждое решение содержит комплект оборудования под определенную задачу, например, устройство системы видеонаблюдения магазина. Проектировщики, интеграторы и монтажные организации используют эти решения для создания систем безопасности.
Проблема была в том, что типовые решения находились в журнале в PDF-формате. По ним не было поиска на сайте, а комплект оборудования из решения невозможно было добавить в корзину покупателя. Типовые комплекты существовали только в базе 1С, поэтому клиентам приходилось звонить в офис и оформлять заказ по телефону. Это было неудобно и отнимало время у клиентов и сотрудников «ТД ТИНКО».
Необходимо было реализовать на сайте поиск и покупку комплектов оборудования из журнала.
Технически задача выглядела так:
- Спроектировать обмен, чтобы специалисты по 1С могли выполнить работу по формированию файлов выгрузки для сайта.
- Запрограммировать импорт типовых решений на стороне сайта.
- Доработать обмен заказами, дополнив выгрузку типовыми решениями.
- Запрограммировать на сайте разделы и механизмы, которые позволят покупать новый вид товаров.
Реализация
Сайт «ТД ТИНКО» работает на 1С-Битрикс. И в 1С и в Битриксе есть понятие комплекта. При этом обе системы понимают под этим одно и то же — товар, который для пользователя выглядит одним товаром, а для учетной системы — несколькими. Проблема в том, что 1С и Битрикс не умеют обмениваться этими данными.
Стандартные модули обмена в этих системах не поддерживают выгрузку комплектов на сайт. Нам нужно было разработать модуль на основе XML-выгрузки силами своей команды. Что мы и сделали.
Теперь стала доступна выгрузка из 1С на сайт всей информацию о типовых решениях:
- описания;
- изображения;
- свойства для фильтрации;
- мета-информация для редактора типовых решений.
КАК РЕШЕНИЕ РАБОТАЕТ В СТРУКТУРЕ ДАННЫХ САЙТА
Данные из XML-файлов импортируются в инфоблоки, аналогично прочим товарам. У типовых решений есть свойства, цены, перечень оборудования и вспомогательная мета-информация.
Программа 1С ежедневно формирует XML-файл с типовыми решениями. На сайте есть CRON-задача, которая проверяет наличие файла и по FTP загружает его на сайт.
Клиенты «ТД ТИНКО» не всегда оформляют заказы на сайте. Они могут сделать это в офисе или по телефону. Чтобы такие заказы отображались в личных кабинетах на сайте, мы запрограммировали импорт заказов, созданных офлайн на стороне 1С. Эти заказы отображаются на сайте в режиме «только для чтения». Пользователь видит ход выполнения заказа, но не может внести в него изменения.
ЗАДАЧА 2. ПЕРЕНЕСТИ ПОИСК ПО САЙТУ НА ПОИСКОВУЮ СИСТЕМУ ELASTICSEARCH
Проблема
На старой версии сайта поиск был реализован через самописные запросы к базе данных. Решение было создано на MySQL и отлично работало на небольших и средних базах данных. Однако у компании «ТД ТИНКО» высоконагруженный сайт: объемы данных и количество поисковых запросов постоянно увеличиваются. MySQL не предназначен для таких задач. Он часто вел себя непредсказуемо из-за множества одновременных запросов к базе. Для поиска товара в большой номенклатуре со сложной логикой нужно было другое решение.
Реализация
Для оптимизации поиска мы предложили внедрить Elasticsearch. Это одна из самых популярных поисковых систем. Elasticsearch — масштабируемая утилита полнотекстового поиска и аналитики. Она в режиме реального времени хранит, ищет и анализирует большие объемы данных. В отличие от решения на MySQL, Elasticsearch быстро и легко находит товары, написанные с опечатками или в других формах.
ЗАДАЧА 3. НАСТРОИТЬ РАСЧЕТ ДОСТАВКИ ТАК, ЧТОБЫ КЛИЕНТ ВИДЕЛ СТОИМОСТЬ И СРОК ПОСТАВКИ СРАЗУ ПО ВСЕМ ТРАНСПОРТНЫМ КОМПАНИЯМ
Проблема
Компания «ТД ТИНКО» работает с пятью ТК. При заказе пользователь отправляет запрос, а каждая ТК делает свой расчет. Время расчета у всех компаний разное, поэтому результат по всем ТК в среднем занимает одну минуту. По меркам пользователей, минута ожидания — это вечность. Нужно было оптимизировать и ускорить процесс расчета.
Реализация
Мы изучили документацию API пяти служб доставки и все нюансы обмена информацией. Запрос пользователя с сайта отправляется одновременно в пять ТК, а ответы обрабатываются параллельно. Время обработки ответа от каждой ТК мы ограничили 30 секундами. Если за этот период ответ от какой-либо ТК не пришел, то пользователь увидит только 4 результата. Выберет ТК из текущего списка и быстрее оформит заказ.
Для определения адресов мы используем сервисы КЛАДР и ФИАС, а для удобства пользователей подключили сервис подсказок DaData. Он выдает подсказки по отдельным частям адреса и упрощает поиск.
Типовое решение системы видеонаблюдения для магазина
Создание модуля на основе XML-выгрузки для выгрузку данных о комплектах на сайт
Типовое решение, готовое для заказа
3. Результаты сотрудничества
Что изменилось в работе компании «ТД ТИНКО» после решения поставленных задач.
1. ВНЕДРЕНИЕ ЗАКАЗА КОМПЛЕКТОВ ИЗ PDF-КАТАЛОГА ТИПОВЫХ РЕШЕНИЙ НА САЙТЕ
Для удобства пользователей все решения на сайте разбиты под сферы применения. На странице каждого типового решения есть схема и состав комплекта оборудования с указанием цены как всего комплекта, так и каждой единицы оборудования. Пользователь может изменить количество оборудования в соответствии со своей задачей и оценить изменение стоимости проекта. Однако из комплекта нельзя удалить элементы, на которых основано типовое решение.
2. ПЕРЕНОС ПОИСКА ПО САЙТУ НА ПОИСКОВУЮ СИСТЕМУ ELASTICSEARCH
2.1. СНИЗИЛИ ВРЕМЯ ОТВЕТА НА ПОИСКОВЫЙ ЗАПРОС ДО 200 МИЛЛИСЕКУНД
Такое время отклика позволяет на лету и без видимых задержек перестраивать выдачу, пока пользователь вводит запрос.
2.2. ОПТИМИЗИРОВАЛИ ПОДДЕРЖКУ АКТУАЛЬНОГО ИНДЕКСА
Индекс актуализируется за 20 секунд, а добавление товара в индекс занимает 0,3 секунды.
2.3. ДОРАБОТАЛИ ЛОГИКУ ПОИСКА ПО САЙТУ И СДЕЛАЛИ ЕГО УДОБНЕЕ
А также расширили функциональные возможности поиска и добавили:
— исправление опечаток в поисковом запросе;
— запросы по фразам, где важен порядок слов;
— поиск по отдельным критериям:
- слово;
- артикул;
- фраза.
— настройку многоязычного поиска по наименованиям товаров;
— параллельную обработку больших объемов данных, с мгновенным подбором наилучшего соответствия запросу;
—чтение или запись данных в режиме реального времени — в пределах одной секунды.
3. НАСТРОЙКА РАСЧЕТА СТОИМОСТИ И СРОКОВ ДОСТАВКИ СРАЗУ ПО ВСЕМ ТРАНСПОРТНЫМ КОМПАНИЯМ
Покупатель начинает вводить адрес, а сервис DaData помогает найти его быстрее. Запросы и обработка ответов выполняются параллельно, поэтому через несколько секунд пользователь увидит результаты. Время обработки запроса не превышает 30 секунд. У покупателя будет положительный пользовательский опыт: он быстро выберет службу доставки и оформит заказ.
Страница сайта с типовыми решениями под разные задачи
Выбор и изменение состава типового решения
4. Заключение
С компанией компания «ТД ТИНКО» начали работать в 2018 году. В 2021 году на задачи, описанные в кейсе, было затрачено 1746 часов или 150 часов ежемесячно. В рамках запланированных работ за этот период была проведена оптимизация заказа типовых комплектов из PDF-каталога, интеграция с поисковой системой Elasticsearch, настройка расчета доставки.