Треть онлайн-покупок всех смартфонов в стране совершают в интернет-магазине МТС. Для бесперебойной работы проекта мы предоставляем бесперебойный продакшен и поддержку уже на протяжении 5 лет.

Digital-инфраструктура магазина мобильного оператора

За 5 лет цель и задача поменялась, но изначально требовалось сделать удобный с точки зрения мастабирования проект который может наращивать свои мощности на ближайшие 5-7 лет.
В условиях тендера было порядка 100 страниц документации функционала, основные требования сводились к базовым для магазина вещам: товарный каталог, корзина, личный кабинет, частичная интеграция с 1С через SOAP.
Вопросов по выбору платформы не было, так как клиент уже провел исследование и определился с платформой. Движок Битрикс отлично справляется с товарной базой до 10 000 позиций, поэтому от нас только требовалась грамотная интеграция.

Архитектура магазина

Товары ведутся непосредственно в Битрикс, для актуализации товаров по остаткам и ценам мы написали ежедневный CSV-импорт, который отдаёт нам 1С.
Работа и учет с заказами ведется в 1С, поэтому для интеграции нужно было написать SOAP-клиент, который будет передавать информацию в 1С.

Планируем дорожную карту

По договору на проект были жесткие сроки со штрафами за просрочку, так как клиент терял деньги из-за плохой работы старого магазина. Чтобы не выбиться из сроков, этапы разделили по мере роста сложности.
1-й этап
Подготовка HTML-шаблонов, первичная натяжка на Битрикс
2-й этап
Создание структуры в Битрикс, набивка статичных разделов контентом
3-й этап
Сборка товарного каталога, настройка работы фильтров, импорт цен
4-й этап
Реализация личного кабинета, корзина, оформление заказов
5-й этап
Проброс заказов в 1С, множественные цены, перелинковка СКУ


Очередность обычно выстраивается по принципу «как можно раньше пустить клиента в админку и предоставить работу над каталогом», так как каталог — это 90% работ. Таким образом, на этапах корзины и интеграции с 1С у нас уже есть реальный каталог, а это снижает процент ошибок при интеграции.

Готовим шаблоны

Интересный факт: дизайн разрабатывался еще в 2014 году, но из-за универсальной подачи с преобладанием светлых областей и акцентом на товары не выглядит сильно устаревшим в 2020 году. Выдает только зауженная контент-область. Все-таки за шесть лет стандарты разрешений подросли.
Продуктовая подача достаточно стандартная. Фильтрация, товарная сетка 3 на 7, короткие характеристики под товарами,
Сравнение с выделением побед, всё по-взрослому.
Сердце магазина — это процесс оформления товаров. На итоговом продукте не видно эволюции, но каждый шаг и поле активно обсуждались, ведь лишние поля — это минус конверсии. Активная работа с расширенной Google Analytics и внедрение продажи в 1 клик позволило увеличить конверсию более чем на 30%.
Кроме классических товаров, продаются сим-карты. У них своя подача и свой тип товара.
Статические страницы акций снабдили виджетом для привязки товаров к акциям. Можно динамически формировать список акционных товаров.
Типовые для магазинов вещи: профиль, наборы адресов доставок, история заказов, избранное.
Поисковый движок может работать в классическом режиме, но может и подсказывать популярные позиции. Это повышает переходы и конверсию.

А теперь то же самое, но для смартфонов

В 2015-м адаптивная верстка еще не была так распространена, повсеместно встречались WPA-сайты. Для МТС мы разработали отдельную мобильную версию. Она использует единую базу, но свои шаблоны, специально адаптированные для телефонов. Перед дизайнерами стояла задача обеспечить лучший вид для ширины 320px.
Переходы между мобильной и основной версией сделаны бесшовно. При входе на основную версию с мобильного устройства вас перекинет на мобильную страницу автоматически.

Технические решения и особеннности проекта

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

13 цен у каждого товара

Самая большая особенность данного проекта это — его работа с ценами. Из-за того, что это не просто магазин, а сайт оператора, у него на каждый товар может быть восемь цен!

Например, если вы абонент МТС, то можете покупать по акции. Это специальные цены, с дисконтом. Практически любой товар можно купить в рассрочку на 7, 12 или 24 месяца. А некоторые товары с рассрочкой даже на 36 месяцев!

Итого у нас есть обычные цены, цены с акцией и у каждой еще три цены рассрочкой. И еще особая цена на черную пятницу. Всего 13.

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

Все цены работают нативно с ядром битрикс, поэтому механика оформления корзины, купоны, скидки и прочие фишки Битрикса по-прежнему работают с данными ценами.

Как SKU, но не SKU

Электроника и бытовая техника иногда отличаются только несколькими характеристиками. У Битрикса для этого есть готовая схема «товар — торговое предложение», но из-за особенностей хранения товаров нам такое решение не подходило. Мы разработали свой модуль объединения.

Печать ценников

Проект shop.mts.by — это не только онлайн-торговля, но и крупнейшая в стране сеть отделений. Для них мы разработали модуль печати ценников на местах.

Менеджеры МТС могут обновлять цены в магазинах центразованно через наш модуль.

Полная интеграция с Onliner

Мы полностью интегрировали торговый каталог сайта с Onliner. У клиента единая точка входа — панель Битрикс. Товары к выгрузке можно формировать прямо из админки. А заказы, оформленные на Onliner автоматически, формируются в заказы в магазине. Смена статусов отображается автоматом на onliner.by.

Авторизация MobileID

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

Модуль скоринга

Система автоматически, на основе оформленного заказа, формирует запрос в систему скоринга и помогает консультантам, уменьшая объемы ручного скоринга.

Модуль очереди обработки заказов

Модуль принимает заказы и формирует из них распределенную очередь по всем консультантам с учетом занятости и важности заказа.

Модуль расчета консультантов

Модуль формирует отчеты расчета с консультантами и готовит закрывающие документы.

Надежность системы

Хороший проект должен быть не только удобным, ускорять работу для сотрудников, но работать безотказно. Интернет-торговля — это бизнес, где каждая минута простоя выливает в потерянные заказы и негативные отзывы.

Построить надежную систему помогают наработки 1С-Битрикс и умелое использование технологий.



Все узкие места (каталог и товары) активно кэшируются. Количество незакэшированных запросов не превышает 25-30 на страницу. Кеш храним в memcached, что значильно ускоряет считывание кеша. Кроме этого на проекте настроена технология композитного кеширования от 1С-Битрикс.
Самое сложное для такого проекта — пережить черную пятницу. Как правило, это многократный рост нагрузки. Если обычная нагрузка составляет 100 одновременных соединений, то в черную пятницу может быть 1000 и более. shop.mts.by проходит эту проверку без падений.

Чтобы вы понимали, насколько это сложно, сверху скриншот другого популярного конкурента в черную пятницу 2019 года.

Ошибка 503 означает дословно «Большое число запросов к веб-серверу». Значит, поток запросов такой большой, что программа не справляется с их обработкой.

Команда проекта

Руководители проекта
Дима Хоружко
Иван Самойлик
Юра Иов
Верстка
Сергей Герасимов
Павел Кряквин
Команда клиента
Оксана Хачиян
Александр Тишков
Эдуард Романюк
Сергей Латышевич
Павел Сотников
Дизайн
Сергей Шишпор
Дима Хоружко
Леша Синкевич
PHP разработчики
Павел Пенкрат
Стас Вовк
Денис Астапенко