У меня есть вопрос о том, как мы можем импортировать/синхронизировать продукты из нашего бэк-офиса на передний конец CQ5.Импорт продукта в Adobe CQ5
Архитектура быть довольно простой - пользовательский бэк-офис, управляющий всеми продуктами (в основном это будет источник истины). Веб-сайт, основанный на CQ5, чтобы показывать результаты поиска (управляемые Adobe SearchAndPromote) и сведения о продукте. Операции покупки будут обрабатываться вне CQ5.
Я прошел через http://dev.day.com/docs/en/cq/current/ecommerce/eCommerce-framework.html, и у меня есть идея, в каком направлении мы должны двигаться, но я хотел бы, чтобы кто-то подтвердил, что мое понимание верное.
1) Мне нужно создать запланированное задание, запущенное на узле автора, который будет обращаться в бэк-офис и импортировать продукты в виде json-фида. Я использую аннотацию, основанную на @Service (Runnable.class). Есть ли способ установить ее так, чтобы она зависела только от узла Author?
2) Создайте собственное обслуживание (называемое моим сервисом выше), которое фактически создаст все узлы в crx. Если у меня есть настольные и мобильные версии сайта, мне нужно создать все эти два раза два раза? Есть ли советы по более простому их созданию?
3) Пусть CQ5 реплицирует эти продукты для публикации узлов.
Есть ли более простой способ? Я имею в виду, если бы я использовал более стандартное веб-приложение, у меня был бы один контроллер, чтобы показывать информацию о продукте, два шаблона (один для мобильного телефона, один для рабочего стола) и службу, которая будет обращаться в бэк-офис и возвращать данные для запрашиваемого продукта. Но мир Слинг очень отличается, и я хочу проверить, правильно ли я его понимаю.
Cheers.
Hi Max, Благодарим за ответ. Могу ли я просто прояснить пару вещей? В настоящее время я пишу сценарий, в котором я импортирую продукты и сохраняю их как cq: Pages, которые отлично работают, за исключением двух вещей, которые мне не нравятся - я должен сделать копию каждого продукта для каждого сайта; Контент кажется слишком связанным с представлением. Так что, если я НЕ использовал cq: Page, как еще я мог бы сопоставлять URL-адреса (сохраняя их дружественными к SEO) к моему контенту, принимая во внимание, что CQ очень ориентирован на данные. – Kostya
Привет, Костя, если у вас есть продукт 1to1 → отношение к странице, я останусь с ним. Вместо того, чтобы делать копии данных о продуктах в рамках процесса импорта, вы можете использовать механизм развертывания http://bit.ly/XXhUiL, предложенный Adobe. Если вы хотите разделить контент и просмотр, вы можете использовать какое-то соглашение об именах. Скажем, page /content/yourapp/catalogue/product1.html будет искать узел/var/import/products/product1. Также вы можете заполнить страницы ссылкой на импортированный узел. Таким образом, страница будет содержать свойство, которое укажет на узел/var/import/products/product1. –