Shape 2 Created with Sketch. Shape 2 Created with Sketch. Shape 2 Created with Sketch. 539A0822-23D1-4EB0-A2B6-ADC1427D73FD Created with sketchtool. BE83D970-80BD-429F-8FEF-15320EFC25BD Created with sketchtool. fb Created with Sketch. Imported Layers Copy 4 Created with Sketch. Page 1 Created with Sketch. 8E691C04-FCB2-4D28-A161-E18CE8F4274A Created with sketchtool. icon-increase2 icon-mail icon-phone Oval 20 Created with Sketch. icon-research icon-research2 Group 36 Created with Sketch. Imported Layers Copy 6 Created with Sketch. Imported Layers Copy 5 Created with Sketch. LOGO 50B11FD7-22F2-4934-A094-70A3E7FBFD64 Created with sketchtool.
Ко всем проектам

Kari

Реализация омниканальной стратегии и создание интернет-магазина на платформе 1С:Битрикс Enterprise для самого крупного ритейлера обуви в стране

> 2 млн

посетителей ежемесячно

x3,5

рост количества заказов за год

50%

повторных покупок

x2,5

рост конверсии за год

Коротко о компании
Сеть обувных магазинов, создана в 2012 году бывшим владельцем «Эльдорадо» Игорем Яковлевым. Насчитывает 856 магазинов
в России, Казахстане, на Украине, в Белоруссии и Польше
и 11 РЦ в России. По итогам 2014 года оборот компании составил
16 млрд руб., на 92% больше, чем в 2013 году, в 2015 он уже достиг 23,6 млрд.
Адрес сайта
Эдгар Гусейнов, директор по продукту Aero (ЭГ), Андрей Рождественский, руководитель интернет-проекта kari (АР)
В чем заключалась основная задача проекта?
ЭГ: kari пришли к нам с очень амбициозными планами. За полгода надо было, фактически, запустить 4 интернет-магазина: для России, Казахстана, Украины и Беларуси. Планировалась нагрузка порядка 3000 пользователей, одновременно находящихся онлайн на сайте, 2 миллиона просмотров и 5000 заказов в сутки, с увеличением в периоды пиковых нагрузок втрое.

При этом, нужно было отображать актуальный ассортимент, остатки, цены не только по городам присутствия kari, но и по конкретным магазинам. Сделать так, чтобы менеджерам было удобно работать с ассортиментом на сайте — на момент начала работы над проектом в каталоге kari было 30 000 моделей или 120 000 SKU, сейчас — уже более 80 000.

