Заполните форму — и мы свяжемся с вами
Сложность интеграции PWA была в том, что интернет-магазин реализован на Magento 1, старой технологии, которая отягощает любые изменения. Несмотря на это, интеграция PWA позволила ускорить процесс разработки frontend-части, тестирование новых фич и гипотез. Так, если раньше нам приходилось тратить на реализацию функционала около двух недель, то с PWA мы стали укладываться за 4 дня.

Помимо работы с Magento 1 и PWA мы сделали свой Elasctic Indexer, т.к. в Magento 1 не входит в коробочный функционал.
Внедрение PWA
Progressive Web Apps — это мобильное приложение в браузере, не требующее дополнительной установки. Подробнее о PWA можно прочитать здесь.
Для хранения всей информации о товарах и поставщиках в единой базе с возможностью централизованного управления маркетинговой и технической информацией была реализована интеграция с Akeneo PIM. Помимо коробочного функционала Akeneo, мы также разработали новые кастомные модули специально для проекта.
Интеграция Akeneo PIM
В интернет-магазине Elkor один и тот же товар может продаваться разными поставщиками и по разным ценам. Для того, чтобы на сайте не образовывалось дубликаты товаров, которые бы вводили в заблуждение покупателей, было решено разработать дополнительный модуль «Поставщики».
Модуль «Поставщики»
Кроме этого, если один поставщик дал развернутое описание товара, а другой описание точно такого же товара дал не полное, то при объединение товара в единый на сайте будет отображено полное описание товара. Также описание товара, при нехватке информации, может дополняться характеристиками, которые дали разные поставщики.
Это работает так: в PIM-систему заводиться список товаров, которые берётся за основу. От каждого поставщика поступают предложения (товары), PIM-система соотносит атрибуты поступивших товаров с основными и если есть совпадение свыше 90%, то PIM объединит автоматически товары. Если процент совпадения менее 90, PIM предложит оператору объединить товары, предварительно проверив их вручную.
У каждого поставщика название или описание характеристик одного и того же товара может быть записано по-разному. С появлением новых предложений (товаров) количество атрибутов растёт и чтобы избежать возникновения дублей атрибутов мы сделали механизм объединения атрибутов. Логика работы схожа с обработкой предложений от поставщиков.
Модуль сопоставления и объединения атрибутов
Также, если в основной базе данных PIM-системы присутствуют два одинаковых атрибута, то оператор может из них выбрать единый основной, при это все связи с товарами сохраняться.
Изначально в PIM-систему заливается список атрибутов, которые берутся за основные. Чтобы не было дубликатов атрибутов мы разработали модуль их сопоставления. Первоначально оператор вручную обрабатывает входящий поток атрибутов и решает какие объединять в один. При следующей загрузке PIM уже сам автоматически это решает.
Изначально в Akeneo PIM ID товаров присваивается вручную. Дополнительно клиент хотел, чтобы у разных категорий товаров генерация SKU происходила по разных правилам.

Наши разработчики создали модуль для автоматической генерации уникального ID. Теперь при внесении товара в Akeneo PIM ему автоматически присваивается уникальный ID, учитывая правила категории. Так, если товар подходит под категорию «Одежда» у него будет своё правило генерации ID, а у товаров из категории «Бытовая техника» будет рассчитываться по другому правилу.
Модуль автоматической генерации ID товаров
Оплата заказов подарочной картой
Оплата товаров подарочной картой была возможна только в офлайновых магазинах. Нам нужно было сделать, чтобы этот функционал был доступен и в интернет-магазине, но только для Латвии. Разработка заняла много времени, но были учтены все требования заказчика по логике оплаты. Теперь при оформление заказа, покупатель может выбрать как способ оплаты подарочную карту или объединить все доступные способы оплаты с подарочной картой. Например, оплатить 50% подарочной картой, а другие 50% - банковской.
Верификация подарочной карты происходит в два этапа. Первый этап — модальное окно ввода номера подарочной карты для проверки существования данной карты. Второй этап — подтверждения по SMS для подтверждения личности покупателя. Картой можно оплачивать заказ до 300€, при этом оставшаяся сумма карты не будет "сгорать", а её можно будет использовать для оплаты при следующих покупках.
У Elkor'а много офлайн-точек продажи по всей Латвии, между которыми может осуществляться перевозка товаров из одного пункта самовывоза в другой. Клиент хотел, чтобы покупателей интернет-магазина уведомляли о дате доставки заказов из пункта самовывоза. Кроме этого, наши разработчики сделали возможным настройки правила расчёта времени на доставку из ближайшего пункта самовывоза по наличию в нём, которое отображается на сайте при оформлении товара. Также сделали доступным доставлять заказы из одного пункта самовывоза в другой, чтобы покупатели могли забрать из удобного для них пункта.
Работа с мультискладами
Для некоторых категорий товаров требовалась настройка уникальных правил продаж. Так, для товаров категории «Продукты» есть правило, что минимальная сумма заказа должн быть не менее 30€. Для скоропортящихся продуктов действует правило «доставка курьером», доставка из пункта выдачи заказов и пакоматы недоступны. Управление правилами продажи категорий товаров доступно в административной панели Magento.
Настройка правил продаж товаров
Раньше интеграция Miele с Elkor'ом была сделана через DAM-систему, но её было сложно поддерживать по причине её негибкости. Было принято решение перейти на другой сервис, чтобы сотрудники Miele могли загружать свои товары. Каталог Miele сделан через CMS-страницу, за которые отвечают сотрудники Miele, а наши разработчики сделали интеграцию с Elkor. Теперь готовые данные (информация о товарах, атрибуты, изображения и видео) загружаются из сервиса Loadbee и отображается в «Параметрах» в карточке товара на сайте Elkor. Данная интеграция доступна только для Латвии.
Интеграция с Miele