Мульти-доменный интернет-магазин кальянной продукции с бонусной системой для покупателей и интеграцией c сервисами PartScanner, МойСклад и Bitrix24.
Посмотреть сайт
Перед нашей командой стала задача разработать интернет-магазин кальянов и аксессуаров для продажи, разрешенной законодательством продукции, как для розницы так и для оптовых клиентов. SMOKING SHOP это большая федеральная сеть магазинов по России, с большим числом торговых точек и огромным ассортиментом. Необходимо было системно подойти к решению этой задачи.
Для удобства пользователей должна была быть настроена фильтрация по типу товара и сортировка по бренду. Функционал корзины должен позволять быстро оформлять заказ и передавать все необходимые данные, функционал личного кабинета для просмотра истории заказов. Большая работа должна была быть в административной части сайта для менеджеров торговых точек, они должны видеть свои заказы, печатать документы, управлять торговыми точками, заказами, клиентами, а главное должна быть возможность загружать прайс-листы с остатками товаров.
Проект предполагал интеграцию с сервисами Мой Склад и Bitrix24, это требует определенных подходов в реализации, например фоновое выполнение процессов, а для загрузки прайс-листов потребовалось использовать отдельный сервис, так как работа с прайс-листами очень ресурсоемкая операция.
Для получения постоянного потока покупателей и оптимизации рабочих процессов, мы предложили владельцам бизнеса создание современного виртуального магазина под ключ с индивидуальным дизайном. Для начала провели сбор требований, спроектировали сценарии использования, выставили контрольные точки и преступили к разработке. По завершению работ был предоставлен тестовый вариант сайта для ознакомления, произвели корректировки, наполнили финальным контентом и опубликовали проект на рабочем сервере. Для поддержки проекта выбрали оптимальный тариф обслуживания.
Как и любой другой проект мы начинаем с анализа требований. Техническое задание - это документ с требованиями к будущему функционалу для клиента, здесь перечислены цели проекта, прототипы интерфейса, функциональные бизнес требования понятные клиенту. По данному документу клиент будет проверять и подтверждать выполненные работы. На данном этапе предоставляется грубая оценка и примерный срок работ. Веха на данном этапе - согласование ТЗ, предоплата. После согласования всех работ менеджер проекта передал ТЗ в отдел разработки.
К созданию макетов приступил дизайнер, одна из важных задач хорошего дизайна не только учет фирменного стиля компании, но и создание макетов хорошо подходящих под верстку. Интерфейсы рисовались на основе прототипов обговоренных в ТЗ, на данном этапе происходило формирования финальных элементов графики.
Пока рисовался дизайн, мы стали прорабатывать функциональные блоки сайта. Для этого мы устроили мозговой штурм в замечательном инструменте miro и произвели сбор системных требований. Системные требования - это варианты использования функционала с прямыми и альтернативными сценариями. Необходимо перечислить все требуемые функции с кратким описанием. Мы требования оформляли в виде стикеров. После того как все требования были сформированы, мы дали точные оценки, в некоторых случаях мы использовали Planning Poker.
Далее мы перешли к созданию модели предметной области. Основная задача на этом этапе сформировать однозначный терминологический словарь для предметной области. В модель предметной области нельзя помещать название экранов пользовательского интерфейса или другие классы, относящиеся к пользовательскому интерфейсу.
И наконец мы приступили к последнему этапу проектирования - это проработка вариантов использования с описанием бизнес-процессов. Это помогло выявить сложные процессы и их зависимости.
Специалист по фронтенду взял в работу верстку страниц на основе созданных макетов, на данном этапе клиент смог увидеть промежуточный результат на тестовом стенде. Для верстки и виджетов мы использовали css фреймворк Bootstrap 4.0 и javascript библиотеку jQuery.
Бэкенд разработчик произвел интеграцию верстки с нашей системой Diamond CMS, данная система использует Onion архитектуру написанную на php7.2 с применением библиотек Symfony. Слоенная архитектура имеет замечательные преимущества по тестированию и масштабированию по сравнению с фреймворко-зависимыми системами, так как каждый слой выполняет свою задачу:
Domain Layer - Доменный слой, ядро нашей системы. Диаграмма доменной модели сформированной на этапе проектирование является основной для создания Entities (Сущностей), Domain Services (Доменных сервисов), Domain Interfaces (Контракты для взаимодействия с внешним миром).
Application Layer - Слой приложения содержащий Use Cases (варианты использования) приложения, бизнес логика строится на основе бизнес-процессов выявленных также на этапе проектирования.
Presentation Layer - Уровень предназначенный для взаимодействия с пользователями сайта, это реализация контроллеров, хелперов, шаблонов и представлений. Основной строительный элемент на данном уровне это - Module (Модуль). Любую страницу можно представить в виде набора модулей, - меню сайта, карточка товара или слайдер на главной. Основное преимущество это переиспользование в любой части сайта или даже в других проектах.
Infrastructure Layer - Инфраструктурный уровень, это уровень взаимодействия с внешним миром, с другим сервисами, с базой данных. На данном уровне мы реализовали контракты доменной модели в виде Repositories, Adapters. На этом уровне как правило активно используется инструменты фреймворка, сторонних библиотек таких как moysklad-sdk и bitrix24-php-sdk.
Одной из сложных задач был функционал механизма загрузки прайс-листов торговых точек с различных источников. Для этих целей был специально разработан сервис PartScanner.
Реализация функционала в административной части сайта не составила большого труда, справочники предоставляемые функционалом Diamond CMS могут отображать записи в табличном виде, фильтровать, сортировать, производить экспорт в xls,csv и выполнять другие действия.
Завершающий этап любой разработки - это тестирование функционала и по возможности автоматическое, в этом нам помог Bitbucket CI и его pipelines, и конечно же все помог настроить наш системный администратор.
Для старта сопровождения мы выбрали самый минимальный тарифный план Старт, в последующем при увеличении торговых точек перешли на тариф Оптимальный который позволил перенести сайт на отдельный виртуальный сервер с большим объемом диска и производительностью процессора.
Мы реализовали интернет-магазин кальянной продукции Smoking-Shop
,
предоставив возможность просматривать товары и оформлять заказы для последующего их получения
в магазине путем самовывоза как розничным так и оптовым покупателям.
Предоставили возможность синхронизировать остатки в автоматическом режиме путем интеграцией с
сервисом Мой Склад
и PartScanner.
Новые заказы были доступны в административной части сайта, а также уходили в Bitrix24 для оптовых заказов.
В этом проекте мы применили
современные подходы
и смогли одновременно показать уникальность и особенность дилерской сети, не
выходя за рамки общего фирменного стиля компании.
Евгений Романов
Генеральный директор
Являемся клиентом агентства "Студия 7" более 3-х лет. Результат полностью устраивает. Ребята всегда на связи и быстро отвечают. Любые наши просьбы по нововведениям на сайте — приветствуются и решаются быстро. На данный момент мы продолжаем сотрудничать с данным агентством, улучшаем с каждым днем наш сайт. Заявки каждый месяц масштабируются, сайт окупается - это очень радует. Ребята выполняют все в оговоренные сроки, задачи быстро решаются. Аудитория клиентов увеличилась в двое, даже не ожидали такого результата, стабильно в день около 10 заказов с сайта. Спасибо агентству "Студия 7"! Продолжаем развиваться и делать сайт лучше!)