Ved at gøre brug af workflows i SmartPack, så har man mulighed for at manipulere med ordrer før og efter de oprettes i SmartPack, samt før og efter der sker en opdatering.
Et eksempel på brugen af et workflow kan være at man vil på tvinge en bestemt fragtmetode på alle ordrer der indeholder B2B i deres ordrenummer.
Den handling der skal ske på en ordre skrives som javascript, og eksemplet ovenover kan være skrevet på følgende måde:
if (order.orderNo.includes("B2B")) {
order.deliveryMethod = "postnord_business_delivery";
}
Så i et tilfælde hvor der er B2B i ordrenummeret, så vil der blive sat postnord_business_delivery på som leveringsmetode.
Workflow indstillinger
Index bruges til at sætte en rækkefølge op, hvis man gerne vil køre flere workflows i en prioriteret rækkefølge, her vil den starte med index 0, og bevæge sig op af, så 1 -> 2 -> 10 osv.
Hvornår et workflow skal køre, afhænger af hvad effekt den skal have. I de fleste tilfælde vil du komme langt med at køre et workflow før ordren oprettes, og er det noget hvorpå et ordresystem, vil kunne lave ændringer på ordren, som man også gerne vil tage højde for, så bør den også køres før en ordre opdatering.
Trigger Expression kan bruges til at bestemme hvilke ordrer der skal tages igennem et workflow. Vi sætter stor pris på at dette felt anvendes, i forhold til at begrænse ressource forbruget på at udløse et script på hver eneste ordre.
Det kan være at man gerne vil lave et workflow der kører på alle ordrer hvor der er en kundekommentar, så kan man f.eks. lave en trigger som denne:
customerComment != ""
Bemærk at trigger expressions skrives som C# Lambda formler.
Manipuler ordre
For at manipulere op dataen i en ordre, så skrives det som tidligere nævnt som javascript. Husk at der skal være sat flueben i aktiveret under fanen, for at scriptet virker.
Det data man har mulighed for at arbejde ud fra, og det resultat man laver, har man mulighed for at se nede i de to kolonner under kodefeltet.
Så hvis den rå data ser ud som nedenfor:
Og man skriver følgende kode:
if (order.deliveryMethod === "none") {
order.deliveryMethod = "PNDK";
}
Så kan man se at den her har ændret deliveryMethod:
Hvis du ønsker at se data fra en bestemt ordre, for bla. at kunne se om din trigger expression er true eller false, og om dit javascript manipulere korrekt med dataen, så kan du i din url skrive:
&preview=ORDERID
Hvor ORDERID er det id du finder i venstre kolonne af ordreoversigten.
I store træk så er det kun fantasien der sætter grænser for hvad man kan ændre på en ordre, for det er muligt at tilføje/fjerne produkter, ændre antal. Sætte kommentarer på og så meget mere.