[Beta]{class="badge informative"}

Shopify Streaming

NOTE
Shopify Streaming來源是測試版。 如需使用Beta版標籤來源的相關資訊,請參閱來源概觀

Adobe Experience Platform支援從串流應用程式擷取資料。 對串流提供者的支援包括Shopify。

先決條件 prerequisites

以下章節概述使用Shopify Streaming來源之前要完成的先決條件步驟。

您必須擁有有效的Shopify合作夥伴帳戶才能連線至Shopify API。 如果您還沒有合作夥伴帳戶,請使用Shopify 合作夥伴儀表板進行註冊。

建立您的應用程式

使用有效的Shopify合作夥伴帳戶,您現在可以使用合作夥伴儀表板繼續並建立您的應用程式。 如需有關如何在Shopify中建立應用程式的完整步驟,請閱讀快速入門的Shopify 指南

建立您的應用程式後,請從Shopify合作夥伴儀表板的​ 使用者端認證 ​索引標籤中擷取您的​ 使用者端識別碼 ​和​ 使用者端密碼。 使用者端ID和使用者端密碼將在後續步驟中使用,以擷取您的授權代碼和存取權杖。

擷取您的授權代碼

接下來,請在瀏覽器中輸入網域的myshopify.com URL,以及定義您的API金鑰、範圍和重新導向URI的查詢字串,以擷取您的授權代碼。

此URL的格式如下:

API格式

https://{SHOP}.myshopify.com/admin/oauth/authorize?client_id={API_KEY}&scope={SCOPES}&redirect_uri={REDIRECT_URI}
參數
說明
shop
您的子網域myshopify.com URL。
api_key
您的Shopify使用者端識別碼。 您可以從Shopify合作夥伴儀表板的​ 使用者端認證 ​標籤擷取使用者端ID。
scopes
您要定義的存取權型別。 例如,您可以將範圍設定為scope=write_orders,read_customers,以允許修改訂單和讀取客戶的許可權。
redirect_uri
將會產生存取權杖的指令碼URL。

要求

https://connnectors-test.myshopify.com/admin/oauth/authorize?client_id=l6fiviermmzpram5i1spfub99shms3j9&scope=write_orders,read_customers&redirect_uri=https://acme.com

回應

成功的回應會傳回您的重新導向URL,包括產生存取權杖所需的授權代碼。

https://www.acme.com/?code=k6j2palgrbljja228ou8c20fmn7w41gz&hmac=68c9163f772eecbc8848c90f695bca0460899c125af897a6d2b0ebbd59d3a43b&shop=connnectors-test.myshopify.com&state=123456×tamp=1658305460

擷取您的存取權杖

現在您已取得使用者端ID、使用者端密碼和授權碼,您可以擷取存取權杖。 若要擷取您的存取Token,請在使用Shopify’s API端點附加此URL時向網域的myshopify.com URL提出POST要求: /admin/oauth/access_token

API格式

POST /{SHOP}.myshopify.com/admin/oauth/access_token

要求

下列要求會產生您Shopify執行個體的存取權杖。

curl -X POST \
  'https://connnectors-test.myshopify.com/admin/oauth/access_token' \
  -H 'developer-token: {DEVELOPER_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: _master_udr=xxx; request_method=POST'
  -d '{
    "client_id": "l6fiviermmzpram5i1spfub99shms3j9",
    "client_secret": "dajn3caxz9s7ti624ncyv_m4f60jnwi3ii3y3k",
    "code": "k6j2palgrbljja228ou8c20fmn7w41gz"
}'

回應

成功的回應會傳回您的存取權杖和許可權範圍。

{
  "access_token": "shpca_wjhifwfc91psjtldysxd6rqli371tx54",
  "scope": "write_orders,read_customers"
}

建立webhook以串流Shopify資料 webhook

Webhook可讓應用程式與您的Shopify資料保持同步,或在商店中發生特定事件後執行動作。 若要將Shopify資料串流至Experience Platform,webhook可用來定義http端點和訂閱的主題。

要求

以下請求會為您的Shopify Streaming資料建立webhook。

curl -X POST \
  'https://connnectors-test.myshopify.com/admin/api/2022-07/webhooks.json' \
  -H 'X-Shopify-Access-Token: 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' \
  -H 'Content-Type: application/json' \; request_method=POST' \
  -d '{
  "webhook": {
    "address": "https://dcs.adobedc.net/collection/9d411a24aa3c0a3eded92bac6c64d0da986ee7a8212f87168c5fb42d9ddc3227",
    "topic": "orders/create",
    "format": "json"
  }
}'
參數
說明
webhook.address
傳送串流訊息的http端點。
webhook.topic
您的webhook訂閱主題。 如需詳細資訊,請閱讀Shopify webhook活動主題指南
webhook.format
資料的格式。

回應

成功的回應會傳回您webhook上的資訊,包括其對應的id、位址和其他中繼資料資訊。

{
  "webhook": {
    "id": 1091138715786,
    "address": "https://dcs.adobedc.net/collection/9d411a24aa3c0a3eded92bac6c64d0da986ee7a8212f87168c5fb42d9ddc3227",
    "topic": "orders/create",
    "created_at": "2022-07-20T07:15:23-04:00",
    "updated_at": "2022-07-20T07:15:23-04:00",
    "format": "json",
    "fields": [],
    "metafield_namespaces": [],
    "api_version": "2021-10",
    "private_metafield_namespaces": []
  }
}

限制 limitations

下列是將webhook與Shopify Streaming來源搭配使用時,您可能會遇到的已知限制清單。

  • 並不保證您可以為相同資源安排不同主題的傳送順序。 例如,products/update webhook可能會在products/create webhook之前傳遞。
  • 您可以設定webhook將webhook事件至少傳送一次到端點。 這表示端點可能會收到相同事件多次。 您可以將X-Shopify-Webhook-Id標頭與先前的事件做比較,以掃描重複的webhook事件。
  • Shopify會將HTTP 2xx狀態回應視為成功通知。 任何其他狀態代碼回應均視為失敗。 Shopify為失敗的webhook通知提供重試機制。 如果等候5秒後​ 沒有回應,Shopify會在接下來的​ 48小時 ​內重試連線​ 19次。 如果重試期間結束時仍然沒有回應,則Shopify會刪除webhook。

後續步驟

下列教學課程提供如何使用API和UI將您的Shopify Streaming來源連線到Experience Platform的步驟:

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089