spartacussampledata 扩展为 Spartacus 创建了新的 WCMS 基础站点,这些站点与默认的电子产品、服装和电动工具站点共享相同的产品目录,但内容目录已专门针对 Spartacus 要求进行了修改。
如何下载您可以从 Spartacus Releases 页面下载 Spartacus Sample Data 扩展。
Spartacus 示例数据扩展随 Spartacus storefront 库一起版本化和发布。 您可以通过单击店面库最新版本的资产部分中的 spartacussampledata.zip 下载最新版本。
当然,以前的版本也可用。 例如,要下载 3.0.0-RC.1 版本的 Spartacus 示例数据扩展,您可以在此处访问 @spartacus/storefront@3.0.0-rc.1 库的资产部分。
下图展示了如何创建 Electronics-Spa 基础站点。 所有样品店的过程都是相似的。
The spartacussampledata extension does the following:
-
如果这些示例商店在您的 extensions.xml 中配置,则创建名为electronics-spa、wearing-spa 和 powertools-spa 的新基本站点。 有关详细信息,请参阅 resources/spartacussampledata/import/stores 文件夹中每个基本站点的 site.impex 文件。
-
创建一个新的 ContentCatalog 及其目录版本(暂存和在线)。 有关详细信息,请参阅 resources/spartacussampledata/import/contentCatalogs/ 文件夹中每个基本站点的 catalog.impex 文件。
-
创建一个 CatalogVersionSyncJob,可以将 [samplestore]ContentCatalog:staged 同步到 [samplestore]-spaContentCatalog:staged。 有关详细信息,请参阅 resources/spartacussampledata/import/contentCatalogs 文件夹中每个基本站点的 sync.impex 文件。
spartacussampledata 扩展包括 SpaSampleAddOnSampleDataImportService,它扩展了 DefaultAddonSampleDataImportService。 它覆盖默认的 importContentCatalog 函数,以便在系统初始化或系统更新期间,importContentCatalog 函数执行以下操作:
- creates a new catalog
- synchronizes [samplestore]ContentCatalog:Staged to [samplestore]-spaContentCatalog:Staged
- performs some cleaning
- imports the content catalog from impex
- synchronizes spaContentCatalog:staged to :online
- gives permission to the cmsmanager to do the synchronization
- imports email data
由于 [samplestore]ContentCatalog:Staged 与 [samplestore]-spaContentCatalog:Staged 同步,因此两个内容目录中的初始数据相同。 但是,为了使 Spartacus 更好地工作,-spa 版本包含不同的 CMS 数据。 对 [samplestore]-spaContentCatalog 进行了更改,这些更改将在以下部分进行描述。
Removing Unused Pages, Content Slots and CMS Components
Spartacus 不包含在 Accelerator 中找到的所有页面。 未使用的页面、内容槽和 CMS 组件将从 [samplestore]-spaContentCatalog 中删除。 您可以在资源/spartacussampledata/import/contentCatalogs/electronicsContentCatalog 文件夹中检查每个基本站点的cleaning.impex 文件以查看删除的内容。
Replacing the JspIncludeComponent with the CMSFlexComponent
JspIncludeComponent 允许您在提供随后被插入的 JSP 文件的路径时包含 JSP 代码。 在基于 Spartacus Angular 的应用程序中使用这种类型的组件是没有意义的。 一种名为 CMSFlexComponent 的新型组件已添加到 SAP Commerce Cloud 1905,它允许您获取选择器,并且还在内容槽中包含我们库中的代码。
注意:为了向后兼容,Spartacus 支持 JspIncludeComponent。
Adding Data into the CmsSiteContext Enum
CmsSiteContext 枚举是在 SAP Commerce Cloud 1905 中创建的。它是一个包含可用站点上下文的动态枚举。 Spartacus 有两个站点上下文:语言和货币。 以下是来自 resources/spartacussampledata/import/contentCatalogs/electronicsContentCatalog/catalog.impex 的示例:
INSERT_UPDATE CmsSiteContext;code[unique=true];name[lang=$language] ;LANGUAGE;"language" ;CURRENCY;"currency"
Adding a SiteContext Slot with New Components to Each Template
Spartacus 中每个模板的标题中都添加了一个新的 SiteContext 槽,并且在此 SiteContext 槽中添加了两个新组件 LanguageComponent 和 CurrencyComponent。 以下是来自 resources/spartacussampledata/import/contentCatalogs/electronicsContentCatalog/cms-responsive-content.impex 的示例:
INSERT_UPDATE CMSSiteContextComponent;$contentCV[unique=true];uid[unique=true];name;context(code);&componentRef ;;LanguageComponent;Site Languages;LANGUAGE;LanguageComponent ;;CurrencyComponent;Site Currencies;CURRENCY;CurrencyComponent INSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active;cmsComponents(uid,$contentCV) ;;SiteContextSlot;Site Context Slot;true;LanguageComponent,CurrencyComponent