預覽 Shopify Flow 中使用的 API 資料

大多數工作流程都會存取您的商店資料,以便在條件與動作中使用。Shopify Flow 透過呼叫 GraphQL Admin API 存取商店資料,讓您幾乎可以使用該 API 中的所有欄位。

建立工作流程時,您常會看到以 API 為基礎的欄位名稱與說明,但您可能還需要知道這些資料的實際值。例如,您可能想知道某筆由訂單草稿建立的訂單,其 app 名稱為何。此外,您也可能想確認工作流程輸出的資料是否符合預期,或其格式是否符合預期。

在 Shopify Flow 中,您有多種方式可檢視資料的值。

在 Shopify 管理介面中尋找欄位

大多數情況下,您可以在 Shopify 管理介面中找到資料。例如,product.title 會列於「商品」頁面。

取得範例資料

建立工作流程時,您可以直接在 Flow 編輯器中取得範例資料。由於 Flow 的資料來自事件,為了取得準確的範例資料,您必須先選擇相關的事件:

  1. 在 Flow 編輯器中,開啟您要使用資料的動作,並點選「新增變數」。或是在條件中,點選「新增條件」。
  2. 點選「設定範例資料」。
  3. Flow 會依據該工作流程的觸發條件顯示過去的事件。點選「重新整理事件」以擷取最近執行的事件,或點選「開始監聽即時事件」,接著在管理介面或相關 app 中手動觸發該事件 (針對以 app 為基礎的觸發條件)。
  4. 事件發生後,Flow 會顯示該事件的詳情。選取您要用來取得範例資料的事件,點選「使用此觸發事件」。
  5. 接著當您瀏覽事件時,各變數都應會顯示範例資料。

限制:

  • 受版面限制,Flow 在清單中的資料只會顯示第一個項目。
  • 每個工作流程一次最多儲存 5 個事件。
  • 對於部分觸發條件,Flow 無法擷取最近執行的事件,例如:排程時間、metaobject 條目已建立、顧客加入分群或顧客離開分群。

在實際工作流程中使用欄位

您可以透過使用「記錄輸出」動作,在工作流程中安全地使用這些欄位。當您執行工作流程時,「記錄輸出」動作會將任何變數與文字的輸出到「執行記錄」頁面。您也可以使用通知類型的動作,例如「傳送內部電子郵件」。

使用「記錄輸出」的步驟:

  1. 選擇可手動觸發的觸發條件。
  2. 在工作流程中新增「記錄輸出」動作,並將其連接至該觸發條件。
  3. 在「記錄輸出」的設定中,點選「新增變數」,將您想檢視的變數加入「輸出」區段。
  4. 完成後,點選「啟用工作流程」。
  5. 觸發該工作流程,您可以手動執行,或讓觸發條件生效。例如,若您使用「訂單已建立」觸發條件,請建立一筆測試訂單。
  6. 工作流程執行後,請在活動記錄中檢視這些變數。

參考資源的 JSON 頁面

Shopify 管理介面中的多數資源頁面,例如「訂單」、「商品」或「顧客」頁面,都可讓您檢視用來呈現該頁面的資料。這些資料的命名與格式與 Shopify Flow 不完全相同,但其值與 GraphQL Admin API 的內容一致。若要檢視資料,請在網址後加上 .json

例如,在 Shopify 管理介面前往「訂單」頁面並點選某筆訂單。在瀏覽器的位址列中,將該頁面的網址從:

https://https://admin.shopify.com/store/<shopname>/orders/3804849891234

變更為:

https://https://admin.shopify.com/store/<shopname>/orders/3804849891234.json

使用 GraphiQL 或第三方 API 工具

您可以使用第三方 API 工具 (如 Postman) 或 Shopify 提供的免費工具 GraphiQL,直接查詢 API。此作法能提供最精準的結果,但需要熟悉撰寫 GraphQL 查詢。

針對 GraphiQL,Shopify 提供兩種選項:包含通用資料的網頁版 GraphiQL explorer,以及GraphiQL app。透過 GraphiQL,您可以建立與 Shopify Flow 欄位名稱完全一致的 GraphQL 查詢。若您使用該 app,其值也會與您的商店完全一致。

使用這些工具,您可以用商店的真實資料,精準判定 Shopify Flow 使用的資料。例如,您可以建立以下查詢:

{
  orders(first:5, reverse:true) {
    nodes {
      createdAt
      app {
        name
      }
      channelInformation {
        app {
          title
        }
      }
    }
  }
}

在下列結果中,變數 order / app / name 會顯示該訂單的 app 名稱。本例中,該訂單是由訂單草稿 app 建立,因此其值為 Draft Orders。管道資訊僅適用於 Point of Sale app。

{
  "data": {
    "orders": {
      "nodes": [
        {
          "createdAt": "2023-04-10T12:32:41Z",
          "app": {
            "name": "Draft Orders"
          },
          "channelInformation": null
        },
        {
          "createdAt": "2023-04-10T12:29:12Z",
          "app": {
            "name": "Draft Orders"
          },
          "channelInformation": null
        },
        {
          "createdAt": "2023-03-17T20:23:10Z",
          "app": {
            "name": "Draft Orders"
          },
          "channelInformation": null
        },
        {
          "createdAt": "2023-03-17T20:20:53Z",
          "app": {
            "name": "Draft Orders"
          },
          "channelInformation": null
        },
        {
          "createdAt": "2023-03-17T15:45:15Z",
          "app": {
            "name": "Point of Sale"
          },
          "channelInformation": {
            "app": {
              "title": "Point of Sale"
            }
          }
        }
      ]
    }
  }