DOCS

Managing rules

/

Avanserte regler

KOMMER SNART

Zonos støtter avansert tilpasning av hvordan beregninger skjer i kontoen din gjennom bruk av regler. Regler kan brukes til å legge til buffere til forskjellige deler av beregningen, tilpasse avgifter, og mer. For en fullstendig oversikt over hvordan Zonos håndterer regler, inkludert en liste over alle mulige regeltyper, se vår dokumentasjon om regler. Regler kan administreres via Zonos Dashboard eller gjennom GraphQL API.

Viktig: Regler er en avansert funksjon, og feilbruk kan forårsake en rekke utilsiktede konsekvenser for hvordan Zonos oppfører seg og beregner for deg.

Vis regler

Dashboard
GraphQL

For å administrere regler innen Dashboard:

  1. Logg inn på din Zonos Dashboard konto.
  2. Naviger til Innstillinger -> Regler.

På "Regler"-siden kan du se alle regler knyttet til din Zonos konto, filtrere regler, og raskt aktivere eller deaktivere regler.

Opprett regler

Dashboard
GraphQL

For å opprette en ny regel i Dashboard:

  1. Logg inn på din Zonos Dashboard konto.
  2. Naviger til Innstillinger -> regler.
  3. Klikk Opprett regel.
  4. Legg til et navn på regelen din slik at du kan identifisere den senere. Disse er kun synlige for teammedlemmer i din organisasjon.
  5. Følg trinnene i seksjonen “Spesifiser regelbetingelse” nedenfor for å legge til en betingelse til regelen din.
  6. Følg trinnene i seksjonen “Spesifiser regelhandling” nedenfor for å legge til en handling til regelen din.
  7. Valgfritt kan du legge til en kommentar for ekstra kontekst. Disse er kun synlige for teammedlemmer i din organisasjon.
  8. Følg trinnene nedenfor for å legge til en spesifikk start- og/eller sluttdato for regelen din (valgfritt).
  9. Sett regelen din til Aktivert eller Deaktivert.
  10. Klikk Lagre.

Spesifiser start- og sluttdatoer

Regler kan valgfritt ha en startdato, en sluttdato, eller begge. Start- og sluttdatoer kontrollerer når og hvordan regelen din blir aktiv, og kan brukes til å opprette regler som kun er aktive i spesifikke perioder, som sesongrabatter eller andre tidsfølsomme situasjoner.

Regelatferd

DatoerAtferd
Start- og sluttdatoRegelen vil være aktiv mellom den spesifiserte start- og sluttdatoen.
Kun en startdato, ingen sluttdatoRegelen vil bli aktiv etter den spesifiserte startdatoen og må deaktiveres manuelt.
Ingen start- eller sluttdatoRegelen vil alltid være aktiv med mindre den deaktiveres manuelt.

Spesifiser regelbetingelse

Hver regel krever at en betingelse spesifiseres for å bestemme hva den gjelder for og hvilke variabler som er tilgjengelige når regelen kjøres. Med andre ord, betingelsen bestemmer om regelen skal kjøres i det hele tatt og når. Ulike betingelser har forskjellige alternativer tilgjengelig.

For eksempel, hvis du velger “Fraktleverandør” som betingelse, lar det deg i tillegg velge hvilken leverandør som er en del av betingelsen, noe du kanskje bruker hvis du setter opp en buffer for kun en spesifikk leverandør.

Regler støtter kun én betingelse hver, og støtter ikke kompleks logikk som “ellers hvis”, “og/eller”, eller lignende termer. Hvis du vil kjede regler, er det best å tenke på hvordan du kan oppnå den samme logikken med flere regler sammenlignet med én stor, kompleks regel.

Spesifiser regelhandling

En regles handling er hva som skjer når betingelsen er oppfylt. Akkurat som betingelser, er det en rekke handlinger som er mulige, hver med forskjellige alternativer.

For eksempel, hvis du ønsket å legge til en buffer til kun en spesifikk fraktleverandør, ville du sette handlingen til “bruk en buffer” og angi beløpet for bufferen og hva den gjelder for. Du kan deretter kontrollere hvilken leverandør bufferen nøyaktig gjelder for ved å spesifisere det i reglenes betingelse.

Akkurat som betingelser, støtter regler kun én handling hver. Hvis du vil ha flere handlinger, er det best å tenke på hvordan du kan oppnå den samme logikken med flere regler sammenlignet med én stor, kompleks regel.

Oppdateringsregler

Å oppdatere regler som er på plass er ikke mulig med hvordan systemet vårt fungerer. Dette er fordi vi må opprettholde en sporbar historikk over hvilke regler som ble brukt i hvilke situasjoner og hva regelen gjorde når den ble kjørt. Alternativt kan du arkivere og gjenopprette en regel, og sende inn de endrede verdiene, noe som effektivt oppnår en "oppdatering" av regelen.

Dette eksempelet på mutasjon viser hvordan du kan kombinere ruleArchive og ruleCreate mutasjoner for å oppnå denne oppførselen:

Mutasjon

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

Arkivregler

Dashboard
GraphQL

Når de er lagt til, kan regler enkelt aktiveres eller deaktiveres for å avgjøre om de skal påvirke beregningene dine. Manuell aktivering eller deaktivering av en regel vil overstyre all logikk basert på start- og sluttdatoer som finnes i regelen.

Regler kan aktiveres eller deaktiveres én og én fra “Rediger en regel” screen, eller i bulk ved å bruke avmerkingsboksene ved siden av hver regel på “Alle regler” screen.

List alle mulige regelkontekster

Vi tilbyr noen globale forespørseler for å håndtere regler som er nyttige for å oppdage hvordan regler fungerer under panseret, lage brukergrensesnitt på toppen av regler, osv. Disse gjelder for alle brukere, er ikke organisasjonsspesifikke, og tilbys for bekvemmelighet. Denne forespørselen returnerer en liste over alle mulige kontekster som regler kan tilhøre. En regelkontekst bestemmer når en regel kjører og hvilke variabler som er tilgjengelige.

Forespørsel

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 siden nyttig?