Изначально мы запланировали три больших этапа:
  • Запуск сайта в виде витрины
  • Организация возможности самовывоза
  • Запуск доставки и подключение рекомендательных сервисов


  • Можно поподробнее о витрине — в чем ее специфика?
    ЭГ:  Даже при отсутствии возможности онлайн-заказа, обязательным условием была возможность увидеть актуальную информацию о наличии товара в том или ином магазине.

    АР:  На момент старта проекта у kari было около 500 офлайновых магазинов и более тысячи дополнительных складов хранения обуви. От Aero требовалось сделать так, чтобы остатки формировались «на лету» по городам, по магазинам, с возможностью фильтрации. Все это должно было работать очень быстро, а информация по складским остаткам — обновляться раз в 15 минут.

    ЭГ:  Сложность в том, что kari в качестве ERP-системы использует Dynamics Axapta. В ней программными способами крайне сложно сформировать «дельты» — расхождения остатков на разное время. Axapta может сформировать только полноценный отчет о том, что есть в наличии в определенный момент времени. Из-за этого сразу не было возможности начать работать с дельтами, и мы делали только полный импорт остатков.

    Это приводило к повышенным нагрузкам?
    ЭГ:  Да. На самом старте от нас требовалось каждые 15 минут импортировать 7 000 000 строк только остатков из БД. При этом происходил очень быстрый и неравномерный рост объема данных: например, только за одну неделю количество импортируемых строк выросло с 7 до 8 миллионов. Как только со стороны ERP был реализован механизм выгрузки, мы переключились на импорты дельт, и стало значительно проще.

    Для того, чтобы обеспечить такую производительность с учетом прогнозируемого роста возможных нагрузок, мы разработали кластерную архитектуру из семи серверов: два сервера приложений, два сервера баз данных, балансировщик, который распределяет нагрузку, и по одному серверу под кеширование данных и поисковой движок Elasticsearch.
    Предпроектные исследования
    В 2015 году рынок fashion e-commerce составлял 20% от всего рынка онлайн-ритейла России (по объему продаж) и 32% (по числу заказов). Такая разница объясняется низким средним чеком (3200 рублей при 4050 рублей в среднем по всем сегментам). В 2015 году, по оценкам Data Inside, объем сегмента составил 145 миллиардов рублей (без учета кроссграничной торговли и универсальных магазинов), при этом ТОП 10 крупнейших интернет-ритейлеров генерируют 60% от общих продаж всех онлайн-магазинов.
    У большинства интернет-магазинов сегмента fashion конверсия составляет менее 1,5%.
    Цель и польза проекта
    Запустить онлайн-каталог с актуальным ассортиментом, ценами и информацией о наличии товара в магазинах
    Добавить возможность резервирования товара в магазинах, расчета скидок, акций и бонусов для планируемой покупки
    Добавить возможность осуществления заказа с доставкой по России
    Расширить географию разработанных решений на все страны присутствия
    Подготовить API для мобильного приложения
    Главная страница
    Какая нагрузка на сайте сейчас?
    АР:  Сейчас на сайте одновременно находится в среднем 3000 посетителей, а за месяц приходит 2 миллиона человек.

    Сколько суммарно интеграций с разными системами потребовалось провести при создании сайта?
    ЭГ:  Всего на старте мы насчитывали 7 базовых, критически важных интеграций. Делать отдельные интерфейсы для работы с каждой системой было нерационально, поэтому мы развернули промежуточную базу данных, в которую все системы выгружают данные, где они постоянно обновляются.

    АР:  Эта структура не идеальна, но для проекта такого масштаба — вполне рабочее решение. Основная проблема заключается в том, что Axapta и сайт постоянно работают с одной и той же базой данных, поэтому возникает «конфликт интересов», что снижает скорость работы. Решается это блокировками и «семафорами», которые позволяют ограничить максимальное число потоков, одновременно работающих с базой.

    Какие еще сложности были с запуском?
    ЭГ:  Это прозвучит странно, но даже с учетом всех интеграций самые большие проблемы на сайте были с меню.

    Меню? Необычно. И в чем была проблема?
    АР:  Сложно было договориться, что «вытаскивать» на первый уровень меню. Сначала мы разместили там основные разделы: «Мужчинам», «Женщинам», «Для мам и малышей» и так далее. Потом кто-то пришёл и сказал: «Давайте вытащим отдельно «Спорт». Потом кому-то пришла мысль добавить раздел «Пьер Карден». Потом «Распродажи». Идеи продолжали поступать, получилось уже не меню, а непонятно что. В итоге всё-таки смогли договориться.

    Еще одна сложность была связана с тем, что в разных городах — разные товарные остатки. А логика работы системы предусматривала отображение в меню только ассортимента, доступного в городе покупателя.

    ЭГ:  ...а городов, где у kari есть свои магазины, очень много. При этом, мы сразу запускались на четыре страны: Россия, Казахстан, Украина, Беларусь.

    А почему нельзя было сделать одно меню для всех городов?
    ЭГ:  Бывает, что какого-то товара нет во всем регионе. Мало того, иногда отсутствует вся товарная категория. Нам необходимо было сделать так, чтобы для покупателя из региона или города, в котором нет товаров соответствующей розничной группы, этот пункт меню скрывался. Живой пример — категория «Игрушки», которая постепенно появлялась в ассортименте разных городов.

    Как считаются остатки?
    ЭГ:  Для каждой из четырех стран используется сложная система расчета остатков. Мы считаем, что товар присутствует в городе, если его можно купить хотя бы в одном магазине. Если в городе нет ни одного магазина, а значит, ни одного товара, но он есть на складах субъекта выше уровнем (область, край), то он показывается как присутствующий в регионе. Отдельная история - анклавы или сложные конгломерации. К примеру, поселок Яблоновский фактически является пригородом Краснодара, расположенным к центру города ближе, чем некоторые спальные районы, а относится к другому субъекту - республике Адыгея. Не говоря уже про хитросплетения взаимного учета остатков магазинов Москвы, Московской области, Зеленограда, Химок и Долгопрудного.

    Фактически для каждого города в четырех странах у нас есть, в результате, свое индивидуальное меню со своей логикой учета товаров. И все эти меню должны обновляться автоматически каждые 15 минут. Такие же особенности есть и при построении и наполнении каталога товаров, или формировании динамических фильтров в категориях - эти фильтры автоматически генерируются по свойствам товаров, которые доступны в текущей категории.
    Задачи
    Запустить интернет-магазин с актуальными остатками на всех типах складов
    Организовать возможность работы с ассортиментом каждого магазина (собственные и франчайзи)
    Поддержать уникальную для каждого магазина ценовую политику
    Разработать и внедрить омниканальную программу лояльности
    Разработать систему обмена данными с кассовым ПО конечных магазинов Организовать возможность выполнения одного заказа в разных магазинах и складах
    Минимизировать участие системы "Битрикс" в управлении мастер-данными
    Поговорим о втором этапе работы — реализации возможности самовывоза. Какие тут потребовались интеграции?
    ЭГ:  В компании не предполагалось создания отдела для обработки интернет-продаж, а колл-центр работает только с проблемными заказами. В связи с этим мы приняли решение интегрироваться непосредственно с кассами в розничных магазинах.

    Как именно?
    ЭГ:  Заказ интернет-магазина отправляется напрямую на кассу, для чего пришлось сделать специальный интерфейс работы с кассовыми терминалами. Теперь, когда клиент оформляет заказ самовывозом, в магазине на терминал в отдельную вкладку «интернет-заказы» попадает задание на сборку. Продавец открывает вкладку, видит все заказы, которые поступили через интернет, идет на склад или в торговый зал, берет товар, сканирует его с помощью сканера штрихкода. Получив таким образом обновление статуса для одного товара, мы понимаем, что весь заказ переведен «в сборку» и запускаем соответствующий процессинг.

    После того, как отсканированы все товары внутри заказа, он помечается как «собранный», а клиенту уходит SMS и email о готовности. С этого момента товары можно забрать в магазине. Параллельно в промежуточную базу данных записывается информация о том, кто и когда собрал заказ. Это нужно для анализа работы менеджеров касс.

    А как покупатель выбирает магазин, где забрать заказ?
    ЭГ:  Покупатель может пойти двумя путями: либо его интересуют конкретные товары, либо конкретный магазин. В первом случае он находит нужный товар, а потом, на этапе оформления заказа, мы даем ему возможность выбрать удобный магазин из тех, где товар есть. Причем, если все товары можно купить в каком-то одном магазине, то на экране покупателя появляется кнопка с информацией об этом. Если же заказанные товары находятся в разных магазинах, то клиент может для каждого из них выбрать свою точку самовывоза.

    Второй путь: клиент еще в каталоге выбирает фильтр по конкретному магазину и видит только те товары, которые есть в этом магазине.

    Не было ли проблем интеграции с кассами в магазинах?
    АР:  Да, была интересная накладка. В один прекрасный момент мы обнаружили, что наши кассы отправляют огромное количество запросов. Кассы обращались к веб-сервисам с запросом: «Я – касса такая-то, дайте мне обновление статуса моих заказов». По регламенту кассы должны это делать раз в пять минут, но получилось так, что каждая касса посыла сотни обращений в минуту, а у нас их 1800: по 2 в каждом магазине. Это был настоящий кассовый DDOS! Вся система напрочь зависла, и было непонятно, что происходит. Выяснилось, что обычный сбой кассового ПО. Пришлось быстро обновлять его и проводить доработку.
    Решения и процессы
    Горизонтально масштабируемая кластерная архитектура
    Отказоустойчивая схема обмена данными с ERP с возможностью перехода в автономный режим работы
    Независимые импорты по всем типам данных
    Настраиваемое отображение цен в каталоге (федеральные, региональные, цены магазина и цены франчайзи)
    Поддержка неограниченного количества складов и цен
    Обмен заказами напрямую с кассовыми аппаратами в магазинах без участия CRM
    Настраиваемые сценарии переходов статусов товаров и заказов
    Интерфейс тикетной система обработки заказов для касовых аппаратов магазинов
    Работа с бонусными картами: просмотр баланса, начисления, списания
    «Тонкий клиент» для сотрудников колл-центра
    Как проходило взаимодействие и интеграция с системой лояльности?
    ЭГ:  У kari картами лояльности являются не обычные карточки с номером, а полноценные платежные карты MasterCard. Чтобы получить эту карту, не нужно даже предъявлять паспорт, достаточно номера телефона.

    А что с безопасностью таких карт?
    АР:  Пластиковые карты значительно увеличивают требование к безопасности. Эмитентом карт является Центр Финансовых Технологий (ЦФТ).

    ЭГ:  Интеграция с ЦФТ была сложной: требовалось использовать 4 разных API под разные действия в программе лояльности. Сейчас интеграция завершена процентов на 70: мы сообщаем клиенту, сколько баллов есть на карте, сколько спишется, если он получит скидку, выводим конечную стоимость товаров, участвующих в акциях.

    А как предоставляются скидки?
    ЭГ:  Это очень сложная система. Cкидка может работать как на страну, так и на регион, на город и даже на конкретный магазин. Директора магазинов имеют возможность самостоятельно принимать решения о запуске или прекращении акции. Поэтому в сети необходим свой сервер расчета скидок. Он был реализован на уровне системы терминалов, в Wincor POS.

    Как работает эта система?
    ЭГ:  При покупке в розничном магазине, касса отравляет на сервис расчета скидок запрос, который содержит всю информацию о покупке: в каком магазине совершается заказ, какие товары покупаются. Сервис возвращает конечную стоимость каждого отдельного товара и всего заказа, с учетом всех скидок, предоставляемых на товары, содержащиеся в заказе. Аналогично на сайте - в тот момент, когда клиент переходит в корзину на сайте, мы формируем аналогичный запрос и обращаемся к сервису расчета скидок для получения окончательного чека, такого же, какой получился бы при покупке в магазине выдачи.

    В kari есть франшиза. Насколько она усложняет разработку?
    ЭГ:  Самая серьезная задача, которую пришлось решать — это отображение актуальных цен, которые могут отличаться от магазина к магазину. Более того, некоторые магазины работают по франшизе и устанавливают свои собственные цены. Изначально планировалось, что цены будут разниться только по городам, а в рамках одного города будет действовать одна цена на одни и те же товары. В результате все пришлось менять, поскольку даже в соседних магазинах могут быть разные базовые цены, и это без учета скидок.

    Как образом вы решили проблему разных цен на один и тот же товар в разных магазинах?
    АР:  Есть «федеральная цена», которая не привязывается к рознице, и есть отдельные цены для каждого конкретного магазина сети. Если в городе нет магазинов — мы оперируем федеральной ценой. Если магазины есть, то в каталоге отображается максимальная цена в городе. А вот когда покупатель выбрал конкретный магазин, то в каталоге, карточке товара или корзине он видит уже финальную, точную цену.

    Расскажи немного об интеграции с СМС и email-рассылками.
    ЭГ:  Самое простое — это СМС-оповещения. Они используются для подтверждения контактных данных покупателя, верификации карты лояльности и рассылки статусов заказа. Для рассылки используется сервис Devino Telecom. Мы разделяем сообщения по типам, исходя из их важности или срочности. Важные и срочные сообщения стоят для компании дороже, но гарантированно оперативно доставляются. Остальные сообщения, вроде смены статусов заказа, — менее срочные, поэтому они отправляются по условиям другого тарифа. Кроме того, если клиент пользуется Viber, мы пытаемся сначала передать информацию о заказе через него.

    А делали ли вы что-то для сотрудников колл-центра kari?
    ЭГ:  Сейчас функционал колл-центра простой: операторы работают с проблемными заказами — теми, от которых клиент отказывается или хочет перенести на другую дату. Поэтому мы сделали специальный «тонкий клиент» — набор служебных интерфейсов, которые открываются во фрейме в ПО колл-центра и дают оператору выполнять только базовые действия, которые ему необходимы, без возможности изменить то, что не касается его прямых задач. Риск что-нибудь случайно испортить сведен к нулю.

    Планируется ли делать мобильные приложения?
    ЭГ:  Да, мы уже на 80% закончили разработку API для мобильного приложения. Мы делали его совместно с компанией из Санкт-Петербурга. API построено на стандарте обмена коммерческой информацией commerce XML и построен на основе стандартного модуля выгрузки в Яндекс.Маркет. Нас это решение не в полной мере устраивает, так как Яндекс не позволяет выгружать разные остатки для каждого магазина в городе, а оперирует только городом. Мы будем совершенствовать эту систему.

    Что планируется делать в ближайшее время?
    ЭГ:  Интерфейс оформления заказа пока достаточно сложный, мы его будем оптимизировать. Планируется провести интеграцию с Retail Rocket для тестирования персонализации рассылок.

    АР:  Будем делать персональные рекомендации на сайте, в email-рассылках. Есть и еще проект, который мы пока не раскрываем. Цель — чтобы каждый наш потенциальный покупатель получал персональное предложение, которое сможет «выстрелить» с наибольшей вероятностью.
    Отзыв клиента
    Андрей Рождественский, руководитель проекта:
    Мы работаем с агентством Аэро с 2014 года, и все это время компания обеспечивает нас решениями в области электронной торговли, от первичной разработки интернет-магазина до постоянного внедрения нового функционала и вывода проекта на новые рынки. Наша компания развивается очень быстро: с 2012 года мы открыли 900 магазинов в 4 странах, а онлайн-каталог насчитывает уже почти 500 тысяч торговых предложений. Хотелось бы отметить высокую компетенцию сотрудников Aero, умеющих работать в быстроменяющихся условиях, находить общий язык с нашими подрядчиками и партнерами, держать высокие нагрузки и при этом оставаться комфортным подрядчиком на личном уровне. На текущий момент мы продолжаем работу, непрерывно осуществляя плановый ввод в эксплуатацию нового функционала сайта и совместно решая возникающие задачи и проблемы нашего большого и амбициозного проекта.
    Общий результат
    Запущены 4 национальных сайтa с поддержкой мультиязычности: Россия, Беларусь, Украина, Казахстан
    Организована поддержка 900 магазинов и 1600 складов учета
    Оптимизирована работа под высокие нагрузки: 75.000 активных SKU, 2 млн. визитов в месяц
    Платформа и интеграции
    Платформа: «1С:Битрикс»
    ERP: Microsoft Axapta
    Кассовое ПО: Wincor Nixdorf POS
    Лояльность и финансовые инструменты: «Центр Финансовых Технологий»
    Рекомендательный сервис: Retail Rocket
    Емейл-рассылки: MindBox
    СМС-рассылки: Devino telecom
    Расскажите о проекте
    Подпишитесь на рассылку о eCommerce