如何在 SAP 电商云 Spartacus UI 中创建新的页面
Spartacus 中的頁(yè)面基于使用相關(guān) API 從 SAP Commerce 后端獲取的 CMS 頁(yè)面。來(lái)自 SAP Commerce 端的數(shù)據(jù)定義了元數(shù)據(jù),如 url、標(biāo)題等,以及頁(yè)面的結(jié)構(gòu)。結(jié)構(gòu)意味著可用的部分類型以及分配給這些部分的 CMS 組件。Spartacus 接收此信息并為該結(jié)構(gòu)提供真正的組件,包括邏輯、ui、響應(yīng)式設(shè)計(jì)、樣式等。
由于這種定義的方法,它需要 2 個(gè)步驟來(lái)創(chuàng)建新的 Spartacus 頁(yè)面。首先,需要在 SAP Commerce 端創(chuàng)建 CMS 頁(yè)面。其次,需要?jiǎng)?chuàng)建 Spartacus 端的組件并將其分配給 CMS 組件。
作為第一步,讓我們從 SAP Commerce 端定義開始。創(chuàng)建一個(gè)新的 CMS 頁(yè)面需要為不同類型的類型創(chuàng)建多個(gè)實(shí)例。讓我們先談?wù)勥@些類型。
模板:模板定義頁(yè)面的部分
- ContentPage:它是頁(yè)面本身。它包含諸如 url、應(yīng)使用哪個(gè)模板、標(biāo)題等值。url 以這種類型存儲(chǔ)在屬性“標(biāo)簽”上。
- ContentSlot:這是可以分配給 section 的類型,負(fù)責(zé)內(nèi)容本身。它自己沒有內(nèi)容,但可以將組件分配給插槽。該組件包含基于斯巴達(dá)克斯方分配的內(nèi)容。
- CMS 組件:標(biāo)準(zhǔn)商務(wù)系統(tǒng)中有多種 CMS 組件可用,也可以創(chuàng)建新類型。如果不需要特殊屬性,則可以使用通用 CMSFlexComponent 類型來(lái)創(chuàng)建組件實(shí)例。
- ContentSlotForPage:該類型只處理將 ContentSlot 實(shí)例分配給 ContentPage 實(shí)例的部分。部分由這種類型的“位置”屬性處理。
創(chuàng)建這些實(shí)例的 Impex 始終具有相同的結(jié)構(gòu),并且可以重復(fù)用于創(chuàng)建新的 CMS 頁(yè)面。只需根據(jù)您的需要修改內(nèi)容。它也可以在后臺(tái)手動(dòng)完成,但我建議使用 impex 并將其導(dǎo)入 HAC。只需登錄,轉(zhuǎn)到控制臺(tái)選項(xiàng)卡和 ImpEx 導(dǎo)入并粘貼修改后的 impex 內(nèi)容。Impex 如下所示:
$contentCatalog=electronics-spaContentCatalog $contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged] $siteResource=jar:de.hybris.platform.spartacussampledataaddon.constants.SpartacussampledataaddonConstants&/spartacussampledataaddon/import/contentCatalogs/electronicsContentCatalog###### Components and Pages ######INSERT_UPDATE CMSFlexComponent;$contentCV[unique=true];uid[unique=true];name;flexType ;;ZBestsellerComponent;ZBestsellerComponent;ZBestsellerComponent# Create the missing pages INSERT_UPDATE ContentPage;$contentCV[unique=true];uid[unique=true];name;masterTemplate(uid,$contentCV);label;defaultPage[default='true'];approvalStatus(code)[default='approved'];homepage[default='false'] ;;ZBestseller;Bestseller Page;ContentPage1Template;/ourbestsellerINSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active;cmsComponents(uid,$contentCV) ;;Section2A-ZBestseller;Section 2A Slot for Bestseller Page;true;ZBestsellerComponentINSERT_UPDATE ContentSlotForPage;$contentCV[unique=true];uid[unique=true];position[unique=true];page(uid,$contentCV)[unique=true];contentSlot(uid,$contentCV)[unique=true] ;;Section2A-ZBestseller;Section2A;ZBestseller;Section2A-ZBestseller#Language settings $language=en INSERT_UPDATE ContentPage;$contentCV[unique=true];uid[unique=true];title[lang=$language] ;;ZBestseller;Our Bestseller通過(guò)導(dǎo)入這些行,將創(chuàng)建所需的實(shí)例。導(dǎo)入后直接可以通過(guò)定義的url調(diào)用新站點(diǎn)。在本例中,它將是http://localhost:4200/ourbestseller。
如果已經(jīng)存在要重用的現(xiàn)有 CMS 組件,則可以刪除 CMSFlexComponent 的創(chuàng)建。但是需要將現(xiàn)有組件分配給 ContentSlot 而不是新的 CMS 組件。在此用例中,不需要本文的第二步。
第一步,創(chuàng)建所有必需的 CMS 實(shí)例,我們從 Commerce 端獲取具有結(jié)構(gòu)的頁(yè)面。在第二步中,我們定義 Spartacus 端的哪個(gè)組件是 CMS 組件的對(duì)應(yīng)部分。
這很簡(jiǎn)單,可以通過(guò)配置來(lái)完成。只需創(chuàng)建一個(gè)新組件并將此配置添加到模塊文件中即可。
ConfigModule.withConfig(<CmsConfig>{cmsComponents: {ZBestsellerComponent: {component: BestsellerComponent,},},}),‘ZBestsellerComponent’ 是 CMS 組件的 uid,‘BestsellerComponent’ 是 Angular 組件的類名。將此添加到配置后,組件的內(nèi)容將顯示在新創(chuàng)建的頁(yè)面上。
SAP 電商云中的目錄同步機(jī)制
我們知道在 Hybris 中,一個(gè)目錄可以有一個(gè)目錄版本(catalog version )列表。
產(chǎn)品目錄和內(nèi)容目錄主要有 2 個(gè)目錄版本
此目錄版本的作用類似于測(cè)試目錄版本,用于在進(jìn)入在線目錄版本之前定義目錄并對(duì)其進(jìn)行驗(yàn)證
這個(gè)目錄版本是用來(lái)在店面展示的。
所以在線目錄版本應(yīng)該始終是活動(dòng)目錄版本。
理想情況下,這些目錄版本之間的內(nèi)容不會(huì)發(fā)生變化。
同步是將目錄內(nèi)容從源目錄版本復(fù)制到目標(biāo)目錄版本的過(guò)程。
當(dāng)我們同步上演目錄版本時(shí),相同的上演內(nèi)容將被復(fù)制到在線目錄版本
我們可以通過(guò)指定源目錄版本和目標(biāo)目錄版本來(lái)定義同步規(guī)則。
如何進(jìn)行同步?
同步可以在 HMC 中完成,如下所示。
我以wearingProductCatalog 為例來(lái)說(shuō)明。
搜索目錄“apparelProductCatalog”
打開它,我們可以看到2個(gè)目錄版本“ Staged ”和“ Online ”,我們可以看到在線版本處于活動(dòng)狀態(tài)。
打開暫存目錄版本,然后單擊目錄版本選項(xiàng)卡。
在依賴目錄版本下,右鍵單擊并創(chuàng)建新的同步。
定義同步規(guī)則,源為 Staged,目標(biāo)為 Online。
打開暫存目錄版本并單擊目錄版本選項(xiàng)卡。
單擊同步目錄版本按鈕。
選擇源目錄版本作為暫存,然后單擊下一步。
將出現(xiàn)目標(biāo)選項(xiàng)卡并驗(yàn)證目標(biāo)是否符合同步規(guī)則。
點(diǎn)擊開始并等待處理。
成功后,所有暫存版本的內(nèi)容將被復(fù)制到在線版本。
注意:
每當(dāng)我們同步時(shí),都會(huì)在后端創(chuàng)建并執(zhí)行同步作業(yè)。
我們也可以在駕駛艙(cockpit)中進(jìn)行同步。
我們可以使用CMS cockpit進(jìn)行內(nèi)容目錄和產(chǎn)品 cockpit進(jìn)行產(chǎn)品目錄同步。
我們甚至可以編寫 cron 作業(yè)并將其配置為在一個(gè)時(shí)間間隔內(nèi)運(yùn)行以進(jìn)行同步。
總結(jié)
以上是生活随笔為你收集整理的如何在 SAP 电商云 Spartacus UI 中创建新的页面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽世界怀旧服被激怒的枭兽怎么做?被激怒
- 下一篇: ABAP Netweaver 和 ABA