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. 保存 をクリックします。

開始日と終了日の指定

ルールにはオプションで開始日、終了日、またはその両方を設定できます。開始日と終了日は、ルールがアクティブになる時期と方法を制御し、季節割引やその他の時間に敏感な状況のためにのみアクティブなルールを作成するために使用できます。

ルールの動作

日付動作
開始日と終了日ルールは指定された開始日と終了日の間にアクティブになります。
開始日のみ、終了日なしルールは指定された開始日の後にアクティブになり、手動で無効にする必要があります。
開始日も終了日もなしルールは手動で無効にされない限り、常にアクティブです。

ルール条件の指定

すべてのルールには、適用対象とルールが実行される時点で利用可能な変数を決定するために条件を指定する必要があります。言い換えれば、条件はルールが実行されるべきかどうか、またそのタイミングを決定します。異なる条件には異なるオプションが用意されています。

たとえば、「配送業者」を条件として選択すると、条件の一部として どの 業者を選択するかを追加で選択でき、特定の業者のためにバッファを設定する場合に使用できます。

ルールはそれぞれ1つの条件のみをサポートし、「else if」、「and/or」などの複雑なロジックはサポートしていません。複数のルールを連鎖させたい場合は、1つの巨大で複雑なルールと比較して、複数のルールで同じロジックをどのように達成できるかを考えるのが最善です。

ルールアクションの指定

ルールのアクションは、条件が満たされたときに何が起こるかです。条件と同様に、さまざまなアクションが可能で、それぞれ異なるオプションがあります。

たとえば、特定の配送業者にのみバッファを追加したい場合は、アクションを「バッファを適用」に設定し、バッファの金額とそれが適用されるものを入力します。次に、ルールの条件でそれを指定することによって、バッファが正確にどの業者に適用されるかを制御できます。

条件と同様に、ルールはそれぞれ1つのアクションのみをサポートします。複数のアクションが必要な場合は、1つの巨大で複雑なルールと比較して、複数のルールで同じロジックをどのように達成できるかを考えるのが最善です。

ルールの更新

私たちのシステムの仕組み上、ルールを更新することはできません。これは、どのルールがどの状況で適用され、実行されたときにそのルールが何をしたのかの追跡可能な履歴を保持する必要があるためです。代わりに、ルールをアーカイブして再作成し、変更された値を渡すことで、実質的にルールの「更新」を達成することができます。

この例のミューテーションは、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から1つずつ有効または無効にすることができ、または「すべてのルール」screenの各ルールの横にあるチェックボックスを使用して一括で行うことができます。

すべての可能なルールコンテキストをリストアップする

ルールの動作を理解したり、ルールの上にUIを作成したりするのに役立つグローバルクエリをいくつか提供しています。これらはすべてのユーザーに適用され、組織特有のものではなく、便利さのために提供されています。このクエリは、ルールが属するすべての可能なコンテキストのリストを返します。ルールコンテキストは、ルールが実行されるタイミングと、利用可能な変数を決定します。

クエリ

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"
          }
        ]
      }
    ]
  }
}

このページは役に立ちましたか?


このページには: