Nettbutikk, kassapparatet på nett. Bilete av Andrew Branch.

E-commerce for alle penga

Erfaringar frå bygging av nettbutikk for De Bergenske.

Kunden: De Bergenske er ein ambisiøs kunde og hotellkjede som tilbyr fem unike hotell her i Bergen. Og Netlife Research Bergen har levert og drifter ein plattform som i skrivande stund leverer fleirspråklege sider for augustin.no, zanderk.no, grandterminus.no, villaterminus.no, bergenbors.no og debergenske.no.

Løysinga: Takket vere grundig arbeid lagt ned i datamodellen og i designet så har alt dette fått plass i ein installasjon av Craft CMS. Fordelene ved dette er bla. ein lettere kvardag for kunde som no berre treng å logge seg inn ein stad for å forvalte innhaldet til fem nettstader. Vidare kan innhaldet lettere reise mellom nettstadene og tas ut på mange datasmarte måter.

Tida var komen for å lage nettbutikk

Eg har lagd mykje, men aldri nettbutikk.

Eg har vore i basketak med opp til fleire databaser samstundes. Eg har lagd mikrotenestearkitektur basert på kontainerteknologi, satt opp automatisert testing og løpende utrullering, lagd rike dynamiske web klienter, designa og tilvirka APIer, eg har debugga minnefeil i langliva batchjobber ved å dumpe applikasjonstilstand til disk og fått ting til å funke i Internet Explorer.

Mykje greier, men aldri nettbutikk. Så, det var gøy å få atter hive seg ut på djupt vatn og gjere seg kjend med e-commerce løysinga Craft Commerce og alle problemstillingane rundt det å selje ting på nett.

Her er nokre av erfaringane eg fekk gjort meg gjennom prosjektet.

Ein kan ikkje lempe på kvaliteten

Det finst ei klassisk prosjektanekdote (som eg som regel feilsiterer og ikkje hugser kjelda til):

“I eit prosjekt så kan du velje å levere på tid, kvalitet og omfang. Men du kan berre velje to av dei.”

I somme prosjekt er det viktigst å levere mykje funksjonalitet på kort tid. I dette prosjektet var det viktigst å levere på tid og kvalitet. Tid, fordi det var eit stramt budsjett. Og kvalitet, fordi det er ein betydeleg fallhøgde om folk betaler penger til ei løysing som ikkje fungerer.

Greiene må funke.

Heite tips

  • La regnskapsføraren til kunde godkjenne utforminga av kvitteringa.
  • Test, test, test: Me gav kunde tidleg tilgang til å utforme produkt i testserveren slik at me kunne avdekke viktige behov og skreddersy løysinga. Derfra gjekk det slag i slag heile vegen til testing med bankkort etterfulgt av refundering inne i løysinga.

Nettbutikker har ein del nødvendig kompleksitet

I same hylle som omgrepet teknisk gjeld så finn du konseptet om nødvendig kompleksitet: Det er den kompleksiteten du sit igjen med etter at du har forsøkt å løyse eit problem enklest mogleg.

Nettbutikker har mykje nødvendig kompleksitet. Dersom du sjekker ut mange nettbutikkløysinger så vil du sjå at det er visse konsepter som går igjen, til dømes: Bestillinger, bestillingstatuser, kvitteringer, handlekorg, rabattkoder, salgskampanjer, ulike typer beskattning på ulike typer produkt, skattesoner, valutaer, leveringsaddresser, faktureringsaddresser, flerspråklighet, innlogga kundeområde, vekt og produktdimensjoner, frakt osv. Craft Commerce har gode byggeklosser for å realisere alt dette, men me spissa oss mot å levere kun eit nødvendig utsnitt og heller la høve ligge til rette for videreutvikling om det skulle vise seg å vere eit behov.

Av interessante utfordringar så var det blant anna:

  • Sal av kombi-produkt med ulik meirverdiavgift. Ynskje var at kjøparen berre skulle forholde seg til eit produkt i handlekorga, men at dette produktet eigentleg var overnatting (10% mva) pluss frukost (25% mva). MVA måtte spesifiserast rett på kvitteringa. Eg løste det til slutt ved å legge til rette for å kunne hekte produkt på eit produkt. No forholder systemet seg til to produkt medan brukaren berre ser kombi-produktet og får ein kvittering der ein ser nøyaktig kor mykje som er 10% og 25% MVA. Igjen, kritisk å la regnskap gå over kvitteringsutforminga.
  • Det var behov for å kunne spørje om ekstra info idet kjøparen kjøpte eit produkt til dømes om ein har allergier eller kven ein skal dele rom med. Etter litt finlesing av Craft Commerce dokumentasjonen så såg eg at “line items” (produkter i handlekorg) har eit tomt options felt der ein kan hekte på data. Dette var ein byggekloss som mogleggjorde ei generell spørjefunksjonalitet for alle produkt: Uttover det å legge til rette for oppretting av produkt så la eg til eit åpent tekstfelt på produkt der kunde kunne skrive eit eller fleire spørsmål. Når da eit slikt produkt presenteres på nettsiden så presenterer me spørsmålet til brukaren saman med eit tekstfelt, der me lagrer svaret frå brukaren idet produktet blir lagt i handlekorga. Derfra tek me svaret med oss heile vegen til den lagrede bestillingen etter fullendt kjøp.
  • På toppen av å løyse utfordringer som dei nevnt til no så måtte ein sørge for at nettbutikken var brukervennleg slik at kunden kunne opprette og forvalte produkt på ein god måte.

Heile vegen har det vore viktig å jobbe medhårs med Craft Commerce rammeverket, på ein måte som oppfyller behov uten å skape utilsikta kompleksitet. Her vil eg rette ein takk til teamet for god sparring på det tekniske (les gjerne: min ode til teknisk sparring).

Kjekt å sjå penger tikke inn

Teknologi er lunefulle greier og kven veit kva for bugs som lurer i eteren. Men for min del er det fint å dvele litt ved løysinga me har lagd til no.

Brukervennleg, effektiv og med rom til å vekse.

Og eg tykkjer det er unekteleg spanande å sjå penger tikke inn.