DOCS

Managing rules

/

Avancerade regler

KOMMER SNART

Zonos stöder avancerad anpassning av hur beräkningar sker i ditt konto genom användning av regler. Regler kan användas för att lägga till buffertar till olika delar av beräkningen, anpassa avgifter och mer. För en fullständig genomgång av hur Zonos hanterar regler, inklusive en lista över alla möjliga regeltyper, se vårt dokument om regler. Regler kan hanteras via Zonos Dashboard eller genom GraphQL API.

Viktigt: Regler är en avancerad funktion, och felaktig användning kan orsaka en mängd oönskade konsekvenser för hur Zonos beter sig och beräknar för dig.

Visa regler

Dashboard
GraphQL

För att hantera regler inom Dashboard:

  1. Logga in på ditt Zonos Dashboard konto.
  2. Navigera till Inställningar -> Regler.

På sidan "Regler" kan du se alla regler kopplade till ditt Zonos konto, filtrera regler och snabbt aktivera eller inaktivera regler.

Regler

Skapa regler

Dashboard
GraphQL

För att skapa en ny regel inom Dashboard:

  1. Logga in på ditt Zonos Dashboard konto.
  2. Navigera till Inställningar -> regler.
  3. Klicka på Skapa regel.
  4. Lägg till ett namn på din regel så att du kan identifiera den senare. Dessa är endast synliga för teammedlemmar i din organisation.
  5. Följ stegen i avsnittet “Specificera regelvillkor” nedan för att lägga till ett villkor till din regel.
  6. Följ stegen i avsnittet “Specificera regelåtgärd” nedan för att lägga till en åtgärd till din regel.
  7. Valfritt, du kan lägga till en kommentar för ytterligare sammanhang. Dessa är endast synliga för teammedlemmar i din organisation.
  8. Följ stegen nedan för att lägga till ett specifikt start- och/eller slutdatum för din regel (valfritt).
  9. Antingen ställ in din regel som Aktiverad eller Inaktiverad.
  10. Klicka på Spara.

Specificera start- och slutdatum

Regler kan valfritt ha ett startdatum, ett slutdatum, eller båda. Start- och slutdatum styr när och hur din regel blir aktiv och kan användas för att skapa regler som endast är aktiva under specifika perioder, såsom säsongsrabatter eller andra tidskänsliga situationer.

Regelbeteende

DatumBeteende
Start- och slutdatumRegler kommer att vara aktiva mellan det angivna start- och slutdatumet.
Endast ett startdatum, inget slutdatumRegler kommer att bli aktiva efter det angivna startdatumet och måste inaktiveras manuellt.
Inga start- eller slutdatumRegler kommer alltid att vara aktiva om de inte inaktiveras manuellt.

Specificera regelvillkor

Varje regel kräver att ett villkor specificeras för att avgöra vad det gäller och vilka variabler som är tillgängliga vid tidpunkten då regeln körs. Med andra ord, villkoret avgör om regeln ska köras överhuvudtaget och när. Olika villkor har olika alternativ tillgängliga.

Till exempel, om du väljer “Fraktleverantör” som villkor, tillåter det dig att dessutom välja vilken leverantör som ingår i villkoret, vilket du kan använda om du ställer in en buffert för endast en specifik leverantör.

Regler stöder endast ett villkor vardera, och stöder inte komplex logik som “annars om”, “och/eller”, eller liknande termer. Om du vill kedja regler, är det bäst att tänka på hur du kan uppnå samma logik med flera regler jämfört med en stor, komplex regel.

Specificera regelåtgärd

En regels åtgärd är vad som händer när dess villkor uppfylls. Precis som villkor finns det en mängd olika åtgärder möjliga, var och en med olika alternativ.

Till exempel, om du ville lägga till en buffert för endast en specifik fraktleverantör, skulle du ställa in åtgärden till “tillämpa en buffert” och ange beloppet för din buffert och vad den gäller. Du kan sedan kontrollera vilken leverantör exakt bufferten gäller för genom att specificera det i regeln villkor.

Precis som villkor stöder regler endast en åtgärd vardera. Om du vill ha flera åtgärder, är det bäst att tänka på hur du kan uppnå samma logik med flera regler jämfört med en stor, komplex regel.

Uppdatera regler

Att uppdatera regler som är på plats är inte möjligt med hur vårt system fungerar. Detta beror på att vi behöver hålla en spårbar historik över vilka regler som tillämpades i vilka situationer och vad regeln gjorde när den kördes. Alternativt kan du arkivera och återskapa en regel, och skicka in de ändrade värdena, vilket effektivt uppnår en "uppdatering" av regeln.

Detta exempel på mutation visar hur du kan kombinera mutationerna ruleArchive och ruleCreate för att uppnå detta beteende:

Mutation

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

Variabler

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

Arkiveringsregler

Instrumentpanel
GraphQL

När regler har lagts till kan de enkelt aktiveras eller inaktiveras för att avgöra om de ska påverka dina beräkningar. Att manuellt aktivera eller inaktivera en regel kommer att åsidosätta all logik baserad på start- och slutdatum som finns inom regeln.

Regler kan aktiveras eller inaktiveras en och en från “Redigera en regel” screen, eller i bulk genom att använda kryssrutorna bredvid varje regel på “Alla regler” screen.

Lista alla möjliga regelkontexter

Vi erbjuder några globala frågor för att hantera regler som är användbara för att upptäcka hur regler fungerar under huven, skapa användargränssnitt ovanpå regler, etc. Dessa gäller för alla användare, är inte organisationsspecifika och erbjuds för bekvämlighet. Denna fråga returnerar en lista över alla möjliga kontexter som regler kan tillhöra. En regelkontext avgör när en regel körs och vilka variabler som är tillgängliga.

Fråga

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

Svar

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

Var den här sidan hjälpsam?