DOCS

Managing rules

/

Avancerede regler

KOMMER SNART

Zonos understøtter avanceret tilpasning af, hvordan beregninger udføres i din konto gennem brug af regler. Regler kan bruges til at tilføje buffere til forskellige dele af beregningen, tilpasse gebyrer og mere. For en fuld gennemgang af, hvordan Zonos håndterer regler, inklusive en liste over alle mulige regletype, se vores dokument om regler. Regler kan administreres via Zonos Dashboard eller gennem GraphQL API.

Vigtigt: Regler er en avanceret funktion, og misbrug kan forårsage en række utilsigtede konsekvenser for, hvordan Zonos opfører sig og beregner for dig.

Vis regler

Dashboard
GraphQL

For at administrere regler inden for Dashboard:

  1. Log ind på din Zonos Dashboard konto.
  2. Naviger til Indstillinger -> Regler.

På siden “Regler” kan du se alle regler, der er knyttet til din Zonos konto, filtrere regler og hurtigt aktivere eller deaktivere regler.

Opret regler

Dashboard
GraphQL

For at oprette en ny regel inden for Dashboardet:

  1. Log ind på din Zonos Dashboard konto.
  2. Naviger til Indstillinger -> regler.
  3. Klik på Opret regel.
  4. Tilføj et navn til din regel, så du kan identificere den senere. Disse er kun synlige for teammedlemmer i din organisation.
  5. Følg trinene i afsnittet “Angiv regelbetingelse” nedenfor for at tilføje en betingelse til din regel.
  6. Følg trinene i afsnittet “Angiv regelhandling” nedenfor for at tilføje en handling til din regel.
  7. Valgfrit kan du tilføje en kommentar for yderligere kontekst. Disse er kun synlige for teammedlemmer i din organisation.
  8. Følg trinene nedenfor for at tilføje en specifik start- og/eller slutdato for din regel (valgfrit).
  9. Sæt din regel til Aktiveret eller Deaktiveret.
  10. Klik på Gem.

Angiv start- og slutdatoer

Regler kan valgfrit have en startdato, en slutdato eller begge. Start- og slutdatoer styrer, hvornår og hvordan din regel bliver aktiv, og kan bruges til at oprette regler, der kun er aktive i specifikke perioder, såsom sæsonbestemte rabatter eller andre tidsfølsomme situationer.

Regeladfærd

DatoerAdfærd
Start- og slutdatoReglen vil være aktiv mellem den angivne start- og slutdato.
Kun en startdato, ingen slutdatoReglen vil blive aktiv efter den angivne startdato og skal manuelt deaktiveres.
Ingen start- eller slutdatoReglen vil altid være aktiv, medmindre den manuelt deaktiveres.

Angiv regelbetingelse

Hver regel kræver, at en betingelse angives for at bestemme, hvad den gælder for, og hvilke variabler der er tilgængelige, når reglen kører. Med andre ord bestemmer betingelsen om reglen overhovedet skal køre, og hvornår. Forskellige betingelser har forskellige muligheder tilgængelige.

For eksempel, hvis du vælger “Forsendelsesudbyder” som betingelse, giver det dig mulighed for yderligere at vælge hvilken udbyder der er en del af betingelsen, hvilket du måske vil bruge, hvis du opsætter en buffer for kun en specifik udbyder.

Regler understøtter kun én betingelse hver, og understøtter ikke kompleks logik som “ellers hvis”, “og/eller” eller lignende termer. Hvis du vil kæde regler sammen, er det bedst at tænke på, hvordan du kan opnå den samme logik med flere regler sammenlignet med én stor, kompleks regel.

Angiv regelhandling

En regels handling er, hvad der sker, når dens betingelse er opfyldt. Ligesom betingelser er der en række handlinger mulige, hver med forskellige muligheder.

For eksempel, hvis du ønskede at tilføje en buffer til kun en specifik forsendelsesudbyder, ville du sætte handlingen til “anvende en buffer” og indtaste beløbet for din buffer og hvad den gælder for. Du kan derefter kontrollere, hvilken udbyder bufferen præcist gælder for ved at angive det i reglens betingelse.

Ligesom betingelser understøtter regler kun én handling hver. Hvis du vil have flere handlinger, er det bedst at tænke på, hvordan du kan opnå den samme logik med flere regler sammenlignet med én stor, kompleks regel.

Opdateringsregler

Det er ikke muligt at opdatere regler, der er i kraft, med den måde, vores system fungerer på. Dette skyldes, at vi skal holde en sporbar historik over, hvilke regler der blev anvendt i hvilke situationer, og hvad reglen gjorde, når den blev kørt. Alternativt kan du arkivere og genskabe en regel ved at indsende de ændrede værdier, hvilket effektivt opnår en "opdatering" af reglen.

Dette eksempel på en mutation viser, hvordan du kan kombinere ruleArchive og ruleCreate mutationer for at opnå denne adfærd:

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

Dashboard
GraphQL

Når de er tilføjet, kan regler nemt aktiveres eller deaktiveres for at bestemme, om de skal påvirke dine beregninger. Manuel aktivering eller deaktivering af en regel vil tilsidesætte enhver logik baseret på start- og slutdatoer, der er indeholdt i reglen.

Regler kan aktiveres eller deaktiveres enkeltvis fra “Rediger en regel” screen, eller i bulk ved at bruge afkrydsningsfelterne ved siden af hver regel på “Alle regler” screen.

Liste over alle mulige regelkontekster

Vi tilbyder nogle globale forespørgsler til håndtering af regler, som er nyttige til at opdage, hvordan regler fungerer bag kulisserne, oprette brugergrænseflader oven på regler osv. Disse gælder for alle brugere, er ikke organisationsspecifikke og tilbydes for bekvemmelighed. Denne forespørgsel returnerer en liste over alle mulige kontekster, som regler kan tilhøre. En regelkontekst bestemmer, hvornår en regel kører, og hvilke variabler der er tilgængelige.

Forespørgsel

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 denne side nyttig?