我对如何从后台导入/同步产品到CQ5前端有疑问。
架构非常简单 - 定制后台管理所有产品(基本上它将成为事实的来源)。 CQ5驱动的网站显示搜索结果(由Adobe SearchAndPromote驱动)和产品详细信息。购买交易将在CQ5之外处理。
我经历了http://dev.day.com/docs/en/cq/current/ecommerce/eCommerce-framework.html,我想我们应该知道应该向哪个方向移动,但我希望有人确认我的理解是正确的。
1)我需要在Author节点上创建预定作业,该节点将调用后台并将产品导入为json feed。 我使用基于注释的@Service(Runnable.class) - 有没有办法设置它以便它只在Author节点上运行?
2)创建实际创建crx中所有节点的自定义服务(上面称为我的服务)。 如果我有网站的桌面版和移动版,我是否需要创建所有这些dones两次?是否有关于更简单的创建方法的提示?
3)让CQ5复制这些产品以发布节点。
有更简单的方法吗?我的意思是,如果我使用更多的标准网络应用程序,我会有一个控制器来显示产品详细信息,两个模板(一个用于移动设备,一个用于桌面)和一个服务,可以调用后台并返回所请求产品的详细信息。但是Sling世界是非常不同的,我想检查一下我是否理解它。
干杯。
答案 0 :(得分:1)
以下是一些答案:
1)这是一篇关于不同运行模式的不同配置的好文章:http://helpx.adobe.com/cq/kb/RunModeSetUp.html您可以为pub和auth运行模式创建配置,其中包含您的代码将查找的标志,该标志将指示是否执行import。 / p>
2)这取决于。 CQ倾向于拥有移动网站内容的副本,因此为移动网站创建节点副本可能是有意义的,但前提是这些节点是您根据导入的数据创建的页面(cq:Page和cq:PageContent)。否则,您只需要在某处保存导入的数据并在某个时刻获取它(通过JCR查询或类似.getNode()的方法)。在这种情况下,当然有意义的是不要复制数据。
3)这也取决于此。我会考虑你可能有以下的力量:导入的数据是否可以编辑?更新频率如何?更新有多大?酒吧之间的一致性有多重要?如果更新不是很大,不频繁和一致性问题导入auth,然后复制可以工作。如果您需要能够编辑导入的数据,也可能是这种情况。如果更新是大规模的和/或频繁的,并且酒吧之间的一致性并不重要(你可以承担一些人在导入期间可能会看到来自不同酒吧的不同结果)我建议在大量复制的同时在所有酒吧上运行导入导入的数据可能会影响常规的页面/图像复制。
谢谢, 最大