amp-story-shopping
簡介
amp-story-shopping
元件用於在 Web Stories (網路故事) 中建立購物體驗。
首先,匯入 amp-story-shopping
以及您的其他 story 匯入項目。
<script async custom-element="amp-story-shopping" src="https://cdn.ampproject.org/v0/amp-story-shopping-0.1.js"></script>
基本用法
amp-story-shopping
是在文件中使用兩個自訂元素定義的:amp-story-shopping-attachment
和 amp-story-shopping-tag
。
若要指定購物體驗,請定義一個 amp-story-shopping-attachment
作為頁面上的最後一個元素。amp-story-shopping-attachment
元件接受 1 個子系,也就是包含產品 JSON 的 script 元素,用於設定體驗。
必須將內嵌產品 JSON 設定為子 script 標籤。選用的 src
屬性會在轉譯時從端點擷取資料。如果定義了 src
,則會覆寫內嵌設定。如果遠端設定要求失敗,則會使用內嵌設定作為備用方案。如需產品 JSON 的完整說明,請參閱文件。
頁面上必須至少有一個 amp-story-shopping-tag
元素,體驗才會顯示。amp-story-shopping-tag
元件會顯示一個可點擊的按鈕。點擊後,會在頁面附件中開啟關於產品的更多資訊。data-product-id
屬性必須與產品 JSON 中的 productId
相符。請特別注意這一點,以確保按鈕顯示正確的資料。
自訂 CSS 用於在頁面上定位按鈕。按鈕預設使用絕對定位。若要進行回應式放置,請使用以百分比值為基礎的 left
和 right
CSS 規則。amp-story-shopping-tag
必須是 amp-story-grid-layer
的子系。
請注意,當設定體驗時,頁面底部會顯示「立即購買」CTA 按鈕。
<amp-story-page id="page-1">
<amp-story-grid-layer template="fill">
<amp-img layout="fill" src="https://source.unsplash.com/_HqHX3LBN18/1000x2000"></amp-img>
</amp-story-grid-layer>
<amp-story-grid-layer template="vertical">
<amp-story-shopping-tag data-product-id="lamp"></amp-story-shopping-tag>
</amp-story-grid-layer>
<amp-story-shopping-attachment>
<script type="application/json">
{
"items": [
{
"productUrl": "https://www.google.com",
"productId": "lamp",
"productTitle": "Brass Lamp",
"productBrand": "Lamp Co",
"productPrice": 799.0,
"productPriceCurrency": "USD",
"productImages": [
{"url": "https://source.unsplash.com/Ry9WBo3qmoc/500x500", "alt": "lamp 1"},
{"url": "https://source.unsplash.com/KP7p0-DRGbg", "alt": "lamp 2"},
{"url": "https://source.unsplash.com/mFnbFaCIu1I", "alt": "lamp 3"},
{"url": "https://source.unsplash.com/py9sH2rThWs", "alt": "lamp 4"},
{"url": "https://source.unsplash.com/VDPauwJ_sHo", "alt": "lamp 5"},
{"url": "https://source.unsplash.com/3LTht2nxd34", "alt": "lamp 6"}
],
"aggregateRating": {
"ratingValue": 4.4,
"reviewCount": 89,
"reviewUrl": "https://www.google.com"
},
"productDetails": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Facere error deserunt dignissimos in laborum ea molestias veritatis sint laudantium iusto expedita atque provident doloremque, ad voluptatem culpa adipisci."
}
]
}
</script>
</amp-story-shopping-attachment>
</amp-story-page>
使用 src
屬性的遠端產品 JSON
將 src
屬性新增至 amp-story-shopping-attachment
,以便在轉譯時遠端擷取資料。使用 src
可確保產品資料保持在最新狀態,即使是從快取提供服務時也一樣。
務必注意,產品資料特定於每個頁面。它無法在頁面之間共用。這可確保資料僅在需要時載入。
<amp-story-page id="page-2">
<amp-story-grid-layer template="fill">
<amp-img layout="fill" src="https://source.unsplash.com/_HqHX3LBN18/1000x2000"></amp-img>
</amp-story-grid-layer>
<amp-story-grid-layer template="vertical">
<amp-story-shopping-tag data-product-id="chair"></amp-story-shopping-tag>
<amp-story-shopping-tag data-product-id="lamp"></amp-story-shopping-tag>
</amp-story-grid-layer>
<amp-story-shopping-attachment src="/static/samples/json/amp-story-shopping.json">
<script type="application/json">
{
"items": [
{
"productUrl": "https://www.google.com",
"productId": "chair",
"productTitle": "Yellow chair",
"productBrand": "Chair Co.",
"productPrice": 1000.0,
"productPriceCurrency": "USD",
"productImages": [
{"url": "https://source.unsplash.com/DgQGKKLaVhY/500x500", "alt": "chair"}
],
"aggregateRating": {
"ratingValue": 4.4,
"reviewCount": 89,
"reviewUrl": "https://www.google.com"
},
"productDetails": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Facere error deserunt dignissimos in laborum ea molestias veritatis sint laudantium iusto expedita atque provident doloremque, ad voluptatem culpa adipisci."
},
{
"productUrl": "https://www.google.com",
"productId": "lamp",
"productTitle": "Brass Lamp",
"productBrand": "Lamp Co",
"productPrice": 799.0,
"productPriceCurrency": "USD",
"productImages": [
{"url": "https://source.unsplash.com/Ry9WBo3qmoc/500x500", "alt": "lamp 1"},
{"url": "https://source.unsplash.com/KP7p0-DRGbg", "alt": "lamp 2"},
{"url": "https://source.unsplash.com/mFnbFaCIu1I", "alt": "lamp 3"},
{"url": "https://source.unsplash.com/py9sH2rThWs", "alt": "lamp 4"},
{"url": "https://source.unsplash.com/VDPauwJ_sHo", "alt": "lamp 5"},
{"url": "https://source.unsplash.com/3LTht2nxd34", "alt": "lamp 6"}
],
"aggregateRating": {
"ratingValue": 4.4,
"reviewCount": 89,
"reviewUrl": "https://www.google.com"
},
"productDetails": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Facere error deserunt dignissimos in laborum ea molestias veritatis sint laudantium iusto expedita atque provident doloremque, ad voluptatem culpa adipisci."
}
]
}
</script>
</amp-story-shopping-attachment>
</amp-story-page>
選用設定
在本範例中,我們透過在產品 JSON 中定義 productIcon
和 productTagText
,在 amp-story-shopping-tag
中顯示自訂圖示和文字。我們建議針對 productIcon
使用 48 x 48 像素的圖片。我們建議針對 productTagText
使用 1-3 個字詞。如果文字太長,則會變成兩行並顯示省略符號。
我們也在 amp-story-shopping-attachment
上設定 theme="dark"
,以便以深色調色盤轉譯「立即購買」cta 按鈕和頁面附件。
<amp-story-page id="page-3">
<amp-story-grid-layer template="fill">
<amp-img layout="fill" src="https://source.unsplash.com/_HqHX3LBN18/1000x2000"></amp-img>
</amp-story-grid-layer>
<amp-story-grid-layer template="vertical">
<amp-story-shopping-tag data-product-id="flowers"></amp-story-shopping-tag>
<amp-story-shopping-tag data-product-id="chair"></amp-story-shopping-tag>
<amp-story-shopping-tag data-product-id="lamp"></amp-story-shopping-tag>
</amp-story-grid-layer>
<amp-story-shopping-attachment theme="dark" src="/static/samples/json/amp-story-shopping.json">
<script type="application/json">
{
"items": [
{
"productIcon": "/static/samples/img/amp-story-shopping-icon.png",
"productTagText": "Flowers",
"productUrl": "https://www.google.com",
"productId": "flowers",
"productTitle": "Flowers",
"productBrand": "Flower Company Name",
"productPrice": 10.0,
"productPriceCurrency": "USD",
"productImages": [
{"url": "https://source.unsplash.com/SavQfLRm4Do/500x500", "alt": "flowers"}
],
"aggregateRating": {
"ratingValue": 4.4,
"reviewCount": 89,
"reviewUrl": "https://www.google.com"
},
"productDetails": "Lorem ipsum dolor sit amet consectetur adipisicing elit. \n Facere error deserunt dignissimos in laborum ea molestias veritatis sint laudantium iusto expedita atque provident doloremque, ad voluptatem culpa adipisci."
},
{
"productUrl": "https://www.google.com",
"productId": "chair",
"productTitle": "Yellow chair",
"productBrand": "Chair Co.",
"productPrice": 1000.0,
"productPriceCurrency": "USD",
"productImages": [
{"url": "https://source.unsplash.com/DgQGKKLaVhY/500x500", "alt": "chair"}
],
"aggregateRating": {
"ratingValue": 4.4,
"reviewCount": 89,
"reviewUrl": "https://www.google.com"
},
"productDetails": "Lorem ipsum dolor sit amet consectetur adipisicing elit. \n Facere error deserunt dignissimos in laborum ea molestias veritatis sint laudantium iusto expedita atque provident doloremque, ad voluptatem culpa adipisci."
},
{
"productUrl": "https://www.google.com",
"productId": "lamp",
"productTitle": "Brass Lamp",
"productBrand": "Lamp Co",
"productPrice": 799.0,
"productPriceCurrency": "USD",
"productImages": [
{"url": "https://source.unsplash.com/Ry9WBo3qmoc/500x500", "alt": "lamp 1"},
{"url": "https://source.unsplash.com/KP7p0-DRGbg", "alt": "lamp 2"},
{"url": "https://source.unsplash.com/mFnbFaCIu1I", "alt": "lamp 3"},
{"url": "https://source.unsplash.com/py9sH2rThWs", "alt": "lamp 4"},
{"url": "https://source.unsplash.com/VDPauwJ_sHo", "alt": "lamp 5"},
{"url": "https://source.unsplash.com/3LTht2nxd34", "alt": "lamp 6"}
],
"aggregateRating": {
"ratingValue": 4.4,
"reviewCount": 89,
"reviewUrl": "https://www.google.com"
},
"productDetails": "Lorem ipsum dolor sit amet consectetur adipisicing elit. \n Facere error deserunt dignissimos in laborum ea molestias veritatis sint laudantium iusto expedita atque provident doloremque, ad voluptatem culpa adipisci."
}
]
}
</script>
</amp-story-shopping-attachment>
</amp-story-page>
更多資源
如果您想瞭解更多關於 Web Stories (網路故事) 內購物的資訊,請前往文件。
如果本頁的說明未能涵蓋您的所有問題,請隨時與其他 AMP 使用者聯繫,討論您的確切使用案例。
前往 Stack Overflow 有未說明的特色功能?AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的長期參與者,但我們也歡迎您針對您特別感興趣的問題做出一次性的貢獻。
在 GitHub 上編輯範例-
作者: @philipbell