此文本已使用 Salesforce 机器翻译系统进行翻译。如需了解更多详情,请点击此处。
使用 Page Designer,您可以为 Progressive Web App (PWA) Kit 站点创建可重用的页面类型和组件类型。使用 Business Manager 中的无代码可视化编辑器为您的站点设计、计划和发布 Page Designer 页面。当与 PWA Kit 站点集成时,Page Designer 可以使用 React 组件呈现动态响应式页面。
本指南介绍如何配置 PWA Kit,以便您的站点可以显示 Page Designer 页面。
在运行本教程中的命令之前,请将所有占位符替换为实际值。占位符的格式如 $PLACEHOLDER。
要将 Page Designer 与 PWA Kit 站点集成,请执行以下作:
使用以下任一实现方式构建站点:
创建或更新 SLAS 公共或私有客户端。按照 创建 SLAS 客户端 中的步骤作或使用 registerClient API 端点。
在“范围 ”字段中,包括以下范围: sfcc.shopper-experience。
与公共客户端相比,SLAS 专用客户端具有多项优势。请参阅使用 SLAS 私人客户端。
在 Business Manager 中创建 Page Designer 页面。用 Page Designer 可视化编辑器创建页面
在 PWA Kit 项目中,创建一个名为 app/pages/page-viewer/index.jsx 的文件,并添加此代码。
该文件的目的是设置页面查看器以使用组件呈现 Page Designer 页面。此代码包括用于演示目的的示例组件。将代码中的组件替换为适用于站点的组件。此示例集成使用 @salesforce/commerce-sdk-react。
1// app/pages/page-viewer/index.jsx
2
3import React from 'react'
4import {useParams} from 'react-router-dom'
5import {Box} from '@salesforce/retail-react-app/app/components/shared/ui'
6import {usePage, usePages} from '@salesforce/commerce-sdk-react'
7import {Page} from '@salesforce/commerce-sdk-react/components'
8// Map Page Designer components to your React components.
9import {ImageTile, ImageWithText} from '../../page-designer/assets'
10import {
11 Carousel,
12 MobileGrid1r1c,
13 MobileGrid2r1c,
14 MobileGrid2r2c,
15 MobileGrid2r3c,
16 MobileGrid3r1c,
17 MobileGrid3r2c
18} from '../../page-designer/layouts'
19
20import {HTTPError, HTTPNotFound} from '@salesforce/pwa-kit-react-sdk/ssr/universal/errors'
21
22const PAGEDESIGNER_TO_COMPONENT = {
23 'commerce_assets.photoTile': ImageTile,
24 'commerce_assets.imageAndText': ImageWithText,
25 'commerce_layouts.carousel': Carousel,
26 'commerce_layouts.mobileGrid1r1c': MobileGrid1r1c,
27 'commerce_layouts.mobileGrid2r1c': MobileGrid2r1c,
28 'commerce_layouts.mobileGrid2r2c': MobileGrid2r2c,
29 'commerce_layouts.mobileGrid2r3c': MobileGrid2r3c,
30 'commerce_layouts.mobileGrid3r1c': MobileGrid3r1c,
31 'commerce_layouts.mobileGrid3r2c': MobileGrid3r2c
32
33// Add your custom Page Designer React component implementation here.
34
35}
36
37
38
39const PageViewer = () => {
40 const {pageId} = useParams()
41 const {data: page, error} = usePage({parameters: {pageId}})
42
43 if (error) {
44 let ErrorClass = error.response?.status === 404 ? HTTPNotFound : HTTPError
45 throw new ErrorClass(error.response?.statusText)
46 }
47
48 return (
49 <Box layerStyle={'page'}>
50 <Page page={page} components={PAGEDESIGNER_TO_COMPONENT} />
51 </Box>
52 )
53}
54
55PageViewer.displayName = 'PageViewer'
56
57export default PageViewer在 PWA Kit 项目中,打开 app/routes.jsx 并添加导航到“”的路由
替换 $PAGE_ID 为您在 Business Manager 中为 Page Designer 页面定义的页面 ID。
1// app/routes.jsx
2
3// Create a loadable page for `page-viewer`.
4const PageViewer = loadable(() => import('./pages/page-viewer'), {fallback})
5
6
7// Add a route.
8{
9 path: '/page-viewer/$PAGE_ID',
10 component: PageViewer
11}若要在本地启动 Web 服务器,请运行:
npm start
要查看以React.js呈现Page Designer页面,请转到
`http:localhost:3000/page-viewer/$PAGE_ID’,并使用您在步骤 2 中标识的页面 ID。
例如,如果您的页面 ID 是 123,请转至: http://localhost:3000/page-viewer/123。
这是具有匹配的 ISML 对应项的 React 组件列表。可以在 Page Designer GitHub Repo for PWA Kit 中找到 React 组件。
| React 组件 | ISML 组件 |
|---|---|
| 轮播 | commerce_layouts. carousel |
| 移动网格 1r1c | commerce_layouts. mobileGrid1r1c |
| 移动网格2r1c | commerce_layouts. mobileGrid2r1c |
| mobileGrid2r2c | commerce_layouts. mobileGrid2r2c |
| 移动网格2r3c | commerce_layouts. mobileGrid2r3c |
| 移动网格3r1c | commerce_layouts. mobileGrid3r1c |
| 移动网格3r2c | commerce_layouts. mobileGrid3r2c |
| 图像-tile | commerce_assets. photoTile |
| 图像与文本 | commerce_assets. imageAndText |