Блоги

Навигационные полоски

Liferay 7.1 Commerce

Установка Liferay 7.1 CE Commerce

Скачать актуальную версию можно с сайта проекта: https://dev.liferay.com/web/commerce/downloads. Конечно сразу возникает вопрос - а почему данный модуль не доступен на Liferay Marketplace (и зачем тогда этот Marketplace вообще нужен?) - но не будем об этом.

Есть несколько вариантов установки - можно скачать готовый бандл, а можно скачать LPKG для деплоя на уже существующий сервер Liferay. Я выбрал второй вариант. В качестве основы я использовал последний Liferay 7.1 CE GA2 (не уверен, будет ли работать с "предпоследним" 7.1 CE GA1)/Скачал, положил в папку deploy, через несколько секунд получил сообщения в логах:

INFO  [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:261] Processing Liferay Commerce.lpkg
INFO  [fileinstall-/opt/liferay71dev/osgi/marketplace][LPKGArtifactInstaller:200] The portal instance needs to be restarted to complete the installation of /opt/liferay71dev/osgi/marketplace/Liferay CE Hypermedia REST APIs - API.lpkg
INFO  [fileinstall-/opt/liferay71dev/osgi/marketplace][LPKGArtifactInstaller:200] The portal instance needs to be restarted to complete the installation of /opt/liferay71dev/osgi/marketplace/Liferay CE Hypermedia REST APIs - Impl.lpkg
INFO  [fileinstall-/opt/liferay71dev/osgi/marketplace][LPKGArtifactInstaller:200] The portal instance needs to be restarted to complete the installation of /opt/liferay71dev/osgi/marketplace/Liferay CE Portal OData - API.lpkg
INFO  [fileinstall-/opt/liferay71dev/osgi/marketplace][LPKGArtifactInstaller:200] The portal instance needs to be restarted to complete the installation of /opt/liferay71dev/osgi/marketplace/Liferay CE Portal OData - Impl.lpkg
INFO  [fileinstall-/opt/liferay71dev/osgi/marketplace][LPKGArtifactInstaller:200] The portal instance needs to be restarted to complete the installation of /opt/liferay71dev/osgi/marketplace/Liferay Commerce - API.lpkg
INFO  [fileinstall-/opt/liferay71dev/osgi/marketplace][LPKGArtifactInstaller:200] The portal instance needs to be restarted to complete the installation of /opt/liferay71dev/osgi/marketplace/Liferay Commerce - Impl.lpkg

Вместе с непосредственно Commerce в пакете шли Hypermedia и OData (о них мы поговорим в следующих постах). И все требует рестарта - ок, делаем рестарт и рекомендованный документацией реиндекс всех данных (Control Panel -> Configuration -> Search -> Reindex all indexes).

Создание демо-сайта

Самый простой способ познакомится с функционалом - это создать демо-сайт с использованием "Акселератора". "Акселератор" - это такой специальный шаблон сайта, который делает все необходимое. Он доступен из меню создания нового сайта:

Документация обещает два акселератора - Breccia - обычный магазин, и Beril - демонстрирует B2B возможности. Но второй доступен только в платной версии.

При первой попытке я получил ошибку

ERROR [ajp-nio-127.0.0.1-9809-exec-119][BrecciaSiteInitializer:129] org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.OutOfMemoryError: Metaspace
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.OutOfMemoryError: Metaspace

Пришлось увеличить настройку -XX:MaxMetaspaceSize до 1024m (файл setenv.sh)

Как итог - мы получаем сайт с набором страниц, контента и предзаполненным каталогом.

Категоризация

На главной странице, кроме набора веб-контентов, самое интересное это портлет Commerce Category Navigation

Что интересно - данные категории - это те же самые Asset Categories, что мы использовали раньше и для другого контента. Commerce плагин просто расширил форму редактирование категорий так, что теперь можно указать много дополнительных данных (смотрите Categorization -> Categories -> выбрать словарь Commerce -> далее Edit на любой категории

Для категории можно задать "Category Display Page" - при клике на категорию пользователь будет переходить на страницу с "красивым" улром - например http://localhost/web/commerce-demo/g/binding-machines - где /g/binding-machines и есть "красивый" урл. Можно задать список продуктов, изображения (для категории, в частности для отображения в навигации по категориям, дополнительные свойства.

Работа с каталогом

При отображении товаров категории используется несколько портлетов. Это и "Category Content" и "Search Results" и "Option Facets" и другие.

Для отображения каталога активно используется функционал поиска (результаты  поиска и фасеты). На карточке товара доступна подробная информация:

Для товара можно задать разные варианты (например для одежды это может быть размер, цвет и пр). При выборе товара для покупки надо выбрать конкретные вариант. Есть функция сравнения товаров, отображение описания, спецификации (и многих других данных).

Редактирование каталога происходит через продуктовую панель - Commerce -> Catalog

По каждому продукту можно задать целую кучу самых разных данных и настроек - перечислять их тут просто нет смысла

Сравнение товаров, добавление товаров в корзину, оформление заказа, обработка заказов и так далее и так далее и так далее. Огромное количество настроек.... Похоже Liferay проделали гигантскую работу и выпустили достойный продукт (причем даже в бесплатной версии!)

Что отдельно радует - что максимально используется тот базовый функционал, который дает Liferay "из коробки" - категоризация, управление контентом страниц и шаблоны портлетов, поисковый движок и фасеты, бизнес-процессы согласования, customer segmentation, ролевая модель прав доступа... То есть, предложенное решение может гармонично вписаться и интегрироваться с другим функционалом Liferay!

27.11.2018