> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reference til strategiregler

> Det komplette katalog over triggere, operatorer, handlinger, filtre og evalueringsmekanik for strategier bag strategieditoren i appen.

Denne side er det komplette katalog bag strategieditoren: hver trigger og de operatorer, den accepterer, hver handling, de globale filtre, og hvordan en strategi evalueres. Den hører sammen med gennemgangen [Byg strategier](/da/aftersell/strategies_building_in_app) - brug den, når du har brug for de udtømmende detaljer om en bestemt mulighed.

En **regel** parrer **triggere** (*hvornår*) med **handlinger** (*hvad så*), og du kan kombinere op til fem triggere under én **AND** / **OR**-omskifter: med **AND** skal alle triggere matche, med **OR** er det nok, at én matcher. Afsnittene nedenfor følger den struktur - først [Triggere](#triggers) og [Handlinger](#actions), derefter kontrollerne på strateginiveau, der gælder på tværs af alle regler: [regelrækkefølge](#rule-priority-and-evaluation-order), [Globale filtre](#global-filters) og [Catch all](#catch-all).

<div id="triggers">
  ## Triggere
</div>

Triggere afgør, hvornår en regel udløses. Tilgængelige triggertyper:

<div id="product-triggers">
  ### Produkttriggere
</div>

Målret ud fra produkterne i konteksten (kundens kurv, den netop gennemførte ordre eller det produkt, der vises):

* **Specific product(s)** - matcher specifikke Shopify-produkter efter ID
* **Collection** - matcher produkter, der hører til specifikke kollektioner
* **Tag(s)** - matcher produkter med specifikke tags (f.eks. "sale", "summer")
* **Title** - matcher produkttitlen
* **Vendor** - matcher leverandør-/brandnavnet
* **Type** - matcher feltet for produkttype (f.eks. "Apparel", "Electronics")
* **Handle** - matcher produktets URL-slug
* **Metafield** - matcher på par af brugerdefinerede metafelt-namespace/nøgle/værdi
* **Selling plan** - matcher produkter med "subscription" eller "one-time". Evalueres kun, når anmodningens kontekst leverer en selling plan for produktet - Aftersells upsell-overflader i checkout og efter køb sender ikke dette, så triggeren matcher ikke der, medmindre en brugerdefineret integration eksplicit leverer den

<div id="customer-triggers">
  ### Kundetriggere
</div>

Målret ud fra, hvem kunden er:

* **Customer tag** - f.eks. "VIP", "loyalty-gold"
* **Country code** - faktureringsland
* **Province code** - faktureringsprovins/-stat
* **Locale** - kundens sprogindstilling (f.eks. "en-US")
* **Accepts marketing** - status for samtykke til markedsføring
* **Order count** - antal tidligere ordrer
* **Total spent** - samlet forbrug over tid

<div id="cart-triggers">
  ### Kurvtriggere
</div>

Målret ud fra kurvens samlede tilstand:

* **Cart subtotal** - f.eks. subtotal større end \$50
* **Item count** - samlet antal varer i kurven
* **Line count** - antal forskellige ordrelinjer
* **Cart attribute** - brugerdefinerede kurvattributter angivet via Shopifys cart API
* **Cart note** - feltet til kurvnote

<div id="location-triggers">
  ### Lokationstriggere
</div>

Målret ud fra, hvortil kunden får leveret, og butikkens valuta:

* **Shipping country** - leveringsdestinationens land
* **Shipping province** - leveringsdestinationens provins/stat
* **Shipping method** - valgt leveringsmetode
* **Store currency** - den aktive butiksvalutakode

<div id="marketing-triggers">
  ### Marketingtriggere
</div>

Målret ud fra den side-URL, kunden ankom til:

* **URL** - matcher en delstreng af landings-URL'en, så du kan målrette en bestemt kampagne eller kanal ved at matche en parameter indlejret i URL'en (f.eks. `utm_source=newsletter`)

<div id="time-triggers">
  ### Tidstriggere
</div>

Målret ud fra, hvornår anmodningen evalueres, i butikkens tid:

* **Day of week** - den aktuelle ugedag
* **Hour of day** - den aktuelle time

<div id="dynamic-triggers">
  ### Dynamiske triggere
</div>

* **Always match** - en trigger uden betingelse, der altid udløses. Brug den til at få en regel til at køre på hver anmodning (dette er forskelligt fra [Catch all](#catch-all) på strateginiveau, som kun udløses, når ingen anden regel matcher).

<Note>
  Ikke alle triggere udfyldes på alle overflader. Checkout sender for eksempel kun produkt- og kurvkontekst - kunde-, lokations- og marketingtriggere matcher ikke der. Se guiderne [Implementering af strategier](/da/aftersell/implementing_strategies_post_purchase_upsells) for, hvad hver overflade sender.
</Note>

<div id="operators">
  ### Operatorer
</div>

Hver trigger bruger en **operator** til at definere, hvordan værdien matches. De tilgængelige operatorer afhænger af triggertypen.

| Operator | Beskrivelse |
| - | - |
| **Equals** | Matcher, når feltet er præcis den værdi, du angiver - f.eks. vendor er lig med "Nike". |
| **Does not equal** | Matcher, når feltet er alt andet end den værdi, du angiver - nyttigt til at udelukke en bestemt produkttype eller leverandør. |
| **Contains any** | Matcher, når et felt med flere værdier indeholder mindst én værdi fra din liste - f.eks. at et produkt tilhører en hvilken som helst af flere kollektioner. |
| **Does not contain any** | Matcher, når et felt med flere værdier ikke indeholder nogen af værdierne på din liste - f.eks. udeluk produkter tagget "final-sale". |
| **Contains all** | Matcher, når et felt med flere værdier indeholder alle værdier på din liste - f.eks. skal et produkt have både tagget "sale" og "summer". |
| **Does not contain all** | Matcher, når et felt med flere værdier mangler mindst én af værdierne på din liste. |
| **Contains** | Matcher, når et tekstfelt indeholder din værdi som en delstreng - f.eks. titlen indeholder "Gift". |
| **Does not contain** | Matcher, når et tekstfelt ikke indeholder din værdi. |
| **Greater than** | Matcher, når et numerisk felt overstiger din værdi - f.eks. er kurvens subtotal større end \$75. |
| **Less than** | Matcher, når et numerisk felt er under din værdi - f.eks. er antallet af ordrer mindre end 2 (førstegangskøbere). |
| **Greater than or equal to** | Matcher, når et numerisk felt når eller overstiger din værdi - f.eks. er det samlede forbrug mindst \$500. |
| **Less than or equal to** | Matcher, når et numerisk felt er lig med eller under din værdi - f.eks. er antallet af varer i kurven højst 3. |

Ikke alle operatorer er tilgængelige for alle triggere:

* **Listeoperatorer** (**Contains any / all** og deres negationer) gælder for felter med flere værdier som tags, kollektioner, kundetags og specifikke produkter.
* **Tekstoperatorer** (**Equals**, **Contains** og deres negationer) gælder for tekstfelter med én værdi som titel, leverandør, handle, sprogindstilling, land og URL.
* **Numeriske operatorer** gælder for felter som kurvens subtotal, antal varer, antal linjer, antal ordrer, samlet forbrug og time på dagen. Numeriske operatorer har ingen "does not"-varianter.
* Nogle få felter understøtter kun **Equals** og **Does not equal** - selling plan, ugedag og accepts marketing.

<div id="actions">
  ## Handlinger
</div>

Handlinger skaber den oplevelse, du vil levere til kunden. Det er her, du beslutter, hvilke produkter der skal vises, hvordan de skal vises, og eventuelle yderligere data, der skal sendes med. En regel kan have flere handlinger konfigureret sammen for at opbygge den fulde oplevelse.

For hver regel bidrager alle konfigurerede handlinger til én samlet pulje. For eksempel vil en regel med en handling for specifikke produkter, en kollektionshandling og en tagbaseret handling returnere produkter fra alle tre kilder samlet. Hvis et produkt matcher flere kilder, fjernes dubletter.

<div id="product-actions">
  ### Produkthandlinger
</div>

De samme produktattributter, der er tilgængelige på triggersiden, er også tilgængelige, når du definerer handlinger. Du kan returnere produkter baseret på:

* **Specific products** - håndplukkede enkeltprodukter fra dit Shopify-katalog.
* **Collection** - returnér alle produkter, der hører til en bestemt kollektion.
* **Produktattributter** - returnér produkter, der matcher kriterier som tags, leverandør, produkttype eller metafelter - de samme attributtyper, der bruges i triggere.

<div id="dynamic-actions">
  ### Dynamiske handlinger
</div>

Dynamiske handlinger ændrer det, der returneres, baseret på signaler i realtid frem for en fast produktliste. Tilgængelige typer af dynamiske handlinger omfatter:

* **Most popular** - din butiks bedst præsterende produkter efter salgsvolumen, enten for hele butikken eller afgrænset til en kollektion.
* **Recently purchased** - produkter, der for nylig er købt i butikken.
* **Inherit from when** - genbrug reglens egne triggere ("hvornår") som produktvælger, så de returnerede produkter matcher de samme kriterier, som reglen blev udløst på.
* **AI Recommendations** - personlige forslag genereret af Aftersells anbefalingsmodel.

<div id="filtering-actions">
  ### Filtreringshandlinger
</div>

Når produktpuljen er samlet, kan du konfigurere, hvor mange produkter der returneres, og i hvilken rækkefølge:

* **Sort** - styr, hvilke produkter der vælges:
  * **Random** - et tilfældigt udvalg.
  * **Price: high → low** - de dyreste produkter returneres først.
  * **Price: low → high** - de billigste produkter returneres først.
* **Amount/Limit** - angiv det maksimale antal produkter, der skal returneres.
* **Type** - indsnævr den samlede produktpulje til én enkelt Shopify-produkttype. Vælg **Equals** for et præcist match eller **Contains** for et delstrengsmatch (begge skelner ikke mellem store og små bogstaver). Kun produkter, hvis produkttype matcher den værdi, du indtaster, beholdes; resten fjernes, før Amount/Limit anvendes.

<Info>
  Filteret **Type** beskærer den produktpulje, som dine produkthandlinger har samlet - det er forskelligt fra produkthandlingen **Product type**, som *returnerer* produkter af en given type. Brug filteret, når du vil begrænse, hvad en bredere handling (såsom en kollektion eller en dynamisk handling) kan returnere.
</Info>

<Info>
  Sort anvendes først, derefter Amount/Limit. Hvis din sortering for eksempel er sat til **Random**, bliver hele produktpuljen randomiseret, før grænsen anvendes - så du altid får et tilfældigt udsnit, ikke de samme produkter i tilfældig rækkefølge.
</Info>

<div id="key-value-actions">
  ### Nøgle-værdi-handlinger
</div>

Du kan eventuelt knytte nøgle-værdi-par til en regel. Når reglen matcher, returneres de i `meta.data` i API-svaret sammen med produktresultaterne. Almindelige anvendelser omfatter:

* Tekst til kampagnebannere
* Kampagnelabels til analyser

<Note>
  Hvis flere regler matcher og udsender den samme nøgle, vinder værdien fra den første matchende regel - senere regler kan ikke tilsidesætte den.
</Note>

<div id="rule-priority-and-evaluation-order">
  ## Regelprioritet og evalueringsrækkefølge
</div>

Regler i en strategi evalueres i rækkefølge, ét trin ad gangen. Trin 1 evalueres først og så videre. Du kan ændre rækkefølgen af regler ved at trække og slippe dem i strategieditoren. Evalueringsmotoren:

1. Evaluerer hver regels triggere mod den leverede kontekst.
2. Indsamler produkter fra alle matchende regler.
3. Fjerner dubletter og begrænser resultatet til det konfigurerede maksimum (standard: 20 produkter).

<div id="global-filters">
  ## Globale filtre
</div>

Globale filtre fjerner produkter fra at kunne vælges på tværs af alle regler i en strategi. Du får adgang til dem via **filterikonet** ved siden af strategiens navn øverst til venstre i strategieditoren.

Tilgængelige globale filtre:

* **Exclude out of stock** - udeluk automatisk ethvert produkt, der i øjeblikket ikke kan købes.
* **Exclude input products** - udeluk det eller de produkter, der udløste reglen (f.eks. det produkt, kunden aktuelt ser på en PDP), så du aldrig anbefaler det samme produkt, som kunden allerede kigger på.
* **Exclude by product tag** - udeluk produkter med specifikke tags.
* **Exclude by metafield** - udeluk produkter, der matcher et specifikt metafelt-namespace/nøgle/værdi.
* **Exclude by product ID** - udeluk specifikke produkter efter ID.
* **Require stock at location** - behold kun produkter, der har tilgængeligt lager på en valgt lokation (kræver læsetilladelser til lager og lokationer).

<div id="catch-all">
  ## Catch all
</div>

Catch all er en særlig regel, der fungerer som det sidste trin i hver evaluering af en strategi. Den har ingen trigger; den udløses automatisk, hvis ingen anden regel i strategien matcher den aktuelle anmodning.

Når den er aktiveret, sikrer Catch all, at din anbefalingsplads aldrig er tom. Dens handling kan konfigureres med alle de samme handlingstyper, som er tilgængelige for almindelige regler - specifikke produkter, kollektioner, dynamiske handlinger osv.

* **Aktivér/deaktivér** - slå Catch all-reglen til eller fra for strategien. Når den er deaktiveret, returnerer anmodninger, der ikke matcher nogen regler, et tomt resultat.
* **Konfigurer handlinger** - definér, hvad der skal returneres, med en hvilken som helst kombination af tilgængelige handlingstyper, ligesom for enhver anden regel.

Når Catch all udløses, angiver API-svaret `resolution.fallbackUsed: true`.
