Интернет-магазин «Парк»

Веб-разработка, аудит и сопровождение

Клиент

Компания “Парк” продает смартфоны и бытовую электронику в Крыму c 2001 года. Сейчас в Крыму 67 магазинов “ПАРК”. У компании есть интернет-магазин на базе готового решения park-mobile.ru.

Сайт интегрирован с 1С. Регулярно на сайт загружаются товары и идет обмен заказами. В каталоге 6 500 товаров. Ежедневно сайт посещают 2000 - 3000 человек. Основной трафик - мобильный.Типичная проблема таких проектов в том, что если сайт сделан плохо, то его скорость работы заметно падает, как следствие падает конверсия. Снижение конверсии приводит пустой трате рекламного бюджета. Иными словами, чем больше вы денег тратите на контекстную рекламу, тем сильнее вы снижаете конверсию.

Цель проекта

Развитие и сопровождение интернет-магазина с посещаемостью 2000+ человек в сутки.

Задача

Компания “Парк” обратились к нам в январе 2018 с задачей увеличить скорость работы интернет-магазина. Ниже мы расскажем о том как сделали это, не сломав все что было сделано до нас, и о том, как решили несколько других интересных задач.

Решение

Надежный и быстрый интернет-магазин

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

В первую очередь, мы перенесли сайт на новый выделенный сервер и подключили его к системе мониторинга Zabbix и настроили автоматическое резервное копирование на независимый сервер.

С помощью Zabbix мы следим за работой сервера, программного обеспечения, отслеживаем изменение нагрузки на сайт, а также работоспособность критических узлов (API, каталог, оформление заказа) и основных бизнес-процессов (обмен с 1С, выгрузки данных).

После “переезда” мы измерили производительность и скорость работы сайта.

Показатель

Значение (после переезда на новый сервер)

RPS (Максимальное количество одновременных http запросов)

85

Время генерации главной страницы без кеша

0,7176 сек.

Время генерации главной страницы с кешем

0,1538 сек.

Время генерации списка товаров без кеша

1,1033 сек.

Время генерации списка товаров с кешем

0,1143 сек.

Время генерации карточки товара без кеша

0,8175 сек.

Время генерации карточки товара с кешем

0,5920 сек.

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

Мы проанализировали работу базы данных сайта и составили список медленных запросов и причины, их медленной работы. Устранив их мы навели порядок в коде сайта.

После оптимизации кода мы повторили замеры и получили следующие значение:

Показатель

Значение

(после переезда на новый сервер)

Значение

(после оптимизации)

RPS (Максимальное количество одновременных http запросов)

85

235

Время генерации главной страницы без кеша

0,7176 сек.

0,4951 сек.

Время генерации главной страницы с кешем

0,1538 сек.

0,1124 сек.

Время генерации списка товаров без кеша

1,1033 сек.

0,7154 сек.

Время генерации списка товаров с кешем

0,1143 сек.

0,1214 сек.

Время генерации карточки товара без кеша

0,8175 сек.

0,4456 сек.

Время генерации карточки товара с кешем

0,5920 сек.

0,1114 сек.

Нам удалось увеличить максимально-допустимую нагрузку (RPS) почти в 3 раза, и существенно сократить время генерации страниц. Сайт стал быстрым и надежным.

Все изменение положительно сказались на конверсии и количестве посетителей из поисковых систем.


Количество посетителей из поисковых систем.

После наведения порядка на сайте мы приступили к доработкам проекта.

СМС-авторизация

Весной 2018 мы добавили на сайт СМС-авторизацию. Теперь у пользователей нет паролей, которые они могут забыть.


СМС-Авторизация на сайте

Процедура проста и приятна. Пользователь вводит телефон на сайте, ему приходит короткий код. Ввел – вошел на сайт. Если пользователя с таким телефоном до этого не было, мы незаметно регистрируем его.

Поскольку у Парка уже работала программа лояльности в офлайн-магазинах, в 1С накопилось много информации о покупателях, в том числе ФИО и номера телефонов. Мы запрограммировали импорт этих данных на сайт и смогли автоматически заполнять данные пользователе при регистрации.

Как только новый посетитель вводит код из СМС, мы проверяем, есть ли в базе офлайн-покупателей такой номер телефона. Если есть, мы автоматически формируем его профиль на сайте. Теперь ему не нужно заполнять данные о себе, даже при оформление первого заказа на сайте.

