Shopify

透過 Shopify 連接器,您可以在 Shopify 上執行插入、刪除、更新和讀取作業。

支援的版本

這個連接器會將 Shopify 管理 API 模擬為關聯式資料庫。

事前準備

使用 Shopify 連接器前,請先完成下列工作:

  • 在 Google Cloud 專案中:
    • 確認已設定網路連線。如要瞭解網路模式,請參閱「網路連線」。
    • 將 roles/connectors.admin IAM 角色授予設定連線器的使用者。
    • 將下列 IAM 角色授予要用於連接器的服務帳戶:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 資料的非人類使用者。如果您沒有服務帳戶,請建立服務帳戶。連接器和服務帳戶必須屬於相同專案。詳情請參閱「建立服務帳戶」。

    • 啟用下列服務:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (Connectors API)

      如要瞭解如何啟用服務,請參閱「啟用服務」。

    如果先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。

設定連接器

連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連結,請按照下列步驟操作:

  1. 在 Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。

    前往「連線」頁面

  2. 按一下「+ 建立新連線」,開啟「建立連線」頁面。
  3. 在「位置」部分中,選擇連線的位置。
    1. 區域:從下拉式清單中選取位置。

      如需所有支援區域的清單,請參閱「地點」一文。

    2. 點按「下一步」。
  4. 在「連線詳細資料」部分,完成下列步驟:
    1. 連接器:從可用連接器的下拉式清單中選取「Shopify」。
    2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
    3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。

      連線名稱必須符合下列條件:

      • 連線名稱可使用英文字母、數字或連字號。
      • 字母必須為小寫。
      • 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
      • 連結名稱不得超過 49 個半形字元。
    4. 視需要輸入連線執行個體的「Description」(說明)。
    5. 或者,可啟用 Cloud Logging,然後選取記錄層級。記錄層級預設為 Error。
    6. 服務帳戶:選取具備必要角色的服務帳戶。
    7. 視需要設定「連線節點設定」:

      • 節點數量下限:輸入連線節點數量下限。
      • 節點數量上限:輸入連線節點數量上限。

      節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器價格的影響,請參閱「 連線節點的定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

    8. 每次通話的最高點數:指定每次通話的點數費用。
    9. 結構定義:指定要連線的 Shopify 伺服器版本。如果 Schema 欄位設為 GraphQL,所有實體都會視為唯讀檢視區塊。如要執行建立、更新或刪除作業,您必須將 Schema 欄位設為 REST。
    10. (選用) 在「進階設定」部分,選取「使用 Proxy」核取方塊,為連線設定 Proxy 伺服器,並設定下列值:
      • 「Proxy Auth Scheme」(Proxy 驗證配置):選取要用於 Proxy 伺服器驗證的驗證類型。支援的驗證類型如下:
        • 基本:基本 HTTP 驗證。
        • 摘要:摘要 HTTP 驗證。
      • Proxy 使用者:用於向 Proxy 伺服器驗證的使用者名稱。
      • Proxy 密碼:使用者密碼的 Secret Manager 密碼。
      • Proxy SSL Type:連線至 Proxy 伺服器時要使用的 SSL 類型。支援的驗證類型如下:
        • 自動:預設設定。如果網址是 HTTPS 網址,則會使用「Tunnel」(通道) 選項。如果網址是 HTTP 網址,系統會使用「永不」選項。
        • 「Always」(一律):連線一律啟用 SSL。
        • 「永不」:連線未啟用 SSL。
        • 「Tunnel」(通道):連線是透過通道 Proxy 建立。Proxy 伺服器會開啟與遠端主機的連線,流量會透過 Proxy 來回傳輸。
      • 在「Proxy 伺服器」部分,輸入 Proxy 伺服器的詳細資料。
        1. 按一下「+ 新增目的地」。
        2. 選取「目的地類型」。
          • 主機位址:指定目的地的主機名稱或 IP 位址。

            如要與後端系統建立私人連線,請按照下列步驟操作:

    11. (選用) 按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
    12. 點按「下一步」。
  5. 在「目的地」部分,輸入要連線的遠端主機 (後端系統) 詳細資料。
    1. 目的地類型:選取目的地類型。
      • 如要指定目的地主機名稱或 IP 位址,請選取「主機位址」,然後在「主機 1」欄位中輸入位址。
      • 如要建立私人連線,請選取「端點連結」。在「Endpoint Attachment」(端點連結) 清單中,選取為後端系統建立的端點連結。

      如要建立與後端系統的公開連線,並加強安全性,可以為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。

      如要輸入其他目的地,請按一下「+新增目的地」。

    2. 點按「下一步」。
  6. 在「Authentication」部分,指定「Access Token」詳細資料。
  7. 點按「下一步」。
  8. 檢查:檢查連結和驗證詳細資料。
  9. 點選「建立」。

建立存取權杖和 API 憑證

  1. 登入 Shopify 帳戶。
  2. 在 Shopify 開發人員入口網站中,按一下「設定」。
  3. 依序選取「應用程式和銷售管道」>「開發應用程式」。
  4. 按一下「建立應用程式」。
  5. 在隨即顯示的對話方塊中輸入應用程式名稱,然後按一下「建立」。
  6. 在「總覽」頁面中,按一下「設定 Admin API 範圍」,然後選取應用程式的存取權。
  7. 選取特定整合服務所需的權限。
  8. 權限注意事項:Shopify 範圍是模組化,請只啟用整合功能需要存取的資料範圍。例如:
    • 訂單與出貨: read_orders、write_orders、read_fulfillments。
    • 廣告空間和產品: read_products、read_inventory。
    • 客戶資料: read_customers。

    最低範圍:如果您不確定要執行哪些特定動作,建議先從 read_products 和 read_orders 開始。

    (選用) 如要確保這項整合的所有功能都能正常運作,不會發生權限錯誤,可以選取下列完整清單:

    • read_assigned_fulfillment_orders
    • write_assigned_fulfillment_orders
    • read_content
    • write_content
    • read_customers
    • write_customers
    • read_draft_orders
    • write_draft_orders
    • read_fulfillments
    • write_fulfillments
    • read_gift_cards
    • write_gift_cards
    • read_inventory
    • write_inventory
    • read_marketing_events
    • write_marketing_events
    • read_orders
    • write_orders
    • read_price_rules
    • write_price_rules
    • read_product_listings
    • write_product_listings
    • read_products
    • write_products
    • read_reports
    • write_reports
    • read_script_tags
    • write_script_tags
    • read_shopify_payments_payouts
    • read_themes
    • write_themes

  9. 按一下 [儲存]。
  10. 在「API 憑證」頁面中,選取「安裝應用程式」。
  11. 在隨即顯示的對話方塊中,按一下「安裝」。
  12. 在「API 憑證」頁面中,選取「顯示權杖一次」,然後複製「Admin API 存取權杖」。
  13. 保護憑證:在 GCP Secret Manager 中建立密鑰,儲存 Admin API 存取權杖。記下密鑰的資源路徑以供驗證。
  14. 管理員驗證:如果連接器使用租戶專案,管理員可以使用下列 JSON 驗證設定對應中的 access_token 版本管理:
     { "config_variables": { "schema": "REST" }, "destination_configs": { "shop_url": "https://YOUR_STORE.myshopify.com" }, "auth_config": { "access_token": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION" } } 

實體、作業和動作

所有 Integration Connectors 都會為所連應用程式的物件提供抽象層。您只能透過這個抽象化存取應用程式的物件。抽象化會以實體、作業和動作的形式向您公開。

  • 實體: 實體可以視為已連結應用程式或服務中的物件,或是屬性集合。實體的定義與連接器對連接器不同。舉例來說,在資料庫連接器中,資料表是實體;在檔案伺服器連接器中,資料夾是實體;在訊息系統連接器中,佇列是實體。

    不過,連接器可能不支援或沒有任何實體,在這種情況下,Entities 清單會是空白。

  • 作業: 作業是指您可以在實體上執行的活動。您可以對實體執行下列任一操作:

    從可用清單中選取實體,系統會產生該實體可用的作業清單。如需作業的詳細說明,請參閱連線器工作中的實體作業。 不過,如果連接器不支援任何實體作業,Operations 清單就不會列出這類不支援的作業。

  • 動作: 動作是透過連接器介面提供給整合的第一類函式。動作可讓您變更一或多個實體,且因連接器而異。一般來說,動作會有一些輸入參數和輸出參數。不過,連接器可能不支援任何動作,在這種情況下,Actions 清單會是空白。

實體作業範例

範例 - 列出所有產品

這個範例會列出 Products 實體中的所有記錄。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Products。
  3. 選取 List 作業,然後按一下「完成」。

範例 - 取得顧客詳細資料

這個範例會從 Customers 實體取得指定客戶的詳細資料。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Customers。
  3. 選取 Get 作業,然後按一下「完成」。
  4. 輸入要擷取詳細資料的客戶實體 ID。

    在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入 365009521884E12。

  5. 您也可以使用 filterClause 欄位執行 Get 和 Delete 作業。

範例 - 刪除訂單記錄

這個範例會從 Order 實體刪除指定訂單。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Order。
  3. 選取 Delete 作業,然後按一下「完成」。
  4. 輸入要刪除訂單的實體 ID。

    在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入 475009571483E15。

範例 - 新增顧客

這個範例會將指定客戶新增至 Customer 實體。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Customer。
  3. 選取 Create 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "FirstName": "Test",
    "LastName": "Customer5"
    }

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數中會傳回類似下列內容的回應:

    {
    "Id": 6448083206296
    }

範例 - 在 DiscountCode 中建立記錄

這個範例會在 DiscountCode 實體中建立新記錄。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 DiscountCode。
  3. 選取 Create 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 部分中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "PriceRuleId": 1.394097291568E12,
    "Code": "FREESHIP2025798"
    }

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
    "Id": 1.97836790828E13,
    "PriceRuleId": null
    }

範例 - 在 Pricerule 中建立記錄

這個範例會在 Pricerule 實體中建立新記錄。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Pricerule。
  3. 選取 Create 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Id": 7.13459564696E11,
    "AllocationMethod": "each",
    "CustomerSelection": "all",
    "TargetType": "line_item",
    "UsageLimit": 100.0,
    "Title": "DP_PriceRule"
    }

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
    "Id": 197836790834,
    "PriceRuleId": null
    }

範例 - 在 ProductVariant 中建立記錄

這個範例會在 ProductVariant 實體中建立新記錄。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 ProductVariant。
  3. 選取 Create 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "Id": 1070325065,
    "ProductId": 7652181016728,
    "ImageId": null,
    "Price": 1,
    "CompareAtPrice": null,
    "Title": "Yellow",
    "Barcode": null,
    "FulfillmentService": "manual",
    "InventoryManagement": "shopify",
    "InventoryPolicy": "deny",
    "InventoryQuantity": 1070325069,
    "Option1": "Yellow",
    "Option2": null,
    "Option3": null,
    "Position": 5,
    "Sku": "",
    "Taxable": true
    }

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
    "Id": 42711984373912
    }

範例 - 在「Order」中建立記錄

這個範例會在 Order 實體中建立新訂單。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Order。
  3. 選取 Create 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
      "Currency": "USD",
      "Email": "john.doe@example.com",
      "LineAggregate": "[{\"variant_id\": 34601695641752, \"quantity\": 1, \"price\": \"50.00\"}]",
      "FinancialStatus": "paid"
    }

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
    "OrderId": 39121984427137
    }

