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を管理するには:
「Rules」pageでは、Zonos accountに関連付けられたすべてのrulesを表示し、rulesをフィルタリングし、迅速に有効化または無効化できます。
Dashboard内で新しいruleを作成するには:
Rulesには任意でstart date、end date、または両方を設定できます。Start dateとend dateは、ruleがいつどのようにactiveになるかを制御し、seasonal discountsやその他のtime-sensitive situationsなど、特定の期間のみactiveなrulesを作成するために使用できます。
すべての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は、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は、ruleArchiveとruleCreate mutationsを組み合わせてこの動作を実現する方法を示しています:
ruleArchive
ruleCreate
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
追加後、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が利用可能かを決定します。
query {
ruleContexts {
name
variables {
ruleTokenType
value
Rules
Advanced rules
COMING SOON
Zonosはrulesを使用して、アカウントでの計算方法を高度にカスタマイズできます。Rulesは、計算の異なる部分にbuffersを追加したり、feesをカスタマイズしたりするなどに使用できます。Zonosがrulesを処理する方法の完全な内訳(すべての可能なrule typesのリストを含む)については、rules breakdown docをご覧ください。RulesはZonos DashboardまたはGraphQL API経由で管理できます。
rulesを表示する
Dashboard内でrulesを管理するには:
「Rules」pageでは、Zonos accountに関連付けられたすべてのrulesを表示し、rulesをフィルタリングし、迅速に有効化または無効化できます。
rulesを作成する
Dashboard内で新しいruleを作成するには:
start dateとend dateを指定する
Rulesには任意でstart date、end date、または両方を設定できます。Start dateとend dateは、ruleがいつどのようにactiveになるかを制御し、seasonal discountsやその他のtime-sensitive situationsなど、特定の期間のみactiveなrulesを作成するために使用できます。
ruleの動作
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をその場で更新することはできません。どの状況でどのrulesが適用され、実行時にruleが何をしたかの追跡可能な履歴を保持する必要があるためです。代わりに、ruleをarchiveして再作成し、変更した値を渡すことで、事実上ruleの「update」を実現できます。
以下の例のmutationは、
ruleArchiveとruleCreatemutationsを組み合わせてこの動作を実現する方法を示しています:mutation ruleUpdate($ruleId: ID!$action: String!$condition: String!$context: String!$description: String!$name: String!) {ruleArchive(id: $ruleId)ruleCreate(input: {action: $actioncondition: $conditioncontext: $contextname: $namedescription: $description}) {idactioncontextcondition}}rulesをarchiveする
追加後、rulesは簡単に有効化または無効化して、計算に影響するかどうかを決定できます。ruleを手動で有効化または無効化すると、rule内のstart dateとend dateベースのlogicを上書きします。
Rulesは「Edit a rule」screenから1件ずつ、または「All rules」screenの各rule横のチェックボックスを使用して一括で有効化または無効化できます。
すべての可能なrule contextsを一覧する
rulesの処理に役立つglobal queriesを提供しています。rulesの仕組みの発見、rules上にUIを構築するなどに便利です。これらはすべてのユーザーに適用され、organization固有ではなく、利便性のために提供されています。このqueryは、rulesが属する可能性のあるすべてのcontextsのリストを返します。Rule contextは、ruleがいつ実行され、どのvariablesが利用可能かを決定します。
query {ruleContexts {namecontextvariables {ruleTokenTypevalue}}}このページは役に立ちましたか?