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_orderswrite_ordersread_fulfillments
    • 廣告空間和產品: read_productsread_inventory
    • 客戶資料: read_customers

    最低範圍:如果您不確定要執行哪些特定動作,建議先從 read_productsread_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 社群。

後續步驟