DOCS

Rules

Advanced rules

COMING SOON

Zonosはrulesを使用して、アカウントでの計算方法を高度にカスタマイズできます。Rulesは、計算の異なる部分にbuffersを追加したり、feesをカスタマイズしたりするなどに使用できます。Zonosがrulesを処理する方法の完全な内訳(すべての可能なrule typesのリストを含む)については、rules breakdown docをご覧ください。RulesはZonos DashboardまたはGraphQL API経由で管理できます。

Important: Rulesはadvanced featureであり、誤用するとZonosの動作と計算方法にさまざまな意図しない結果を招く可能性があります。

Dashboard内でrulesを管理するには:

  1. Zonos Dashboard accountにログインします。
  2. Settings -> Rules に移動します。

「Rules」pageでは、Zonos accountに関連付けられたすべてのrulesを表示し、rulesをフィルタリングし、迅速に有効化または無効化できます。

Dashboard内で新しいruleを作成するには:

  1. Zonos Dashboard accountにログインします。
  2. Settings -> rules に移動します。
  3. Create rule をクリックします。
  4. 後で識別できるようruleに名前を追加します。これらはorganization内のteam membersにのみ表示されます。
  5. 以下の「rule conditionを指定する」セクションの手順に従い、ruleにconditionを追加します。
  6. 以下の「rule actionを指定する」セクションの手順に従い、ruleにactionを追加します。
  7. 任意で、追加のcontext用にcommentを追加できます。これらはorganization内のteam membersにのみ表示されます。
  8. 以下の手順に従い、ruleの特定のstart dateおよび/またはend dateを追加します(optional)。
  9. ruleを Enabled または Disabled に設定します。
  10. Save をクリックします。

start dateとend dateを指定する

Rulesには任意でstart date、end date、または両方を設定できます。Start dateとend dateは、ruleがいつどのようにactiveになるかを制御し、seasonal discountsやその他のtime-sensitive situationsなど、特定の期間のみactiveなrulesを作成するために使用できます。

ruleの動作

日付動作
Start dateとend dateRuleは指定されたstart dateとend dateの間activeになります。
Start dateのみ、end dateなしRuleは指定されたstart date以降activeになり、手動で無効化する必要があります。
Start dateもend dateもなしRuleは手動で無効化されない限り、常にactiveです。

rule conditionを指定する

すべてのruleには、適用対象とrule実行時に利用可能なvariablesを決定するconditionの指定が必要です。つまり、conditionはruleが実行されるかどうか、およびいつを決定します。異なるconditionsには異なるoptionsが利用可能です。

例えば、「Shipping carrier」をconditionとして選択すると、conditionの一部としてどの carrierを選択できるようになり、特定のcarrierのみにbufferを設定する場合などに使用できます。

各ruleは1つのconditionのみをサポートし、「else if」、「and/or」などの複雑なlogicはサポートしません。rulesを連鎖させたい場合は、1つの巨大で複雑なruleではなく、複数のrulesで同じlogicを実現する方法を検討するのが最善です。

rule actionを指定する

ruleのactionは、conditionが満たされたときに実行される内容です。conditionsと同様に、さまざまなactionsが可能で、それぞれ異なるoptionsがあります。

例えば、特定のshipping carrierのみにbufferを追加したい場合、actionを「apply a buffer」に設定し、bufferのamountと適用対象を入力します。ruleのconditionで指定することにより、bufferが適用されるcarrierを正確に制御できます。

conditionsと同様に、各ruleは1つのactionのみをサポートします。複数のactionsが必要な場合は、1つの巨大で複雑なruleではなく、複数のrulesで同じlogicを実現する方法を検討するのが最善です。

システムの仕組み上、rulesをその場で更新することはできません。どの状況でどのrulesが適用され、実行時にruleが何をしたかの追跡可能な履歴を保持する必要があるためです。代わりに、ruleをarchiveして再作成し、変更した値を渡すことで、事実上ruleの「update」を実現できます。

以下の例のmutationは、ruleArchiveruleCreate mutationsを組み合わせてこの動作を実現する方法を示しています:

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}

追加後、rulesは簡単に有効化または無効化して、計算に影響するかどうかを決定できます。ruleを手動で有効化または無効化すると、rule内のstart dateとend dateベースのlogicを上書きします。

Rulesは「Edit a rule」screenから1件ずつ、または「All rules」screenの各rule横のチェックボックスを使用して一括で有効化または無効化できます。

rulesの処理に役立つglobal queriesを提供しています。rulesの仕組みの発見、rules上にUIを構築するなどに便利です。これらはすべてのユーザーに適用され、organization固有ではなく、利便性のために提供されています。このqueryは、rulesが属する可能性のあるすべてのcontextsのリストを返します。Rule contextは、ruleがいつ実行され、どのvariablesが利用可能かを決定します。

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

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