성공을 위한 스킬
Ask the Community
Page Designer와 PWA Kit 통합
암호 재설정 구현
암호 없는 로그인 구현
소셜 로그인 구현
쿠키를 사용한 개인화
구매자 컨텍스트를 사용한 개인화
매장 찾기로 매장 매출 증대를 참조하십시오.
Tracking Consent Banner(추적 동의 배너)로 개인정보보호를 참조하십시오.
캐시 적중률 극대화
사이트맵으로 SEO 개선
Page Designer를 사용하면PWA(Progressive Web App) Kit사이트에 대해 재사용 가능한 페이지 유형 및 구성요소 유형을 생성할 수 있습니다. Business Manager에서 코드 없는 시각적 편집기를 사용하여 사이트의 Page Designer 페이지를 디자인, 스케줄링, 게시할 수 있습니다. PWA Kit 사이트와 통합되면 Page Designer를 사용하면 React 구성 요소를 사용하여 동적 반응형 페이지를 렌더링할 수 있습니다.
이 가이드에서는 사이트에서 Page Designer 페이지를 표시할 수 있도록 PWA Kit를 구성하는 방법을 설명합니다.
이 튜토리얼의 명령을 실행하기 전에 Placeholder를 실제 값으로 바꿉니다. 자리 표시자는 $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 PageViewerPWA Kit 프로젝트에서 ”로 이동하는 경로를 열고app/routes.jsx추가합니다
Business Manager에서 Page Designer 페이지에 대해 정의한 페이지 ID로 바꿉니다$PAGE_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}웹 서버를 로컬로 시작하려면 다음을 실행합니다.
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 구성 요소 목록입니다. PWA Kit용 Page Designer GitHub 리포지토리에서 React 구성 요소를 찾을 수 있습니다.
| React 컴포넌트 | ISML 컴포넌트 |
|---|---|
| 캐러셀 | commerce_layouts .carousel |
| mobileGrid1r1c | commerce_layouts .mobileGrid1r1c |
| mobileGrid2r1c | commerce_layouts .mobileGrid2r1c |
| mobileGrid2r2c | commerce_layouts .mobileGrid2r2c |
| mobileGrid2r3c | commerce_layouts .mobileGrid2r3c |
| mobileGrid3r1c | commerce_layouts .mobileGrid3r1c |
| mobileGrid3r2c | commerce_layouts .mobileGrid3r2c |
| 이미지 타일 | commerce_assets .photoTile |
| 텍스트 | commerce_assets가 있는 이미지 .imageAndText |