Как мы разработали интернет-магазин со своей ERP в каждом регионе
Результат Процесс
Формула с 40 переменными
Сибирикс
Формула с 40 переменными
Как мы разработали интернет-магазин со своей ERP в каждом регионе
Франшизы — очень популярный сейчас формат. И комплект франшизы обычно включает «кусочек» сайта торговой марки. По сути франчайзи получает сайт для своего региона. Это круто для продвижения бренда в целом и привлекает новых франчайзи — ведь бизнес получается 2-в-1: офлайн+онлайн.
  • Fitness Formula — это крупнейшая сеть магазинов спортивного питания, представленная более чем в 50 регионах. Fitness Formula не только предлагает самый широкий ассортимент качественных спортивных добавок, но и производит спортивное питание под собственной торговой маркой.
Магазины Fitness Formula работают в регионах как франшиза. В каждом регионе — свое юридическое лицо, которое использует свою ERP. В большинстве — 1С, но есть более экзотические системы.

Когда заказчик пришел к нам, у него уже был сайт. Правильнее — сайты. Вопрос с региональными сайтами решался без лишней изобретательности: было развернуто 40+ копий сайта на старой версии Shop-Script (Webasyst). В каждом регионе — своя. В результате любое изменение на сайте влетало в копеечку — ведь его надо было растиражировать 40+ раз. Тем более копии были не 100% одинаковыми. То есть просто скопировать код было нельзя — надо было его скопировать так, чтобы он заработал на каждой конкретной копии сайта.

Так что перед нами стояла главная задача. Точнее — ЗАДАЧА. Сделать единый сайт для всех регионов. Но при этом для каждого региона должна была быть:
  • своя интеграция с ERP, платежной системой, службой фискализации, сервисом доставки, сервисом sms-уведомлений;
  • своя логика работы бонусной системы и свои скидки;
  • возможность редактировать свою часть контента — это и новости, и акционные баннеры, и блоки главной страницы, и настройка видимости товаров в каталоге, лейблы в списке товаров и т. д. На сайте оказалось меньше регионально независимых разделов, чем настраиваемых каждым регионом под себя;
  • возможность просматривать только свои заказы и ни в коем случае не видеть заказы других регионов.

Заодно планировалось обновить дизайн сайта и сделать его более удобным для пользователей.

Дизайн

Основная фишка дизайна — в промоэкране. Мы использовали параллакс эффект для слайдера товаров. И приготовили его так, что заказчик легко может добавлять в блоке новые товары.
  • Виктория
    Дизайнер
    В промоблоке упаковки продуктов движутся в разные стороны, а объект на заднем плане размыт. Получается видимость объема. Чтобы его подчеркнуть, я использовала изображения, иллюстрирующие вкус продукта, к которым также применяется эффект параллакса. Например, для протеина с шоколадным вкусом на слайдер добавляются кусочки шоколада, для, а витамина D — изображения солнышка. Эффект параллакса также наследуется в других блоках.
Чтобы оптимизировать бюджет и сроки проекта, мы обычно разрабатываем прототипы только ключевых страниц. Этого чаще всего достаточно, так как на этапе агрегации требований мы детально прорабатываем структуру сайта и расписываем блоки для всех страниц.

Простые страницы мы рисуем сразу, без предварительного прототипирования. Это позволяет сэкономить пару недель времени разработки. Так для Fitness Formula мы разработали только пять прототипов ключевых страниц — главная, список товаров, карточка товара, корзина, оформление заказа. Но их было достаточно, чтобы проработать путь пользователя от перехода на сайт до покупки. При этом отрисовали порядка 30 макетов дизайна внутренних страниц.

Админ-панель

В качестве платформы для сайта заказчик рассматривал Битрикс. Но Битрикс не позволяет настроить доступ к заказам по регионам. То есть фильтрацию заказов по региону там настроить в принципе можно, но запретить региональным админам смотреть чужие заказы и чужих пользователей — нельзя. Поэтому сайт решили разрабатывать на Laravel 8, а в качестве админ-панели использовать серьезно доработанный Voyager.

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

  • Суперадмин. У него полный карт-бланш на управление админкой. Его изменения распространяются на все регионы. Суперадмин может редактировать товары: картинки, описание, состав.
  • Региональный админ. Может управлять контентом в рамках своего региона, менять цены и наличие по товарам, задавать лейблы — бестселлер, хит, новинка. Заказы и пользователи у каждого региона свои, без доступа к данным по другим регионам.
  • Дмитрий
    Разработчик
    В админке мы реализовали две роли: суперадминистратор и региональный администратор с доступом к управлению только своим регионом. Кроме бизнес-задач такое решение повышает устойчивость системы: если один регион что-то сломает, у остальных регионов все будет в порядке.

