Publisert:
24.5.2023
Sist endret:
26.1.2024
Visma Software
Er integrasjonene dine klare for Black Week?
Er systemene dine i toppform for måneden da alle systemer tilknyttet varehandel blir presset til det ytterste?

Fra rødt til sort i regnskapet

Siste fredag i november er dagen da alle handelsbedrifter skal snu de røde tallene i regnskapet til svarte, derav navnet Black Friday .

Denne digitale høytiden betyr at en enorm mengde varer skal forlate butikkene i bytte mot en like stor mengde penger fra kundenes lommebøker. Hva kan da være en bedre anledning til å ta i bruk det nye Visma net ERP Sales Order Service APIet?

APIet er bygget spesielt for å bedre ytelsen og bruksområdene rundt å gjennomføre varesalg. Det er fortsatt under utvikling, noe som betyr at mer funksjonalitet vil bli lagt til APIet i tiden som kommer, men funksjonaliteten som finnes der i dag kan gjøre en enorm forskjell for dine integrasjoner.

La oss fokusere på et par av funksjonene som er helt sentrale i e-handelopplevelsen.

Les mer: Hva er API?

GET InventorySummary

Les videre hvis du er klar for litt herlig API-nerding, for herfra blir det litt mer teknisk. API-endepunktet GET InventorySummary har vært tilgjengelig i APIet til Visma.net lenge. Dette endepunktet brukes til å hente informasjon om lagerbeholdning for en vare. Hvor mange er tilgjengelig for salg? Hvor mange er reservert på salgsordre? osv.

Dette endepunktet er et av de aller mest brukte i APIet til Visma.net. Historisk sett er det alltid en stor økning i bruk gjennom november og desember.

Men det finnes noen utfordringer med dette endepunktet:

  • Du kan kun hente informasjon for én vare per API-kall. Hvis du har flere lager, kan du kun spørre mot ett lager om gangen.
    Dette medfører at du ofte må gjøre mange API-kall.
  • Det returneres en stor mengde informasjon, ofte mer enn du trenger.
    Dette betyr at endepunktet er ganske tregt.

Vi har sett hvilke problemer dette skaper for deres integrasjoner og hvilken belastning dette endepunktet har påført våre servere, så det er derfor en glede å kunne introdusere et nytt endepunkt i Sales Order Service APIet… /Inventory.

Dette nye endepunktet har blitt utviklet spesifikt for å løse disse behovene raskt og effektivt.

Med det nye endepunktet /Inventory kan du:

  • Hente informasjon om lagerbeholdning for så mange varer du vil per kall.
  • Hente informasjon om varer på tvers av lagre og lagerlokasjoner.
  • Filtrere på lagre og lokasjoner.
  • Velge hvor mye data som skal returneres (skal lokasjoner og attributter inkluderes).
  • Filtrere på når lagerbeholdning er endret (hent bare varer endret siden gitt tidspunkt).
  • Filtrere på varens attributter.
  • Få resultatene i en forrykende fart.

Forrykende fart sier du, hvor fort er egentlig det da?

Jo, vi har gjort en god del testing. Med det gamle endepunktet /InventorySummary, ser vi at det i gjennomsnitt tar ca 1 sekund (altså 1000 millisekunder) å få svaret. Og da får du kun info om én vare fra ett lager.

Les mer: Derfor er åpent API så viktig for bedriften.

Med det nye endepunktet /Inventory, ser vi at gjennomsnittstiden er 60 ms, og det er ikke store forskjellen på om du henter info om en eller mange varer (60 ms er gjennomsnittstiden for å hente info om 5 varer). Da får du i tillegg med info om alle lager hvor varen eventuelt befinner seg. Du kan få med info om lagerlokasjoner og attributter i tillegg uten at det tar mange millisekundene ekstra.

Så hvordan vil dette se ut i et virkelig eksempel?

Vi har en netthandel og kunden har lagt 5 varer i sin handlekurv. Før kunden betaler ønsker vi sjekke at varene i kurven faktisk finnes på lager.

Så med det gamle /InventorySummary-endepunktet måtte vi da gjort 5 kall, som hvert tar ca ett sekund. Benytter du flere lager, kan du gange opp dette med antallet lager.

Med det nye /Inventory endepunktet kan vi gjøre kun ett kall, der vi spør om beholdning av alle 5 varene samtidig, vi få også status på tvers av alle lager hvor varen befinner seg. Det kallet tar ca 60 millisekunder.

Altså 5000 ms (5*1000) mot 60 ms, det er forrykende fort.

Les mer: Hvordan lykkes med nettbutikk? Med API så klart!

SalesOrder

Men, når regnskapstallene skal gå fra røde til sorte, holder det ikke å sjekke lagerbeholdningen. Kundene må kjøpe varene, det må opprettes ordre.

I det nye Sales Order Servicer APIet finnes det også et POST /SalesOrder-endepunkt, som gjør akkurat det. I versjonen som er klar nå, støttes all funksjonalitet som trengs for å opprette de aller fleste ordre (så lenge de er av typen SO). Du kan legge til rabatter, håndtere valutaer og notater på både linje og ordrehode.

Selvfølgelig er også ytelsen her noe helt annet enn før. Våre tester viser at prosessen med å opprette ordre med det nye endepunktet er ca 25 ganger raskere, og jo flere linjer ordren inneholder, jo større ytelsesforbedring er det.

Disse forbedringene kommer ikke bare deres applikasjoner og kundene til gode. Siden de nye endepunktene er så mye raskere og mer effektive, så krever det langt mindre av våre servere å levere funksjonaliteten. Det betyr at vi kan håndtere enorme mengder API-kall uten å slite ute serverene. Bra for oss, bra for dere og bra for kundene.

De nye endepunktene kan benyttes side om side med de gamle, så du trenger ikke bygge om hele integrasjonen din. Start med å bytte ut bare ett eller et par av endepunktene, så kan du ta resten etterhvert som du får tid og mulighet.

Da gjenstår det bare å ønske lykke til med programmeringen og med å slå fjorårets salgsrekord!