用 SmartEdit 打开 SAP Commerce Cloud Storefront 时动态在 body 标签注入的 css class

发布时间 2023-06-19 21:49:25作者: JerryWang_汪子熙

当我们使用 SAP SmartEdit 打开 SAP Commerce Cloud Storefront 时,在商户网站中,还必须在body标签中作为CSS类名包含以下唯一标识符:

  • smartedit-page-uid-:指定指定目录和目录版本的唯一页面标识符。这是为了支持旧版实现而必需的。
  • smartedit-page-uuid-:指定页面的全局唯一标识符(UUID)。通常情况下,它是页面的复合主键的序列化表示(在默认的CMS实现中,复合主键包含目录版本信息)。
  • smartedit-catalog-version-uuid-:指定目录版本的UUID。通常情况下,它是目录版本的复合主键的序列化表示。

当我们使用 CMS API 时,cmsfacades extension 里的 UniqueItemIdentifierService 会对上述提到的 uuid 进行读写操作。

下面是 body 标签里 css class 的一个例子:

<body class="smartedit-page-uid-mypageuid smartedit-page-uuid-mypageuuid smartedit-catalog-version-uuid-mycatalogversionuuid">

下面是 Commerce Cloud 2205 SmartEdit + Spartacus 5.2 Storefront 的例子:

CMS Item API 是一个支持对 CMS 项或 CMS 项子类型进行 CRUD 操作的 REST 端点。使用此 API,您可以搜索、检索、创建和修改 CMS 项子类型,如 CMS 页面和 CMS 组件。

概述:
CMS Item API 是一个通用的 API,通过转换和填充策略,可以通过检查项的属性,将 CMS 项序列化和反序列化为其 JSON/XML 等效项。要执行 CRUD 操作,您需要一个生成的全局唯一标识符(UUID)。例如,要更新 CMS 项,您必须提供 UUID,以便 CMS Item API 可以唯一标识该项。

CMS 项搜索功能允许您按照掩码、typeCode、catalogId、catalogVersion 或任何其他属性搜索 CMS 项。

全局唯一标识符(UUID)是一个编码的组合键,表示 CMS 项在其内容目录版本中的标识。当 itemId 本身不足以唯一标识 CMS 项时,UUID 被用作组合键。UUID 和其他属性,如目录和目录版本,用于唯一标识 CMS 项。

以下代码摘录显示了 UUID 的示例(在 componentUuid 字段中)。该值是一个包含三个属性的对象的 Base 64 表示,这三个属性是 catalogId、catalogVersion 和 itemId。

{
    "componentId" : "MultiCountryCMShomepageEUWelcomText",
    "componentUuid" : "eyJpdGVtSWQiOiJNdWx0aUNvdW50cnlDTVNob21lcGFnZUVVV2VsY29tVGV4dCIsImNhdGFsb2dJZCI6ImVsZWN0cm9uaWNzLWV1Q29udGVudENhdGFsb2ciLCJjYXRhbG9nVmVyc2lvbiI6Ik9ubGluZSJ9",
    "pageId" : "homepage-de",
    "position" : 0,
    "slotId" : "Section1Slot-homepage-de"
}

上图 componentUuid decode 后的结果: