如何在 SAP 电商云 Spartacus UI 中创建新的页面
Spartacus 中的頁面基于使用相關 API 從 SAP Commerce 后端獲取的 CMS 頁面。來自 SAP Commerce 端的數據定義了元數據,如 url、標題等,以及頁面的結構。結構意味著可用的部分類型以及分配給這些部分的 CMS 組件。Spartacus 接收此信息并為該結構提供真正的組件,包括邏輯、ui、響應式設計、樣式等。
由于這種定義的方法,它需要 2 個步驟來創建新的 Spartacus 頁面。首先,需要在 SAP Commerce 端創建 CMS 頁面。其次,需要創建 Spartacus 端的組件并將其分配給 CMS 組件。
作為第一步,讓我們從 SAP Commerce 端定義開始。創建一個新的 CMS 頁面需要為不同類型的類型創建多個實例。讓我們先談談這些類型。
模板:模板定義頁面的部分
- ContentPage:它是頁面本身。它包含諸如 url、應使用哪個模板、標題等值。url 以這種類型存儲在屬性“標簽”上。
- ContentSlot:這是可以分配給 section 的類型,負責內容本身。它自己沒有內容,但可以將組件分配給插槽。該組件包含基于斯巴達克斯方分配的內容。
- CMS 組件:標準商務系統中有多種 CMS 組件可用,也可以創建新類型。如果不需要特殊屬性,則可以使用通用 CMSFlexComponent 類型來創建組件實例。
- ContentSlotForPage:該類型只處理將 ContentSlot 實例分配給 ContentPage 實例的部分。部分由這種類型的“位置”屬性處理。
創建這些實例的 Impex 始終具有相同的結構,并且可以重復用于創建新的 CMS 頁面。只需根據您的需要修改內容。它也可以在后臺手動完成,但我建議使用 impex 并將其導入 HAC。只需登錄,轉到控制臺選項卡和 ImpEx 導入并粘貼修改后的 impex 內容。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通過導入這些行,將創建所需的實例。導入后直接可以通過定義的url調用新站點。在本例中,它將是http://localhost:4200/ourbestseller。
如果已經存在要重用的現有 CMS 組件,則可以刪除 CMSFlexComponent 的創建。但是需要將現有組件分配給 ContentSlot 而不是新的 CMS 組件。在此用例中,不需要本文的第二步。
第一步,創建所有必需的 CMS 實例,我們從 Commerce 端獲取具有結構的頁面。在第二步中,我們定義 Spartacus 端的哪個組件是 CMS 組件的對應部分。
這很簡單,可以通過配置來完成。只需創建一個新組件并將此配置添加到模塊文件中即可。
ConfigModule.withConfig(<CmsConfig>{cmsComponents: {ZBestsellerComponent: {component: BestsellerComponent,},},}),‘ZBestsellerComponent’ 是 CMS 組件的 uid,‘BestsellerComponent’ 是 Angular 組件的類名。將此添加到配置后,組件的內容將顯示在新創建的頁面上。
SAP 電商云中的目錄同步機制
我們知道在 Hybris 中,一個目錄可以有一個目錄版本(catalog version )列表。
產品目錄和內容目錄主要有 2 個目錄版本
此目錄版本的作用類似于測試目錄版本,用于在進入在線目錄版本之前定義目錄并對其進行驗證
這個目錄版本是用來在店面展示的。
所以在線目錄版本應該始終是活動目錄版本。
理想情況下,這些目錄版本之間的內容不會發生變化。
同步是將目錄內容從源目錄版本復制到目標目錄版本的過程。
當我們同步上演目錄版本時,相同的上演內容將被復制到在線目錄版本
我們可以通過指定源目錄版本和目標目錄版本來定義同步規則。
如何進行同步?
同步可以在 HMC 中完成,如下所示。
我以wearingProductCatalog 為例來說明。
搜索目錄“apparelProductCatalog”
打開它,我們可以看到2個目錄版本“ Staged ”和“ Online ”,我們可以看到在線版本處于活動狀態。
打開暫存目錄版本,然后單擊目錄版本選項卡。
在依賴目錄版本下,右鍵單擊并創建新的同步。
定義同步規則,源為 Staged,目標為 Online。
打開暫存目錄版本并單擊目錄版本選項卡。
單擊同步目錄版本按鈕。
選擇源目錄版本作為暫存,然后單擊下一步。
將出現目標選項卡并驗證目標是否符合同步規則。
點擊開始并等待處理。
成功后,所有暫存版本的內容將被復制到在線版本。
注意:
每當我們同步時,都會在后端創建并執行同步作業。
我們也可以在駕駛艙(cockpit)中進行同步。
我們可以使用CMS cockpit進行內容目錄和產品 cockpit進行產品目錄同步。
我們甚至可以編寫 cron 作業并將其配置為在一個時間間隔內運行以進行同步。
總結
以上是生活随笔為你收集整理的如何在 SAP 电商云 Spartacus UI 中创建新的页面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽世界怀旧服被激怒的枭兽怎么做?被激怒
- 下一篇: 口袋妖怪重制铁甲暴龙是否值得培养 铁甲暴