如何在 SAP 电商云 Spartacus UI 里新建一个页面
因为 SAP Spartacus UI 是基于 CMS 驱动的,因此流程是:我们首先在 SAP Commerce Cloud Backoffice 创建新的 content page, CMS Component 以及相关内容,然后再到 SAP Spartacus 层,新建一个 Angular Component,映射到之前 Commerce Cloud Backoffice 里创建的 CMS Component.
步骤1 - 在 SAP Commerce Cloud Backoffice 创建必须的 CMS 内容
具体步骤可以参考我这篇文章:如何在 SAP 电商云里使用 Backoffice 和 Smart Edit 创建新的 Content Page
完整的 impex 源代码如下:
## Quick Order ## (my-account/quick-order)
$contentCatalog=powertools-spaContentCatalog
$contentCV=catalogVersion(CatalogVersion.catalog(Catalog.id[default=$contentCatalog]),CatalogVersion.version[default=Staged])[default=$contentCatalog:Staged]
INSERT_UPDATE ContentPage;$contentCV[unique=true];uid[unique=true];masterTemplate(uid,$contentCV);label
;;jerryOrderPage;AccountPageTemplate;/my-account/jerry-orderINSERT_UPDATE ContentSlot;$contentCV[unique=true];uid[unique=true];name;active;cmsComponents(&componentRef)
;;BodyContentSlot-jerryOrder;Body Content Slot for Jerry Order;true;JerryOrderComponentINSERT_UPDATE ContentSlotForPage;$contentCV[unique=true];uid[unique=true];position[unique=true];page(uid,$contentCV)[unique=true];contentSlot(uid,$contentCV)[unique=true]
;;BodyContent-jerryOrder;BodyContent;jerryOrderPage;BodyContentSlot-jerryOrderINSERT_UPDATE CMSFlexComponent;$contentCV[unique=true];uid[unique=true];name;flexType;&componentRef
;;JerryOrderComponent;Jerry Order Component;JerryOrderComponent;JerryOrderComponentINSERT_UPDATE CMSLinkComponent;$contentCV[unique=true];uid[unique=true];url
;;JerryOrderLink;/my-account/jerry-order
步骤2
在 Spartacus 创建新的 Angular Component,将其映射到 SAP Commerce Cloud Backoffice 里创建的 CMS Component:JerryOrderComponent
添加一条指向到 JerryOrderComponent 的路由设置:
paths 里的值,只需要和 content page 里的 page label 保持一致即可:
最后的效果:
所有的源代码都可以在这个链接里获得。
更多Jerry的原创文章,尽在:“汪子熙”:
如何在 SAP 电商云 Spartacus UI 里新建一个页面相关推荐
- 如何在 SAP 电商云 Spartacus UI 里访问 CMS Component data 数据
答案是采用 CmsComponentData 这个服务. 看个实际例子: CmsQuickOrderComponent 的定义,维护在 models 文件夹里: 运行时,只能访问到上图新 extend ...
- SAP 电商云 Spartacus UI 里如何捕捉语言设置的更改
我们知道在 SAP 电商云 Spartacus UI 里,用户可以通过下拉菜单更改当前访问 site 的语言: 监控语言变化的代码: this.subscription.add(this.langua ...
- 在 SAP 电商云 Spartacus UI 里手动注入 module 的几种排列组合
先把所有的排列组合罗列如下: (1) 通过构造函数注入 QuickOrderFacade,但不调用其方法 (2) 通过构造函数注入 QuickOrderFacade,调用其方法 (3) 手动通过 in ...
- 如何在 SAP 电商云 Spartacus UI 中创建新的页面
Spartacus 中的页面基于使用相关 API 从 SAP Commerce 后端获取的 CMS 页面.来自 SAP Commerce 端的数据定义了元数据,如 url.标题等,以及页面的结构.结构 ...
- 如何在 SAP 电商云 Spartacus UI 首页的产品展示里显示视频
Spartacus UI 的 banner Component 显示的图片,最终是通过一个 selector 为 cx-media 的 Component 实现的.路径为 projects\store ...
- SAP 电商云 Spartacus UI 里的 InjectionToken 应用场景
看个具体的例子: InjectionToken 构造函数,需要传一个类型参数进去. 这个 ActionReducerMap 的定义很讲究: export declare type ActionRedu ...
- 在 SAP 电商云 Spartacus UI 里使用自定义配置控制 UI 调试的开关
在 page-slot.module.ts 里,定义一个配置对象 ConfigUIDebug. 这个配置对象定义在 cms-component-data.ts 的 ConfigUIDebug 对象里, ...
- 如何在 SAP 电商云 Spartacus 代码里获取 Routes 路由信息
使用如下代码: export class AppModule {constructor(private router: Router,protected injector: Injector){thi ...
- SAP 电商云 Spartacus UI ComponentDataProvider defer 工厂函数
为什么 this.componentService.getItems 最后就触发到 Component-data.provider.ts 工厂函数的执行了? 29行的 getService: getS ...
最新文章
- php 线条的绘制,在非常高的图像上使用PHP绘制线条,脚本停止绘制.怎么了,怎么解决?...
- 3950双层交换机生成树协议
- 一些顿悟,和新的开始!
- 原生支付url参数错误_小程序支付
- 调整latex表格_选择LaTeX还是Word的建议
- linux-ubuntu-obs推流到bilibili及虎牙直播测试
- 调研之路 --- MXF
- Scrum板与Kanban如何抉择?ivhbyfphe板与按照drpxcj
- 如何查看linux的系统配置,多少个核心,多少个线程?CPU的主频 查看内存
- ol-地图上添加图标
- 开启共享文件夹/共享打印机功能
- 【c++入门(2)】邻项交换
- Carmack(卡马克)传奇的3D引擎开源代码
- python:输入一个整数正序各个输出,并判断输出位数
- 基金申请-13:如何查论文的影响因子和SCI分区?
- Java异常的根类似_Java异常(Exception)类型及处理
- springboot vue3 elementui plus小说阅读网站源码
- ThinkPHP 入门
- kali下载中文输入法
- 又被黑!百度到底做错了什么?
热门文章
- React解决长列表方案(react-virtualized)
- pt-online-schema-change 在线修改表结构
- ACM 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 B. Train Seats Reservation
- 关于ViewPager的适配器之——pagerAdapter加载缓存页面的机制
- UrlRewrite(URL重写)--ASP.NET中的实现
- Sharepoint学习笔记—Ribbon系列-- 3.在Ribbon中找到正确的Location
- 【转】log4net使用详解
- Sql Server主副本和辅助副本间账号同步以及权限同步
- [性能测试]:关于MQ协议脚本开发
- 【repost】一探前端开发中的JS调试技巧