Авторизация
Сброс пароля
Перезапуск B2B-платформы лидера рынка оптической техники Levenhuk
1. Вводная задача от заказчика, проблематика, цели
О заказчике
Группа компаний Levenhuk — производитель оптической техники мировых брендов: Levenhuk, Discovery, MAGUS, Ermenrich и эксклюзивный дистрибьютер брендов Bresser, Sky-Watcher, Konus, Meade. История компании началась в 2007 году с продаж оптической техники российских поставщиков через собственный интернет-магазин. Сейчас под управлением компании находится международная сеть магазинов оптической техники «Четыре глаза» (в Европе – «Zoom'n'Joy»). Магазины расположены в России, странах СНГ, Европе, Азии и Северной Америке.
У многих проектов есть изюминки и нюансы, за реализацией которых клиенты приходят именно к нам. Так сотрудничество с брендом Levenhuk началось после статьи о проблемах разработки мультиязычных магазинов в нашем блоге. В этот период компания решала задачи расширения зарубежной дилерской сети и поддержки B2C и B2B-сайтов на основных европейских языках. Нужен был партнер, который займется комплексным развитием ИТ-проекта:
- сведет россыпь сайтов на разных доменах (.pl, .cz, .it, .bg, .eu, .gr и др.) к 1-2 сайтам с языковыми версиями, которые легко поддерживать;
- улучшит юзабилити сайтов и, тем самым, повысит качество клиентского опыта. Рынок оптической техники традиционно высококонкурентный, особенно его западный сегмент, поэтому Levenhuk были нужны современные и удобные розничный онлайн-магазин и дилерский портал;
- автоматизирует работу отдела продаж, снизит нагрузку на менеджеров и сотрудников ИТ-отдела. На старте проекта создание заказов дилерами происходило через почту и звонки менеджерам. Требовалось уменьшить затраты времени и сократить расходы на обработку заказов, улучшить управление остатками, увеличить средний чек. Для этого следовало перевести клиентов на работу непосредственно в личном b2b-кабинете с гибкими фильтрами, историей заказов, листом ожидания, аналитикой и другими полезными опциями.
Задачи
Задач было много. Вот самые приоритетные:
- перенести проект на новый технологический стек, который мы умеем эффективно развивать и поддерживать;
- провести доработку и интеграцию учетной системы с сайтами на новом движке;
- создать инфраструктуру проекта, способную сохранять эффективность при добавлении новых розничных и оптовых сайтов и их языковых версий, перенести в нее данные из предыдущего решения;
- протестировать и отладить работу b2b-портала в новом дизайне, в случае успеха — перенести дизайн на розничный сегмент.
Антон Епифанов
Генеральный директор, ОАО «Левенгук»
К старту проекта по редизайну у нас, руководителей компании, уже был опыт общения с ведущими студиями страны. Выбирали подрядчика из топ-10 по рейтингу, портфолио, отзывам в сети. До первой беседы с аналитиком компании ИНТЕРВОЛГА, опыт был негативным, и мы сформировали пул важных для Левенгук критериев.
Учитывая эти критерии мы выбрали интегратора осознанно. Результат нас удовлетворяет на протяжении уже более трех лет, к тому же отсутствует излишняя бюрократия. Радует и профессиональная команда проекта. Отдельно благодарим за предоставление комплексных решений — интеграция с 1С, решение серверных вопросов, стабильность поддержки.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Проект выделялся хранением данных: товары (картинки, описания, переводы и прочее) в PostgreSQL, цены и остатки — в нетиповой конфигурации 1С. Система отличалась высокой сложностью, поэтому потребовалось глубокое погружение.
После исследования конфигураций приняли 3 важных решения:
- Не использовать работавшую ранее тиражку, а создать всё с нуля с учетом пожеланий заказчика и опыта наших предыдущих разработок и интеграций в e-com.
- Обновить дизайн розничного и дилерского сайтов. Новый движок Битрикса давал больше возможностей как в плане фронт-, так и бэкенда.
- Самостоятельно разработать обмен с сайтом для учетной системы 1С, так как она была сильно кастомизирована и стандартные механизмы обмена не поддерживались.
Время показало, что плане построения единой платформы для b2b и b2c-площадок все решения были оправданы.
Миграция с Django+PosgreSQL на БУС+MySQL и создание единой контентной базы
К моменту старта работ у Levenhuk работали розничные и b2b сайты, написанные на Django. Они хранили данные в PostgreSQL и интегрировались с самописной «1С: Управление торговлей». Проект хотели развивать и масштабировать, но такому стеку никто не мог обеспечить должный уровень поддержки и коммуникаций. Чтобы двигаться дальше была предложена миграция на «1С: Битрикс управление сайтом». Это позволило перейти на CMS, сделанную с учетом реалий российского рынка e-com, со стабильными обновлениями платформы, модульностью и большим магазином приложений.
В связи с переездом требовалось отказаться от внешней БД на PostgreSQL, перенеся данные на битриксовый MySQL. При переносе столкнулись с рядом проблем. Функционал «старого» сайта и административной панели не был документирован, поэтому все его особенности мы узнавали у менеджеров, работающих с админкой. По связям полей БД пытались понять как связаны таблицы и за что отвечает каждая из них в интерфейсе сайта. Т.к. некоторые связи были неправильными в плане архитектуры БД, то потребовалось время на её нормализацию.
Разная спецификация Postgre и MySQL не стала проблемой (хотя первая устроена иначе, чем любимая Битриксом MySQL), но сделать копию данных 1 к 1 на новом сайте всё же не получилось. Пришлось писать механизм импорта и трансформировать данные: определять из какой таблицы Postgre их брать и в какой HL-блок «1С: Битрикс управление сайтом» складывать, как сопоставлять поля и т.д. В результате получилось создать отдельный «контентный» сайт (в структуре БУС), который в своих HL-блоках содержит данные (картинки, описания, переводы, информация о магазинах и складах), импортированные из Postgre, поэтому обмены перестали зависеть от её доступности, уровня нагрузки и качества администрирования.
Для удобства менеджеров, которые управляют содержимым сайта, разработан собственный интерфейс с широким функционалом. Например, в нем есть генератор фидов, который сильно облегчает работу по загрузке товаров на сайт и созданию описаний. Другая доработка — алгоритмы сжатия, которые конвертируют изображения в формат webp при добавлении фото товара. Оптимизация визуального контента и перевод сайтов на работу с одной контентной базой позволил сократить ее размер на 600 Гб.
Проделанная работа дала возможность упростить управление содержимым сайтов силами рядовых менеджеров, а в перспективе позволит развивать и модифицировать контентную базу под нужды заказчика без серьезных доработок.
Решение проблемы скорости обновления данных на сайте
Переезд на «1С: Битрикс управление сайтом» не вызывал проблем обмена данными до тех пор, пока количество сайтов и языковых версий сайтов не начало расти. На розничном сайте с 10 языковыми версиями скрипт импорта справлялся быстро: копировал данные о товарах из Postgre прямо в HL-блок B2B-сайта. На сайте работал другой скрипт, который выбирал пачку товаров (~200-500) и обновлял данные в инфоблоке. Делал он это по всей номенклатуре циклически и без остановки.
Но как только начал работать ещё и сайт для дилеров с несколькими языковыми версиями, потребовалось запускать несколько таких скриптов. Это сказывалось на производительности и общей нагрузке на сервер. Дело в том, что требовалось сначала затянуть данные из Postgre в инфоблоки B2B и B2C-сайтов, а потом дождаться окончания полного цикла обновления всех товаров (точечного обновления товаров на тот момент не было). Такой обмен мог длиться до 20 часов.
Чтобы уйти от кучи скриптов и кардинально поднять скорость обмена требовалось полностью пересмотреть подход к обновлению данных. Для этого:
- В структуре проекта создали локальный «контентный» сайт (об этом выше), куда менеджеры загружают данные по товарам. Это сократило время обновления, т.к. сайту уже не нужно было обращаться к внешней БД на Postgre.
- Добавили сервер очередей (ActiveMQ) и разбили обновление на шаги (каждый шаг — отдельная очередь ActiveMQ).
Это позволило не только оптимизировать хранение данных, но и многократно ускорило процесс обновления информации на стороне сайта:
- Если товар изменили через админпанель «контентного» сайта, то практически моментально идет обновление на всех языковых версиях продуктовых сайтов. Время обновления сократилось с нескольких часов до нескольких минут даже при самой забитой очереди.
- Уменьшили нагрузку на сервер и избежали пиковых нагрузок распараллеливая процессы. Если раньше нагрузка росла пропорционально количеству языковых версий сайтов (запускается новая языковая версия сайта — включается еще один экземпляр скрипта), то теперь количество запущенных скриптов постоянно. На сухом языке цифр нагрузка с 52% уменьшилась до 23-25%.
Интеграции с платежными системами
Предыдущая модель платежей для европейских покупателей предполагала возможность оплатить покупку через PyPal или офлайн непосредственно в магазине. По экономическим соображениям и для удобства владельцев карт, выпущенных национальными платежными системами, заказчиком было принято решение расширить их список. В каждой стране присутствия Levenhuk есть своя платежная система или даже несколько систем, отличных от Visa и Mastercard.
В чем-то процессы каждой из них уникальны, но есть и много общего. Сейчас в списке интеграций уже 7 популярных платежных систем:
- GoPay (чешская, немецкая, английская версии сайтов)
- REDSYS (испанская)
- PRZELEWY (польская)
- Nexi (итальянская)
- MercadoPago (мексиканская)
- PayTR (турецкая)
- PayPal (все языковые версии)
Интеграция с 1С
Все европейские сайты бренда обслуживала старенькая версия 1С. Масштабирование проекта заставляло задуматься о необходимости доработки устаревшей учетной системы, которая начинала сдерживать планы по модернизации. Переработать пришлось не только саму 1С, но и механизмы обмена между ней и сайтами. До этого она работала только с XML (не поддерживала работу с JSON), поэтому нельзя было без костылей перенести, например, свойства товаров из старой версии в новую и на сайт. Пришлось самим писать методы создания, проверки и отладки JSON. То же самое касалось переноса данных из европейской версии 1С в российскую и обратно.
Редизайн дилерского сайта
Когда мы перезапустили B2B-сайт с нашим собственным дизайном, он приобрел характерный для сферы простой и лаконичный интерфейс. Реализованный UI/UX обеспечивал хорошую скорость, достаточный объем информации о товарах, условиях обслуживания, стандартную навигацию и простой процесс заказа. Сайт отлично отработал 2 года без серьезных нареканий. Но собственно эта «типичность», в условиях крайне жесткой конкуренции на рынке оптической техники, и определила следующую цель — отстроиться от конкурентов, сделав ставку на нехарактерный для B2B дизайн. Т.к. заказчик хотел что-то действительно неординарное, то поручил разработку дизайна студии, имеющей имя и яркое портфолио.
Работа с ALS (Студия Артемия Лебедева) не была простой. Так, в момент старта работ по верстке нового дизайна дилерского портала мы располагали только частью макетов, остальное создавалось дизайнерами уже в процессе. Трудностей в работу добавляло и то, что дизайнеры отклонялись от технических требований в угоду эффектной визуализации. Справиться с ними помогло терпение менеджера проекта, настойчивость и строгое следование разработанному чек-листу. Мы еще раз убедились, что лучший дизайнер сайта — это дизайнер со знанием основ фронтенда.
Проект ОАО «Левенгук» очень многогранный, ежегодно поворачивается к нам своей новой гранью. Вчера это мультиязычность и редизайн, завтра, вполне возможно, конструкторы продуктов и AI-помощник. Сегодня мы занимаемся новым дизайном онлайн-магазина «Четыре глаза» — крупнейшего российского ресурса компании и ждем новых интересных задач.
Профиль компании-заказчика
Задачи на старте
Доработали устаревшую версию учетной системы и интегрировали ее с новой архитектурой.
В крупных проектах не всё бывает гладко.
Пример решения одной из сложных, но интересных задач.
3. Результаты сотрудничества
С Levenhuk мы прошли по непростому пути развития уникального мультиязычного проекта — от этапа миграции на новый технологический стек до редизайна дилерского портала.
Вот основные результаты:
- Перевели проект на технологический стек, который активно развивается и поддерживается большим сообществом разработчиков и партнеров компании-вендора.
- Решили задачу организации мультисайтовости на Bitrix Framework — улучшили эффективность администрирования группы сайтов, ранее работавших на нескольких национальных доменах. В нем есть возможность создавать и поддерживать на базе одного экземпляра продукта (одной административной панели) неограниченное количество сайтов, тем самым существенно сокращая объем времени и ресурсов на их модерацию и обновление. Мультисайтовость реализована отдельно для b2b- и b2c-сегментов по причине различий в архитектуре, технологиях продаж и маркетинговых активностях.
- Добавили поддержку мультиязычности (сейчас уже 24 языка и постепенно добавляются новые) в оптовый и розничный сайты на новой архитектуре. Мультиязычность обкатали сначала на b2b-сегменте, а потом вывели на b2c. Сейчас архитектура позволяет развернуть новую, например, мексиканскую, версию сайта всего за 3-4 дня, из которых 1 день – запуск рабочего сайта с товарами, остальное – переводы, интеграция с сервисами доставки и оплаты. Мультиязычность – не единственная сложность, которую приходилось преодолевать. Ещё были мультивалютность, эквайринг и локальные системы измерения. Последние играют важную роль в доставке.
- Обновили механизм хранения данных и обмена между b2b- и b2c-сайтами и нетиповой 1С. Предыдущая версия архитектуры была построена на самописном хранилище Postgre и при масштабировании сильно увеличивала время обновления данных на сайтах. Новое решение позволило увеличить скорость обновления почти в 100 раз и создать единую платформу — «контентный сайт», которая гибко работает и легко интегрируется в новые продукты.
- Модернизировали устаревшую европейскую версию 1С, а также механизмы обмена данными между версиями 1С и сайтами. Европейская версия работала только с XML (не поддерживала методы работы с JSON), поэтому нельзя было без костылей перенести, например, свойства товаров из старой версии в новую и на сайт. Пришлось самим писать методы создания, проверки и отладки JSON. То же самое касалось переноса данных из европейской версии 1С в российскую и обратно.
- Переписали типовой модуль работы Битрикса с промо акциями для поддержки сложных схем и нестандартных интеграций под задачи заказчика: применение подарков ко всей корзине или к 1 товару (подарков может быть несколько), применение скидок на несколько первых покупок, создание товарных наборов, привязка разделов к акциям под Черную Пятницу и Киберпонедельник, вывод значков об участии в акции в товарный фид, автопродление скидок и др.
- Для товаров, которые уже недоступны (отсутствуют или сняты с производства) настроили выдачу по ключевым запросам так, чтобы сохранить высокий объем трафика. Пользователю, перешедшему на сайт, предлагаются альтернативы по схожей цене/функционалу.
- Переопределили схему размещения и работы серверов, хранения данных пользователей. Сейчас серверы работают как географически распределенный кластер, а терминальный режим позволяет экономить на покупке дополнительных 1С-лицензий.
- Помогли с редизайном, добившись запланированных результатов через совмещение перфекционизма дизайнеров с функциональными требованиями.
Основные результаты сотрудничества.
Десктоп и мобильная версия
Некоторые элементы и механики в новом дизайне.
Внутри личного кабинета дилера тоже много красивого: аналитика, вишлист, история заказов, будущие поступления, корзина и многое другое.
С сайтом интегрировано 7 популярных платежных систем.
4. Заключение
Главный результат нашего участия – это не только современный, стабильный и функциональный сайт с личным кабинетом дилера, но и возможность выходить на новые географические рынки без больших вложений в разработку: продажи на новой языковой версии могут быть развернуты за несколько дней при минимальном приросте нагрузки на ИТ-инфраструктуру и сотрудников. Наличие рабочих паттернов позволяет компании точнее прогнозировать бюджет на освоение нового рынка.
Другим, не менее ценным, эффектом является сокращение затрат на поддержку: внутри проекта и в интеграциях стало меньше ошибок, все работает быстрее и надежнее. Это важно для любого бизнеса.
Сотрудничество с брендом продолжается. Мы работаем над переносом дизайна на русскоязычные сайты, написанные на фреймворках java.