集成框架提供了以下机制和组件:
这意味着:
电子商务框架可与以下对象一起使用:
电子商务集成框架是AEM Add-On。
您的销售代表可以根据相应的引擎提供完整的详细信息。
该框架为您自己的项目提供了基本要求。
总是需要一定量的开发工作来调整框架,使其符合您的规范。
标准AEM安装包括通用AEM(JCR)电子商务实施。
它当前用于演示目的,或根据您的要求作为自定义实施的基本基础。
为了优化操作,AEM和电子商务引擎都集中在自己的专业领域。 信息在两者之间实时传输;例如:
AEM can:
请求:
提供:
电子商务引擎可以:
提供:
进程:
具体详细信息取决于电子商务引擎和项目实施。
提供了许多现成的AEM组件以使用集成层。 目前包括:
还提供各种搜索选项。
集成框架提供API、用于说明功能的一系列组件以及提供连接方法示例的几个扩展:
该框架允许您访问以下功能:
AEM eCommerce is implemented with an eCommerce engine:
标准AEM安装包括通用AEM(JCR)电子商务实施。
它当前用于演示目的,或根据您的要求作为自定义实施的基本基础。
AEM eCommerce implemented in AEM using generic development based on JCR is:
标准AEM安装包含通用eCommerce实现的基础知识。
将数据从商务引擎导入AEM eCommerce站点时,将使用商务提供程序为导入程序提供数据。 一个商务提供商可以支持多个导入器。
商务提供商是AEM代码,自定义为:
AEM目前提供两个商务提供商示例:
尽管通常,项目需要开发其自己的、自定义的、特定于其PIM和产品数据模式的商务提供商。
geometrixx导入器使用CSV文件;在模式实现的上方的注释中,提供了接受的客户(允许自定义属性)的描述。
ProductServicesManager维护(通过OSGi)ProductImporter和CatalogBlueprintImporter接口的实现列表。 这些属性列在导入程序向导的导入程序/商务提供程序下拉字段中(使用commerceProvider
属性作为名称)。
当特定的导入程序/商务提供程序可从下拉菜单中访问时,必须在以下任一位置定义它需要的任何补充数据(取决于导入程序类型):
/apps/commerce/gui/content/catalogs/importblueprintswizard/importers
/apps/commerce/gui/content/products/importproductswizard/importers
相应importers
文件夹下的文件夹必须与导入程序名称匹配;例如:
.../importproductswizard/importers/geometrixx/.content.xml
源导入文件的格式由导入程序定义。 或者,导入程序可以建立到商务引擎的连接(如WebDAV或http)。
集成系统满足以下角色以维护数据:
产品信息管理(PIM)维护者:
负责维护的作者/营销经理:
Surfer / Shopper who:
尽管实际位置取决于您的实施;例如,generic或with an eCommerce engine:
如果可以区分以下两个类别,则这允许您用有意义的结构(cq:Page
节点的树)明确URL,因此非常接近经典AEM内容管理:
结构性类别
定义什么是产品的类别树;例如:
/products/mens/shoes/sneakers
营 销类别
所有其他类别a 产品可以属于;例如:
/special-offers/christmas/shoes
)
要描述和管理您的产品,您需要保留一系列相关信息。
产品数据可以是:
maintained directly in AEM(generic)。
maintained in eCommerce engine and made available in AEM.
根据数据类型,它根据需要为synchronized,或直接访问;例如,在每个页面请求中从ecommerce引擎检索产品价格等高波动性和关键数据,以确保它们始终处于最新状态。
无论哪种情况,在将产品数据输入/导入AEM后,都可以从产品控制台中查看。 此处是产品的卡和列表视图,显示以下信息:
对于相应的产品,还可以保留有关变体的信息。 例如,对于可用颜色不同的服装,它们以变体形式保留:
每个产品的各个属性可能取决于所使用的电子商务引擎和AEM实施。 在查看产品页面和/或编辑产品信息时,这些选项(视情况而定)可用,可包括:
图像
产品的图像。
标题
产品名称。
描述
产品的文本描述。
标记
用于对相关产品进行分组的标记。
默认资产类别
资产的默认类别。
ERP 数据
企业资源规划(ERP)信息。
SKU
库存单位(SKU)信息。
颜色
大小
价格
产品的单价。
摘要
产品功能的摘要。
功能
产品功能的更完整详细信息。
可以为单个产品保留一系列资产。 通常包括图像和视频。
A catalog groups product data together for both ease of management and representation to the shopper. 通常,目录根据语言、地理区域、品牌、季节、爱好、体育等属性进行结构化。
AEM支持多种语言的产品内容。 在请求数据时,集成框架从当前树中检索语言(例如,/content/geometrixx-outdoors/en_US
下的页面的en_US
)。
对于多语言商店,可以单独导入每个语言树的目录(或通过MSM复制目录)。
与语言一样,大型跨国公司需要满足多个品牌的需求。
标记还可以用于将产品组合到目录中。 这些目录可用于更动态的目录,如季节性优惠。
根据您的实施,您可以将基本目录所需的产品数据从以下位置导入AEM::
产品数据的进一步变化将不可避免:
初次导入后,对产品数据的更改是不可避免的。
使用电子商务引擎时,产品数据会保留在此处,并且需要在AEM中可用。 进行更新时,需要同步此产品数据。
这取决于数据类型:
除此之外,您还可以为快速更新选择特定更新。
从商务引擎中检索每个页面请求的高度易变性数据(如价格信息),以确保其始终处于最新状态。
从电子商务引擎(PIM)导入包含大量产品(通常超过100,000个)的大型目录可能会因节点数过多而影响系统。 如果产品具有关联的资产(如产品图像),则还可以减慢创作实例的速度。 这是由于这些资产的后处理需要占用大量CPU和内存。
您可以选择各种策略来解决这些问题:
如果JCR节点有许多直接子节点(如1000个及以上),则需要存储段(幻像文件夹)以确保性能不受影响。 导入时根据算法生成这些值。
这些存储段采用引入到目录结构的幻像文件夹的形式,但可以进行配置,使其在公共URL中不明显。
此方案涉及设置两个作者实例:
主控作者实例
从PIM导入产品数据,在其上禁用资产路径的后处理。
专用DAM作者实例
从PIM导入和后处理产品资产,然后将这些资产复制回主控的作者实例以供使用。
对于产品不包含要导入的资产(图像)的情况,您可以导入产品数据,而不会受资产后期处理的影响。
必须考虑AEM eCommerce实施的性能测试:
作者环境:
背景(如导入)活动可以与普通用户活动(如页面编辑)同时发生,即使前端性能(通常)被赋予更高的优先级,在线作者看到的不良性能也会导致阻碍实时决策的沮丧。
出版环境:
复制是确保快速、可靠地发布内容的关键过程。 这可能受作者如何对要发布的内容进行分组的影响。
前端:
前端和缓存失效的混合可能导致性能意外。 测试有助于避免这些问题。
请注意,此性能测试需要您目标的知识和分析:
内容卷
用户活动:
后台进程
维护要求(备份、Tar PM优化、数据存储垃圾收集等)
对于所有实施,可以记住以下几点:
由于产品、库存单位和类别可以很多,请尝试使用最少的节点数来模拟内容。
您拥有的节点越多,您的内容就越灵活(例如parsys)。 但是,一切都是权衡,在处理(例如)30K产品时,您是否需要个别的灵活性(默认情况)?
尽可能避免重复(请参阅本地化),或者当您这样做时,请考虑您的重复将导致的节点数。
尝试尽可能多地标记您的内容,以准备查询优化。
例如:
/content/products/france/fr/shoe/reebok/pump/46 SKU
每个内容级别(即国家/地区、语言、类别、品牌、产品)应有一个标签。 搜索
//element(*,my:Sku)[@country=’france’ and @language=’fr’
和
@category=’shoe’ and @brand=’reebok’ and @product=’pump’]
比寻找要快得多
/jcr:root/content/france/fr/shoe/reebok/pump/element(*,my:Sku)
在您的技术堆栈中,规划非常分工的内容访问模型和服务。 这是一般的最佳实践,但更重要的是,在优化阶段,您可以为读取频繁的数据添加应用程序缓存(并且您不想用它填充捆绑缓存)。
例如,属性管理经常是缓存的一个好候选项,因为它涉及通过产品导入更新的数据。
考虑使用代理页。
Catalog sections provide you with, for example:
产品页面提供有关各个产品的全面信息。 还反映了动态更新;例如,在eCommerce引擎上注册的价格更改。
产品页是使用Product组件的AEM页;例如,在Commerce Product模板中:
产品组件提供:
此信息允许购物者在将项目添加到其购物篮时选择以下内容:
这些是AEM页面,主要提供静态信息;例如,包含指向基础产品页面的链接的简介和概述。
可以将Product组件添加到具有父页面的任何页面,该页面提供所需的元数据(即到cartPage
和cartObject
的路径)。 在演示站点中,Geometrixx Outdoors由UserInfo.jsp
提供。
Product组件也可以根据您的个人要求进行自定义。
代理页面用于简化存储库的结构并优化大型目录的存储。
创建目录将使每个产品使用十个节点,因为它为每个产品提供可在AEM中更新和自定义的单独组件。 如果您的目录包含数百甚至数千个产品,则此大量节点可能会成为问题。 要避免任何问题,您可以使用代理页面创建目录。
代理页使用双节点结构(cq:Page
和jcr:content
),它不包含任何实际的产品内容。 在请求时,通过引用产品数据和模板页面生成内容。
然而,这是一种取舍。 您将无法在AEM中自定义您的产品信息,将使用标准模板(为您的站点定义)。
如果导入没有代理页的大型目录,则不会遇到任何问题。
您可以随时从一种方法转换为另一种方法。 您还可以转换目录的子部分。
Vouchers are a tried and tested method of offering discounts to either attract shoppers into making a purchase and/or rewarding customer's loyalty.
Vouchers supply:
外部商务引擎还可以提供凭证。
在AEM中:
A voucher is a page-based component that is created / edited with the Websites console.
凭证组件提供:
凭证没有其自己的开/关日期/时间,但使用其父活动的凭证。
AEM使用术语Voucher,这与术语Coupon同义。
Promotions,连同vouchers, allow you to realize scenarios such as:
促销通常不由产品信息经理维护,而是由营销经理维护:
促销是使用网站控制台创建/编辑的基于页面的组件。 "
促销供应:
您可以将促销活动连接到活动以定义其开/关日期/时间。
您可以将促销活动与体验关联,以定义其区段。
未连接到体验的促销将不会自行触发,但仍可由Voucher触发。
升级组件包含:
在AEM中,促销还集成到活动管理中:
促销活动可以在体验中进行,也可以直接在活动中进行:
如果促销在体验中持有,则可自动将其应用于受众区段。
例如,在geometrixx-outdoors示例站点中,升级:
/content/campaigns/geometrixx-outdoors/big-spender/ordervalueover100/free-shipping
is in an experience, and so fires automatically when the segment(ordervalueover100
)resolves.
如果促销未在体验中显示(仅在活动中),则无法自动将其应用于受众。 但是,如果Shopper enters a voucher into their cart and that voucher references the promotion,则仍可触发它。
例如,促销:
/content/campaigns/geometrixx-outdoors/article/10-bucks-off
is outside and so never fires automatically(ie:基于分段)。 但是,它被引用了,该凭证可在文章活动内的几个体验中找到。 将这些凭单代码输入购物车将导致升级触发。
hybris promotion 和hybris voucherscover everythings that implements the shopping cart and is related to pricing.Promotion specific marketing content(such as banners, etc)is not part of the hybris promotion.
当购物者注册时,帐户详细信息需要在AEM和eCommerce引擎之间同步。 敏感数据是独立保存的,但用户档案是共享的:
具体机制取决于情景:
这两个系统中都存在用户帐户:
用户帐户仅在AEM中存在:
用户帐户仅存在于电子商务引擎中:
使用电子商务引擎时,AEM仅存储帐户ID和密码(可选为用户组)。 所有其他信息都存储在电子商务引擎中。
使用电子商务引擎时,您需要确保为登录AEM实例的用户创建的帐户被复制(例如,通过工作流)到与该引擎通信的任何其他AEM实例。
否则,这些其他AEM实例还将尝试为引擎中的相同用户创建帐户。 这些操作将失败,引擎中出现DuplicateUidException
。
购物者必须注册才能访问购物车。 这需要注册(创建帐户),以便创建客户特定的帐户。
还支持匿名购物车和结帐。
注册后,购物者可以使用其帐户登录,以便跟踪其活动并完成其订单。
提供单点登录(SSO),这样作者在AEM和电子商务系统中都是已知的,无需登录两次。
来自电子商务引擎的事务数据与有关购物者的个人信息相结合。 AEM将部分数据用作用户档案数据。 AEM中表单的操作会将信息写回电子商务引擎。
有一个页面,允许您轻松管理帐户信息。 您可以通过单击geometrixx页面顶部的我的帐户或导航到/content/geometrixx-outdoors/en/user/account.html
来访问它。
您的站点需要存储一系列地址;包括投放、帐单和替代地址。 这可以基于默认地址格式使用表单实现,也可以使用AEM提供的通讯簿组件。
此通讯簿组件允许您:
您可以选择默认的地址。
可通过单击通讯簿或导航到/content/geometrixx-outdoors/en/user/account/address-book.html
,从我的帐户页面访问通讯簿组件。
您可以单击添加新地址……在通讯簿中添加新地址。 它打开一个可填写的表单,然后单击添加地址。
您可以在通讯簿中输入多个地址。
The Address Book is used when you checkout your cart:
地址会保留在user_home/profile/addresses
下。
例如,对于Alison Parker,它位于/home/users/geometrixx/aparker@geometrixx.info/用户档案/addresses下
您可以选择您希望使用的默认地址,此信息将保留在购物者的用户档案中,而不是包含地址。 用户档案属性address.default
设置为选定地址的值路径。
电子商务引擎使用上下文(实质上是购物者信息)来确定其所持的价格,然后将正确的信息提供回AEM。
当购物时,购物者将浏览产品页面并选择项目以将它们放入其购物车中。 当他们继续结帐时,可以下订单。
匿名客户可以:
在结帐之前,可能需要执行实例地址信息或客户注册的配置操作。
注册客户可以:
购物车提供:
所选项目概述
指向所选项目的产品页面的链接
能够:
购物车根据所使用的引擎进行保存:
无论哪种情况,项目都会停留在购物车中(并且可以恢复),而不是登录/注销(但只是在同一台机器/浏览器上)。 例如:
浏览为anonymous
并将产品添加到购物车
以Allison Parker
身份登录——她的购物车为空
将产品添加到她的购物车
注销——购物车将显示anonymous
的产品
以Allison Parker
身份再次登录——恢复其产品
匿名购物车只能在同一台机器/浏览器上还原。
不建议使用admin
帐户测试恢复购物车内容,因为这可能与eCommerce engine(例如hybris)的admin
帐户发生冲突。
hybris can be configured to remove pending carts after a defined period of time.
在结帐前,价格更改会在发生时反映(在两个系统中)。
根据您的订单实施信息在电子商务引擎或AEM中保留,此信息由AEM提供。
存储了各种信息,其中可以包括:
订单 ID
订单的参考编号。
订购时间
下订单的日期。
状态
订单的状态;例如,“已发运”。
货币
订单的货币。
内容项
订购的列表项。
小计
订购物料的总成本。
税费
订单上应付的税金额。
运费
运费。
总计
订单的总价值;订购的物品、税和垃圾。
帐单地址
发票应发送的地址。
付款标记
付款方式。
付款状态
付款的状态。
配送地址
货物应装运到的地址。
配送方式
运输方式;例如,陆地、海洋或空气。
跟踪号
发运公司使用的任何跟踪编号。
跟踪链接
用于跟踪发运订单的链接。
创建顺序向导中使用的字段取决于是否存在为位置定义的触屏优化基架。 在通用示例中,可以在以下位置找到该示例:
/etc/scaffolding/geometrixx-outdoors/order/jcr:content/cq:dialog
在AEM中保留订单时,订单控制台会为每个订单显示以下内容:
下订单后,购物者通常返回:
在收到订单投放后,购物者可能还希望视图一段时间内完成的订单的历史记录。
订单履行和跟踪通常由电子商务引擎管理。 信息可由AEM使用订单历史记录组件显示,该组件显示所有相关详细信息,包括已应用的凭证和促销。 例如:
结帐是使用标准AEM表单实现的。 这使营销经理能够自定义营销内容的体验。
然后,电子商务使用AEM表单的输入管理结帐过程。
付款详细信息(包括信用卡信息)通常由电子商务引擎管理。 AEM将此类交易信息转发给引擎(从此处转发给付款处理服务)。
可实现支付卡行业(PCI)合规性。
订单在屏幕上确认,可以使用订单跟踪进行跟踪。
由于AEM将标准页面用于产品,因此您可以使用标准搜索组件创建搜索页面。
如果您需要更彻底的实施,您可以:
CommerceService
中实施搜索方法,然后在搜索页面上使用eCommerce搜索组件。使用电子商务引擎时,电子商务搜索API可以在电子商务引擎解决方案中完全实现,因此您可以使用现成提供的电子商务搜索组件。 多面搜索允许您搜索JCR和/或引擎: