DOCS

Managing rules

/

高级规则

即将推出

Zonos 支持通过使用规则来高级自定义您账户中的计算方式。规则可以用于为计算的不同部分添加缓冲区、自定义费用等。有关 Zonos 如何处理规则的完整说明,包括所有可能的规则类型列表,请参阅我们的规则分解文档。规则可以通过 Zonos 仪表板 或通过 GraphQL API 进行管理。

重要: 规则是一个高级功能,误用可能会导致 Zonos 的行为和计算出现各种意想不到的后果。

查看规则

仪表板
GraphQL

要在仪表板中管理规则:

  1. 登录到您的 Zonos 仪表板 账户。
  2. 导航到 设置 -> 规则

在“规则”页面,您可以查看与您的 Zonos 账户相关的所有规则,过滤规则,并快速启用或禁用规则。

创建规则

仪表板
GraphQL

要在仪表板中创建新规则:

  1. 登录到您的 Zonos 仪表板 账户。
  2. 导航到 设置 -> 规则
  3. 点击 创建规则
  4. 为您的规则添加一个名称,以便您以后可以识别它。这些名称仅对您组织中的团队成员可见。
  5. 按照下面“指定规则条件”部分中的步骤为您的规则添加条件。
  6. 按照下面“指定规则操作”部分中的步骤为您的规则添加操作。
  7. 可选地,您可以添加评论以提供额外的上下文。这些评论仅对您组织中的团队成员可见。
  8. 按照下面的步骤为您的规则添加特定的开始和/或结束日期(可选)。
  9. 将您的规则设置为 启用禁用
  10. 点击 保存

指定开始和结束日期

规则可以选择性地具有开始日期、结束日期或两者。开始和结束日期控制规则何时以及如何生效,并可用于创建仅在特定时间段内有效的规则,例如季节性折扣或其他时间敏感的情况。

规则行为

日期行为
开始和结束日期规则将在指定的开始和结束日期之间有效。
仅有开始日期,没有结束日期规则将在指定的开始日期后生效,必须手动禁用。
没有开始或结束日期规则将始终有效,除非手动禁用。

指定规则条件

每个规则都需要指定一个条件,以确定其适用范围以及在规则运行时可用的变量。换句话说,条件决定了规则是否应该运行以及何时运行。不同的条件有不同的可用选项。

例如,如果您选择“运输承运人”作为条件,它允许您额外选择属于该条件的 哪个 承运人,这在您为特定承运人设置缓冲时可能会用到。

规则每个只支持一个条件,并且不支持复杂逻辑,例如“否则如果”、“与/或”或类似术语。如果您想要链接规则,最好考虑如何通过多个规则实现相同的逻辑,而不是一个庞大复杂的规则。

指定规则操作

规则的操作是在条件满足后发生的事情。与条件一样,有多种可能的操作,每种操作都有不同的选项。

例如,如果您想要仅为特定运输承运人添加缓冲,您可以将操作设置为“应用缓冲”,并输入缓冲的金额及其适用范围。然后,您可以通过在规则的条件中指定来控制缓冲具体适用于哪个承运人。

与条件一样,规则每个只支持一个操作。如果您想要多个操作,最好考虑如何通过多个规则实现相同的逻辑,而不是一个庞大复杂的规则。

更新规则

由于我们的系统工作方式,无法在现有规则中进行更新。这是因为我们需要保持可追溯的历史记录,以了解哪些规则在何种情况下被应用,以及规则在运行时所做的事情。作为替代方案,您可以归档并重新创建规则,传入更改的值,从而有效地实现对规则的“更新”。

此示例变更显示了您如何结合 ruleArchiveruleCreate 变更来实现此行为:

变更

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

变量

1
2
3
4
5
6
7
8
{
  "ruleId": "rule_935ee1ca-0c4d-4147-826a-1cb0894d9f43",
  "action": "amount = amount + 5 % amount",
  "condition": "ship_to_country == CA",
  "context": "SHIPMENT_RATING_BUFFER",
  "description": "test",
  "name": "test"
}

存档规则

仪表板
GraphQL

一旦添加,规则可以轻松启用或禁用,以确定它们是否应影响您的计算。手动启用或禁用规则将覆盖规则中包含的任何基于开始和结束日期的逻辑。

可以通过“编辑规则” screen 单独启用或禁用规则,或通过使用“所有规则” screen 中每个规则旁边的复选框批量处理。

列出所有可能的规则上下文

我们提供了一些用于处理规则的全局查询,这些查询对于发现规则的工作原理、在规则之上创建用户界面等非常有用。这些适用于所有用户,不特定于任何组织,并且是为了方便而提供的。此查询返回所有可能的规则上下文的列表,规则上下文决定了规则何时运行以及可用的变量是什么。

查询

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

响应

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{
  "data": {
    "ruleContexts": [
      {
        "name": "SHIPMENT_RATING_BUFFER",
        "context": "buffer",
        "variables": [
          {
            "ruleTokenType": "MONEY",
            "value": "amount"
          },
          {
            "ruleTokenType": "NUMBER",
            "value": "item_count"
          },
          {
            "ruleTokenType": "MONEY",
            "value": "items_total"
          },
          {
            "ruleTokenType": "COUNTRY",
            "value": "ship_from_country"
          },
          {
            "ruleTokenType": "COUNTRY",
            "value": "ship_to_country"
          },
          {
            "ruleTokenType": "WEIGHT",
            "value": "weight"
          },
          {
            "ruleTokenType": "STRING",
            "value": "service_level"
          },
          {
            "ruleTokenType": "STRING",
            "value": "carrier"
          }
        ]
      }
    ]
  }
}

这个页面有帮助吗?


有问题吗?

联系我们。
在本页上: