進階規則

即將推出

Zonos 支援透過規則進階自訂帳戶內的計算方式。規則可用於在計算的不同部分新增緩衝值、自訂費用等。如欲全面瞭解 Zonos 如何處理規則(包括所有可能的規則類型清單),請參閱我們的規則分類文件。規則可透過 Zonos 儀表板或 GraphQL API 進行管理。

重要事項: 規則是進階功能,使用不當可能會導致 Zonos 的行為和計算方式出現各種意想不到的後果。

若要在儀表板內管理規則,請執行下列步驟:

  1. 登入您的 Zonos 儀表板帳戶。
  2. 瀏覽至設定 -> 規則

在「規則」頁面上,您可以查看與 Zonos 帳戶相關聯的所有規則、篩選規則,並快速啟用或停用規則。

若要在儀表板內建立新規則,請執行下列步驟:

  1. 登入您的 Zonos 儀表板帳戶。
  2. 瀏覽至設定 -> 規則
  3. 按一下建立規則
  4. 為規則新增名稱,以便稍後識別。這些名稱只對組織內的團隊成員可見。
  5. 按照下方「指定規則條件」一節中的步驟,為規則新增條件。
  6. 按照下方「指定規則動作」一節中的步驟,為規則新增動作。
  7. (選用) 您可以新增備註以提供額外內容。這些備註只對組織內的團隊成員可見。
  8. 按照下方步驟為規則新增特定的開始日期和/或結束日期 (選用)。
  9. 將規則設定為啟用停用
  10. 按一下儲存

指定開始和結束日期

規則可以選擇有開始日期、結束日期或兩者。開始和結束日期可控制規則何時變為有效,並可用於建立僅在特定時期內有效的規則,例如季節性折扣或其他時間敏感的情況。

規則行為

日期行為
開始和結束日期規則會在指定的開始和結束日期之間有效。
僅限開始日期,無結束日期規則會在指定的開始日期後變為有效,並且必須手動停用。
無開始或結束日期規則一律有效,除非手動停用。

指定規則條件

每條規則都需要指定條件,以決定其適用的項目及規則執行時可用的變數。換言之,條件決定規則是否應該執行及何時執行。不同的條件有不同的可用選項。

例如,如果選擇「運送業者」作為條件,可以進一步選擇哪個業者是條件的一部分,如果只是為特定業者設定緩衝值,可能會用到此項。

規則每個僅支援一個條件,並且不支援複雜邏輯,例如「else if」、「and/or」或類似術語。如果要鏈結規則,最好考慮如何透過多條規則而非一條複雜的規則實現相同的邏輯。

指定規則動作

規則的動作是在滿足其條件後發生的情況。與條件類似,有各種可能的動作,每個都有不同的選項。

例如,如果想要只為特定的運送業者新增緩衝值,您可以將動作設定為「套用緩衝值」,並輸入緩衝值的金額及其適用範圍。然後,您可以透過在規則的條件中指定該項目來控制緩衝值適用的確切業者。

與條件類似,規則每個僅支援一個動作。如果要多個動作,最好考慮如何透過多條規則而非一條複雜的規則實現相同的邏輯。

在系統的運作方式中,不可能就地更新規則。這是因為我們需要保持可追蹤的歷史記錄,記錄在哪些情況下應用了哪些規則,以及規則執行時執行的作業。或者,您可以封存並重新建立規則,並傳入變更的值,有效地實現對規則的「更新」。

此範例突變展示瞭如何組合 ruleArchiveruleCreate 突變以實現此行為:

1mutation ruleUpdate(
2$ruleId: ID!
3$action: String!
4$condition: String!
5$context: String!
6$description: String!
7$name: String!
8) {
9 ruleArchive(id: $ruleId)
10 ruleCreate(
11 input: {
12 action: $action
13 condition: $condition
14 context: $context
15 name: $name
16 description: $description
17 }
18 ) {
19 id
20 action
21 context
22 condition
23 }
24}

新增規則後,可以輕鬆啟用或停用規則來決定它們是否應影響計算。手動啟用或停用規則會覆蓋規則中包含的任何開始和結束日期型邏輯。

可以逐一從「編輯規則」畫面或使用「所有規則」畫面上每條規則旁邊的核取方塊來批量啟用或停用規則。

我們為處理規則提供了一些全域查詢,這對於瞭解規則在幕後的運作方式、在規則上建立 UI 等都很有用。這些適用於所有使用者,不受特定組織限制,並為了方便而提供。此查詢會傳回規則可以屬於的所有可能內容的清單。規則內容決定了規則何時執行及有哪些變數可用。

1query {
2 ruleContexts {
3 name
4 context
5 variables {
6 ruleTokenType
7 value
8 }
9 }
10}