Интернет-магазин товаров для художников «Etudesite»

Посмотреть сайт

О заказчике

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

Цели и задачи проекта

Реализация интернет-магазина, соответствующего современным нормам в удобстве использовании пользователями и поддержки и развития разработчиками.

Выполненные работы

  • генерация виртуального каталога для оптимальной работы с его данными, с программной точки зрения. Решение по реализации было принято в связи с тем, что структура каталога задаётся на сайте посредством заполнения 5 инфоблоков, что исключало возможность оптимального (и быстрого) выбора данных для отображения на сайте. Виртуальный каталог строится по информации из исходных данных и хранится в одном инфоблоке, попутно содержит ряд предрасчётных данных (например, раздел сразу содержит информацию о количестве товаров в нём)
  • отдельный слой кеширования цен позволил значительно ускорить работу каталога в целом. Подобное решение стало возможным благодаря упрощённым требованиям к работе скидок на проекте (одна цена в каталоге, нет зависимости цен от групп, нет правил корзины, меняющих цены каталога). Цены в кеше обновляются с определённым периодом, либо если произошло изменение базовой цены. При этом обновление кеша происходит оптимально при обновление каталога из 1С - массово, не замедляя его в процессе
  • фильтрация совмещена с поиском и работает по всему каталогу
  • импорт номеров отслеживания посылок: Почта России, Boxberry
  • построение QR-кодов для оплаты через Сбербанк.Онлайн
  • возможность вставки виджетов отображающих информацию каталога (разделы, товары) на любую страницу (например, внутрь текста новости) с помощью макроподстановок. Благодаря универсальной реализации, с помощью минимальной коррекции конфигурации, имеется возможность подключить таким образом любой компонент удовлетворяющий определённому интерфейсу
  • модификация внешнего вида для выбора конечного способа оплаты после выбора метода оплаты онлайн (Paykeeper)
  • 3 вида корзины: к покупке, избранное, напомнить о поступлении (и отправка почтового уведомления, связанного с этой корзиной)
  • собственная система хранения баннеров с возможностью гибкой настройки цели отображения (выбор из заранее известных областей и\или указание отображения рядом с определёнными объектами - элемент или раздел инфоблока, например, раздел каталога)
  • автоматическая авторизация на сайте после перехода по ссылке заказа из писем
  • каталог товаров, в том числе по брендам
  • личный кабинет: авторизация, регистрация, восстановление пароля, профиль, заказы, карточка заказа
  • быстрый просмотр карточки товара из любого места, где отображаются списки товаров
  • корзина и оформление заказа
  • виджет подписки на рассылки, возможность подписаться в ходе завершения оформления заказа

Технические аспекты проекта

  • бизнес-объекты сайта описаны с помощью классов и позволяют работать с ними по заданному интерфейсу без необходимости «помнить» имена полей, как при «классическом» подходе с Битрикс
  • реализован уровень абстракции над выборками данных (read-only ORM), благодаря которому сохраняется привычная возможность выборки данных через полный аналог getList, но при этом:
    • возвращается список бизнес-объектов, а не ассоциативных массивов
    • данные всегда загружаются лениво и массово, за счёт чего количество запросов минимизируется
    • возможен прозрачный доступ к связанным объектам (например, у товара есть бренд - это тоже объект, у бренда есть изображение и т.п.) без потери производительности за счёт ленивой массовой загрузки
  • используется Docker для запуска сайта на локальных компьютерах разработчиков. Конфигурация приближена к конфигурации на продуктивном сайте (там Docker не используется)
  • Webpack для сборки фронтенд-кода и БЭМ-методология в верстке
  • реализована возможность размещать статические страницы стандартным для Битрикс путем, но при этом не захламляя веб-директорию. Заполнение производится в выделенную для этого директорию. В связи с тем, что на проекте используется модифицированная генерация Sitemap, коррекция, которая учла это, была минимальной
     

Итоги разработки проекта

  • В рамках проекта была проведена реализация и запуск в эксплуатацию полноценного интернет магазина с нестандартным каталогом, фильтром и рядом других особенностей
  • По скорости работы сайт перешёл из категории «очень медленно - медленно» в стабильное «быстро»
  • Намечено и запланировано активное расширение и развитие функций сайта (дополнительные виды представления списка товаров, интеграция с Instagram, отзывы, профили в личном кабинете и др.)

Похожие проекты