範例 - 在「退款」中建立記錄

這個範例會在 Refund 實體中建立退款。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Refund。
  3. 選取 Create 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
      {
      "OrderId": 2650438107288,
      "OrderTransactionAggregate": "[{\"amount\": \"15.00\", \"kind\": \"refund\", \"status\": \"success\"}]"
    }

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
    "OrderId": 2650438107288
    }

範例 - 更新顧客詳細資料

這個範例會更新 Customer 實體中指定客戶的詳細資料。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 Customer。
  3. 選取 Update 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "FirstName": "Test",
    "LastName": "Customer2"
    }
  5. 輸入要刪除的顧客實體 ID。

    在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入 648400653532。

    或者,您也可以將 filterClause 設為 648400653532,而非指定 entityId。

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
    "Id": 648400653532
    }

範例 - 更新 ProductVariant 中的記錄

這個範例會更新 ProductVariant 實體中的記錄。

  1. 在 Configure connector task 對話方塊中,按一下 Entities。
  2. 從 Entity 清單中選取 ProductVariant。
  3. 選取 Update 作業,然後按一下「完成」。
  4. 在「Connectors」(連結器) 任務的「Task Input」(任務輸入內容) 區段中,按一下 connectorInputPayload,然後在 Default Value 欄位中輸入類似下列的值:
    {
    "ProductId": 7.652181016728E12,
    "ImageId": null,
    "Price": 200.0,
    "CompareAtPrice": null,
    "Title": "Yellow Updated",
    "Barcode": null,
    "FulfillmentService": "manual",
    "InventoryManagement": "shopify",
    "InventoryQuantity": 1.070325069E9,
    "Option1": "Yellow new",
    "Option2": null,
    "Option3": null,
    "Position": 5.0,
    "Sku": "",
    "Taxable": true
    }
  5. 指定要更新的記錄實體 ID。

    如要設定實體 ID,請按一下「entityId」,然後在「Default Value」(預設值) 欄位中輸入 34601602744472。

    執行這個範例後,連接器工作 connectorOutputPayload 輸出變數會傳回類似下列內容的回應:

    {
    "Id": 2484258073471
    }

使用 Terraform 建立連線

您可以使用 Terraform 資源建立新連線。

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

如要查看用於建立連線的 Terraform 範本範例,請參閱範本範例。

使用 Terraform 建立這項連線時,您必須在 Terraform 設定檔中設定下列變數:

參數名稱 資料類型 必填 說明
max_points_per_call STRING 否 指定通話費用點數。
schema_v23 ENUM 否 指定要連線的 Shopify 伺服器版本。支援的值包括:REST-2023-04、REST-2023-07、GRAPHQL-2023-04、GRAPHQL-2023-07
proxy_enabled BOOLEAN 否 選取這個核取方塊,即可為連線設定 Proxy 伺服器。
proxy_auth_scheme ENUM 否 用來向 ProxyServer 代理伺服器進行驗證的驗證類型。支援的值包括:BASIC、DIGEST、NONE
proxy_user STRING 否 用於向 ProxyServer 代理程式驗證的使用者名稱。
proxy_password SECRET 否 用於向 ProxyServer Proxy 驗證身分的密碼。
proxy_ssltype ENUM 否 連線至 ProxyServer Proxy 時要使用的 SSL 類型,支援的值包括:AUTO、ALWAYS、NEVER、TUNNEL

在整合中連結 Shopify

建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。

  • 如要瞭解如何在 Apigee Integration 中建立及使用「連接器」工作,請參閱「連接器工作」。
  • 如要瞭解如何在 Application Integration 中建立及使用連接器工作,請參閱「連接器工作」。

向 Google Cloud 社群尋求協助

如要發布問題及討論這個連接器,請前往 Cloud 論壇的 Google Cloud 社群。

後續步驟