likes
comments
collection
share

SAP Commerce Cloud 里的 Site API 调用方式讲解

作者站长头像
站长
· 阅读数 20

Multiple Country Site Support 为管理包含多个内容目录并使用内容继承的站点提供原生支持。它可以重用从顶级父目录到较低级别的国家、地区和本地内容目录的组件和页面,以及无缝站点导航。

在多国家、多渠道或多品牌的背景下,多个网站需要跨不同的网站显示相同的页面和/或组件,但它们也可能希望显示特定于每个地区、渠道或品牌的内容。SmartEdit 支持通过使用共享的全局内容目录和多个区域性内容目录(根据需要覆盖特定的页面和/或组件),提供了实现真正内容继承的可能性。

Site API 用于显示有关 CMS站点的详细信息。

使用 Site API,开发人员可以为用户可访问的所有站点提取以下属性:

  • contentCatalogs: 与站点关联的内容目录(content catalog)名称的有序列表。列表按层次结构排序。在 multiple country部署的情况下,首先显示父内容目录,然后是其子内容目录,然后是子内容目录的子内容目录,依此类推。
  • name(本地化):基于接受或请求报头本地化的站点名称。
  • previewUrl:预览网站的URL地址。
  • uid:站点的唯一标识符。

该API只返回包含至少一个用户有权查看或编辑的目录版本的站点。

站点 API 公开 SiteFacade,以检索用户可访问的所有站点的站点信息。

public interface SiteFacade
{
   List<SiteData> getAllSiteData();
   List<SiteData> getSitesForCatalogs(final List<String> catalogIds);
}

DefaultSiteFacade.getAllSiteData 使用目录版本服务(Catalog Version Service)来提取可写和可读的内容目录版本,以便它只提供用户有阅读或编辑权限的站点。

DefaultSiteFacade.getSitesForCatalogs返回为指定的目录ID列表配置的所有站点,其中目录ID表示站点层次结构中的最低级别内容目录。

Site API 依赖于以下 DTO,定义在 cmsfacade-beans.xml 文件内:

<bean class="de.hybris.platform.cmsfacades.data.SiteData">
   <property name="uid" type="String" />
   <property name="previewUrl" type="String" />
   <property name="name" type="java.util.Map<String, String>" />
   <property name="thumbnailUrl" type="String" deprecated="Deprecated since 6.4, please use de.hybris.platform.cmsfacades.data.CatalogVersionData instead."/>
   <property name="contentCatalogs" type="java.util.List<String>" />

</bean>

总结

本文首先介绍了 SAP Commerce Cloud Multiple Country Site support 的概念,接着介绍了如何使用 Java API 的方式获取这些 Site 的明细数据。