У заказчика уже была интеграция между смс-шлюзом и 1С. При изменение заказа 1С отправляла смс-сообщения покупателям. Совместно с 1С-программистами мы разработали REST API на стороне 1С и клиент на стороне сайта. Когда нам нужно отправить смс, мы делаем запрос к 1С. Она отправляет смс и возвращает нам ответ : получилось или нет.

Чтобы быть уверенными в надежности получившегося механизма, мы мониторим доступность сервиса 1С с помощью Zabbix. На случай отказа, мы предусмотрели возможность авторизоваться по коду, который отправляется на email. Если смс-авторизация по какой-то причине не работает, пользователь может ввести email и получит код на почту.

Автолендинги, возврат покупателя и повторные продажи

Совместно с Колпаковым Максимом и 1С-специалистами мы продумали и разработали механизм автоматических лендингов, которые поддерживают связь с покупателем после оформления заказа и делают повторные продажи.

Неважно где был оформлен заказ, на сайте или в офлайн-магазине, для участия в программе лояльности покупатель сообщает свой номер телефона. В будущем на этот номер  будут приходить смс/telegram-сообщения с короткими ссылками на лендинги с персональными предложениями.

Пример: вы купили iphone, но не купили к нему чехол и стекло. Через несколько дней после покупки, вам придет смс со ссылкой на страницу, где вы увидите лучшие персональные предложения с индивидуальными ценами на сопутствующие товары. В первом приближении все выглядит именно так, однако на деле все куда сложнее и интереснее.

Для начала у вас спросят, довольны ли вы работой продавца, который помогал вам выбрать покупку. Если вы дадите обратную связь через некоторое время (1-2 недели) у вас спросят “не нужен ли чехол?”. Еще через пару месяце предложат новое защитное стекло, еще через пол года наушники. Через год предложат новый телефон.

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

Схема взаимодействия Сайта, 1С и пользователей

1С хранила историю продаж за несколько лет. Это сотни тысяч покупок. На основе этих данных коллеги из 1С научились делать выводы и предсказывать, что и какому покупателю когда нужно предложить. Таким образом у нас было понимание, какую информацию и когда нам надо будет показывать пользователям.

Мы разделили прототипы на блоки: “Блок с товаром”, “Блок со списком товаров”,”Блок с текстом”,”Блок с картинкой” и т.д.Таких блоков получилось ХХ, и мы могли их комбинировать так как нужно.

Мы приняли решение, что “мозгом” в этом решение будет 1С, а сайт будет выполнять роль “телевизора”, который будет показывать то, что ему скажут. Для коммуникации 1С и сайта мы спроектировали и разработали REST API, которое позволило создавать любой вариант лендинга из заранее определенных блоков.

Иными словами, 1С решает, что покупателю А мы покажем лендинг с 3 лучшими защитными стеклами и текстом приветствия. 1С отправляет запрос на сайт, в котором говорит, что ей нужен лендинг для А, состоит из 3-х блоков. Первые блок “Приветствие”, текст для него “Бла-бла-бла”. Второй блок “список товаров”, товары для него “раз, два и три”, цены на них “такая, эдакая и сякая”, подписи к товарам вот. Третий блок с “Подвалом”, контент для него “вот”.

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

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

На проектирование и разработку механизма, верстку и программирование у нас ушло ~ 300 часов. Каждую ночь 1С генерирует лендинги, которые будут отправлены сегодня, обычно это 1000 лендингов. Т.к. сайт способен работать под нагрузкой в 200 одновременных запросов, процедура проходит быстро и незаметно. На момент написания статьи в базе данных сайта 655771 автолендинг.

Результаты

В течение года, с нашей стороны над проектом работало 4 программиста и менеджер проекта. За год объем работ составил 1600 часов. Этого времени было достаточно, чтобы закрыть 215 задач.

Над проектом работали

Горелов Сергей

Горелов Сергей

Руководитель
Машанов Павел

Машанов Павел

Директор по проектам
Михайлов Александр

Михайлов Александр

Технический директор
Мирошников Артем

Мирошников Артем

Ведущий разработчик
Ильин Андрей

Ильин Андрей

Разработчик

Отзыв

«Если бы все подрядчики работали как компания Логема, мы бы росли в 2 раза быстрее»

Год назад начали работать с Логемой – и не ошиблись.
Оперативность, точность, стабильность – привычный стиль работы.

Объём выполненных задач впечатляет, сумма дополнительно заработанной прибыли – радует.

Планируем работать и дальше – план расписан на ближайшие 11 месяцев.
Готов лично подтвердить каждое слово – shevtsov@park-mobile.ru


Смотреть отзыв

Иван Шевцов
основатель Компании ПАРК