此文已使用 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 專用用戶端具有多項優勢。請參閱 Use a SLAS Private Client (使用 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
例如,如果您的頁面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 |