Интеграция с ERP

Сайт был готов. Протокол интеграции мы подготовили заранее. Теперь надо было подружить сайт со всеми региональными ERP-системами. 40+ интеграций — это очень дорого. Поэтому обмен было решено унифицировать.

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

Чтобы случился мэтч при выгрузке данных из ERP франчайзи — артикулы в базе данных у франчайзи должны совпадать с артикулами на сайте. Об этом должны позаботиться сами регионы. На сайте есть специальная страница с быстрым поиском по каталогу — товар можно найти по названию и сверить артикул.
лето сочи
Далее мы интегрировались сначала с одной ERP — 1С Владивостока. После того, как отладили все импорты с этой 1С, заказчик на своей стороне написал изменения, которые остальные регионы применили к своим 1С. Таким образом, остальные 1С смогли просто подключиться к сайту по согласованному протоколу. Без участия программиста на стороне сайта. На сегодня свои ERP по данному протоколу уже подключили Тамбов, Уфа и Москва — полет нормальный.
  • Дмитрий
    Разработчик
    Режима интеграции с ERP два: сайт может обмениваться с 1С пользователями, заказами и остатками периодически (например, раз в 5 минут), а может сразу после оформления заказа отправить его в 1С.
У большинства регионов используется интеграция с ERP. Но не у всех — поэтому интеграция также включается и выключается специальной галочкой в региональных настройках. Для тех, у кого нет ERP (таких регионов порядка десяти), всё управление товарами, остатками, заказами осуществляется на стороне сайта.
  • Полина
    Руководитель проекта
    Кстати, у каждого региона может быть подключена своя служба доставки и заключен свой договор с платежной системой. Чтобы подключить доставку и онлайн-оплату для региона — надо просто задать соответствующие ключи (из договора с доставкой или эквайрингом) в админ-панели.

Гибкая система лояльности

Так как логика работы системы лояльности по регионам разная — мы сделали ее настраиваемой. Регион может сам выбрать — система лояльности будет работать прямо на сайте или на стороне его 1С.
лето сочи
Система лояльности на сайте описывает скидки, бонусы и промокоды. Их можно редактировать в админ-панели. При этом они могут распространяться как на один регион, так и на все сразу.
лето сочи
Если у региона система лояльности в 1С, то при открытии пользователем любой страницы с товарами сайт сделает запрос в 1С текущего региона и получит в ответ либо скидку на товар, либо сумму бонусов, которые начисляются пользователю при покупке товара. Аналогично — в корзине и при оформлении заказа. Если пользователь введет промокод в корзине, этот промокод сначала будет искаться на сайте. Если в базе данных сайта его нет, он передается в 1С.

Что еще

  • Реализовали для сайта «умные» доставки. Когда пользователь выбирает дату — учитываются дни недели, режим работы магазина и время, в которое совершается заказ. По всем этим параметрам сайт рассчитывает ближайшую дату доставки, доступную для пользователя.
  • Многие франчайзи сами занимались поисковым продвижением своих старых сайтов. Чтобы сайты не потеряли позиции в поиске, мы аккуратно импортировали все мета-теги для каталога и прописали 301 редиректы со старых адресов страниц на новые. А региональным администратором дати возможность гибко редактировать метатеги разделов, которым они рулят.
  • Интегрировали с сайтом систему поиска Elasticsearch.
  • Добавили удобные фишки для постоянных клиентов. Во-первых, подписку на снижение цены товара. Во-вторых, подписку на информацию о поступлении товаров, которых нет в наличии. Если вы постоянно покупаете какие-то пищевые добавки или спортивное питание — можно подписаться на снижение цены и покупать его про запас, когда на товар появляются скидки.
высоцкий кансалтинг