AMP
  • 故事

amp-story-shopping

簡介

amp-story-shopping 元件用於在 Web Stories (網路故事) 中建立購物體驗。

首先,匯入 amp-story-shopping 以及其他故事匯入項目。

<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-attachmentamp-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 用於在頁面上定位按鈕。按鈕預設為絕對定位。如需回應式放置,請使用以百分比值為基礎的 leftright 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

amp-story-shopping-attachment 中新增 src 屬性,以便在轉譯時遠端擷取資料。使用 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 中定義 productIconproductTagText,在 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 上編輯範例