Enbok.no

Slik fikset jeg nettbutikken til Enbok.no

NETTBUTIKKSPORING

Oppdrag: «Få nettbutikken til å fungere!»

I januar 2023 fikk jeg et spennende oppdrag via mine venner i Facefirst:

Nettbutikken enbok.no selger bøker fra forlaget HarperCollins til hele Norge, men hadde problemer med å formidle bestillinger til lageret hvor alle bøkene befinner seg.

HarperCollins er et av verdens største bokforlag med en bred engelskspråklig utgivelse av skjønnlitteratur, barnebøker, kokebøker, helse og biografier. På enbok.no finner du blant annet bøker av Don Winslow og Pernilla Ericson.

Lageret er hos Sentraldistribusjon AS, som distribuerer og lagerfører varer på vegne av forlag, netthandelsaktører og bokklubber. Mottakere av produktene er bokhandlere, privatkunder og bokklubbmedlemmer.

Nettbutikken hadde opplevd problemer med integrasjonen som kommuniserte bestillingene til lageret – og derfor kunne man ikke «skru på» markedsføring for fullt.

Problemet jeg måtte løse var altså:

Sørge for at ordrene som kommer inn i nettbutikken sendes på korrekt måte til Sentraldistribusjon AS – slik at de kan behandle ordrene og sende bøkene ut til kundene.

Denne flyten som er beskrevet over er ikke uvanlig – det er mange som bruker en form for fjernlager eller distributør av varene sine. Det som var litt spesielt her var formatet Sentraldistribusjon ønsket å motta informasjonen i.

Sende ordre til Sentraldistribusjon AS

Normalt sendes og mottas slik data i et velbrukt og velkjent JSON-format, gjerne via API-løsninger. I dette tilfellet benytter distributøren SFTP-server til å utveksle data mellom nettbutikk og lager.

Enkelt forklart må nettbutikken enbok.no laste opp en ny bestilling som en TXT-fil på SFTP-serveren til Sentraldistribusjon. Og for at de kan lese bestillingsinformasjonen korrekt må henholdsvis ordrenummer, leveringsadresse, mobilnummer osv dukke opp på helt konkrete posisjoner i tekstfila.

Jeg hadde aldri vært borti en løsning som dette før, men noe sier meg at dette var en mer vanlig måte å sende og motta data på tidligere. API-løsninger ble mer og mer populært fra 2004-2005, og i dag er dette standard for all utveksling av slik data mellom aktører.

Ettersom nettbutikken benytter WooCommerce i WordPress, programmerte jeg løsningen i PHP.

Når en bestilling gjøres i WooCommerce genererer jeg en tekstfil med korrekt ordreinfo, og laster denne opp til SFTP-serveren hos Sentraldistribusjon.

Dette punktet krevde en del testing og feiling – men når det omsider ble korrekt er dette en god løsning som vil fungere stabilt fremover.

Teknisk ansvarlig i Sentraldistribusjon var forøvrig behjelpelig underveis her, både for å gi detaljer om formatet og til å verifisere at de mottok korrekte filer.

Kontrollere at lageret har behandlet ordren

Hvis bestillingen fra enbok.no har blitt lastet opp på korrekt måte til SFTP-serveren vil Sentraldistribusjon laste opp en følgeseddel i en annen mappe.

For å finne ut om bestillingen har blitt behandlet på lageret må nettbutikken jevnlig lete etter følgeseddelen. Og derfor måtte jeg kode en løsning som hver time undersøker om det har dukket opp noe nytt i denne mappa.

Hvis vi finner en ny følgeseddel på serveren henter vi ut ordrenummeret fra denne, og sjekker om det samsvarer med våre ubehandlede ordre i WooCommerce.

Finner vi en følgeseddel for en ordre kan vi gå ut i fra at bestillingen er behandlet korrekt – og at varene vil sendes i løpet av det neste døgnet. Løsningen min setter da ordrestatus til «Completed», og kunden får beskjed gjennom epost fra nettbutikken om at ordren er behandlet.

På dette tidspunktet trekkes også det reserverte beløpet endelig – hvis bestillingen er gjort med for eksempel Klarna eller Vipps.

Jevnlig lese lagerbeholdning og oppdatere varen

Ettersom Sentraldistribusjon AS fysisk oppbevarer alle bøkene enbok.no selger, er det disse som har det oppdaterte varelageret.

Hvis en bok blir utsolgt – altså at det blir tomt på det fysiske lageret – må vi kunne oppdage dette i nettbutikken slik at vi ikke selger flere av disse bøkene.

Distributøren laster hver kveld opp en Excel-fil med oppdatert beholdning for hver av bøkene som selges.

Jeg har da kodet en løsning som tidlig hver morgen leser denne Excel-filen, og undersøker om noen av bøkene står med 0 i beholdning.

Hvis vi finner en linje i dokumentet som står i 0, sørger denne koden for at boka ikke lenger blir tilgjengelig for bestilling i nettbutikken.

Varslinger i Slack

For å følge med på at løsningene jeg lager faktisk fungerer bruker jeg forskjellige verktøy.

Det vanligste er å lese loggfiler, hvor man har bestemt at noe skal logges hvis det har oppstått en feil eller noe ikke går som det skal. Men da må jeg logge inn på servere og finne frem loggfiler hver dag – for å se om det har kommet noe nytt der.

Det kan være litt tilfeldig at man oppdager ting i tide på denne måten.

En helautomatisk løsning jeg bruker mer og mer er å sende varsling til Slack.

Slack er et chatteprogram for bedrifter, hvor man kan kommunisere og dele informasjon på en god måte.

På Slack-området for Kjetil Moen Nettservice har jeg lagd en kanal som heter #enbok.no. Denne er bare for meg, men man kan også invitere kunder og andre inn til disse kanalene.

Når noen av disse tingene jeg har skrevet om over her skjer, så sender jeg en beskjed til Slack-kanalen.

På denne måten får jeg beskjed om:

For ordens skyld: Dette er informasjon jeg bruker kun til testing – for å forsikre meg om at løsningen min fungerer som tenkt. Jeg sender heller ingen personlige opplysninger om kunde eller distributør til Slack – bare referanser til ordrenummer og følgeseddel.

Ny utsjekk med flere betalingsløsninger på enbok.no

I tillegg til å fikse integrasjonen mellom nettbutikken og distributør/fjernlager jobbet jeg med å få på plass en bedre utsjekk for enbok.no.

Tidligere var det kun mulig å benytte Vipps’ hurtigløsning for å betale, hvilket betydde at man bare kunne kjøpe én bok av gangen.

I den nye løsningen du kan se på enbok.no har vi fått inn en handlekurv og en kasseløsning hvor du kan velge mellom Klarna og Vipps.

Klarna lar kunden betale med kort eller over faktura om 30 dager blant annet – noe jeg selv bruker ofte når jeg handler på nett.

Hva nå?

Nå har den nye løsningen vært oppe i et par uker, og det ser ut som at det jeg har gjort fungerer som det skal.

Enbok.no får nå også hjelp med annonsering fra Facefirst  – som er et «kreativt innholdsbyrå i Oslo som brenner for å skape relevant innhold som konverterer».

Det blir spennende å se hvordan salget går fremover!

(Hvis du har et problem du trenger hjelp med å løse – ta gjerne kontakt med meg her.)