Ultimativ guide til Magento og Dynamics NAV integration

Har du spørgsmål til os?

Ring på +45 28 91 27 23 eller send en mail til hermes@droppinstudio.dk

Hermes Honey-Bird Yokhana

Kontaktchef / Partner

ceo-img

Til dig der er interesseret i at integrere Magento og Dynamics NAV

Ultimativ guide til integration Magento og Dynamics NAV
Droppin Studio har samlet flere års erfaringer til en tekst om B2B e-handel, Magento og Dynamics NAV integrationer.

Droppin Studio er et teknisk og kreativt B2B bureau med 100 % fokus på e-handel. Vi er specialister i e-handelsplatformen Magento, et CMS system dedikeret til e-handel.

Vores team består af få, trænede Magento udviklere, der har fuld fokus på kundens forretning, når de bygger branchens bedste Dynamics NAV integrationer til B2B Magento shops.

 

 

 

Droppin Studios guide til integration af Magento og Dynamics NAV

Droppin Studio har blandt andet udviklet Magento shops og Dynamics NAV integrationer for Kähler Design A/S, Reza’s Oriental & Modern Rugs og AYTM 

Med udgangspunkt i flere års erfaringer kommer her Droppin Studios bud på, hvordan man udvikler en B2B Magento løsning, som er strømlinet med kundens forretning.

Vi ser alt for mange Dynamics NAV integrationer, der ikke opfylder de behov som kunden sidder med og som ikke er bygget til at håndtere de data der skal synkroniseres mellem Magento og Dynamics NAV. I vores optik kræver en integration mellem Dynamics NAV og Magento en dyb forståelse af kundens forretning. Det kræver, at vi som udviklere tager os tid til at forstå den forretning, som dataene kommer fra. Det kræver samtidig også, at kunden klarlægger og definerer sin forretning og stiller sig selv en række vigtige spørgsmål:

 

Hvad dækker lagerstatus over?
Hvilke data udgør en kunde?


I denne guide vil du kunne lære af vores erfaringer og forhåbentlig have et bedre udgangspunkt for at tale om integrationer af Magento og Dynamics NAV.

 


 

Fase 1: Se fordelene ved en integration

Det er ikke nogen nyhed, at der er fordele ved at have en B2B webshop, som eksempelvis henvender sig til virksomhedens forhandlere. B2B kunder er også mennesker bag en skærm, der skal fristes til at købe produkter. Der er en lang række effektive B2B funktioner, som kan automatiseres med en Dynamics NAV integration. En sådan integration understøtter synkroniseringen af data om kunder, priser, lagerstatus og ordrer, så data ikke behøver vedligeholdes i både Magento og Dynamics NAV. Med en Dynamics NAV integration sparer det jer altså både tid internt i virksomheden, samtidig med, at kunderne ikke skal vente på, at jeres forretning har åbent.

 

Fordele ved at integrere Magento og Dynamics NAV

Automatisk synkronisering
Færre manuelle fejl
Strømlinet ordreproces

 

B2B funktioner, som afhænger af Dynamics NAV integration

  • Genbestilling: Med denne funktion kan dine B2B kunder nemt genbestille gamle ordrer.
  • Quick-bestilling: En avanceret søgebar, hvor kunden ved hjælp af varenumre kan fremsøge og lægge produkter i kurven på minimal tid. Det tjekkes om produktet er på lager i Dynamics NAV, før det kan lægges i kurven.
  • Ordresplit: Det er en god idé at lave lagerstyring, så webshoppen kan håndtere større ordrer, selvom produkterne ikke nødvendigvis er fysisk på lager. Der kan eksempelvis udvikles en funktion, der gør det muligt at splitte ordrer, så produkter, der ikke i øjeblikket er på lager, eftersendes snarest muligt.
  • Visning af lagerstatus: Vi lagerstatus og giv forhandleren besked, når produkter, han har vist interesse for, er tilbage på lager.
  • Reservation: Mulighed for at dine forhandlere kan reservere varer, du har eller får på lager.
  • Kreditloft: Der er mulighed for at synkronisere B2B kundernes kreditloft og forfalden konto fra Dynamics NAV. Hvis der eksempelvis er en B2B kunde, som har udestående fakturaer, der overstiger et bestemt kreditmaks, kan deres mulighed for at handle i shoppen fjernes.
  • PDF streaming af faktura og kreditnota på kundeside: B2B kunden kan få vist nye og gamle fakturaer og kreditnotaer på deres kundeside. PDF’en streames direkte fra Dynamics NAV.
  • B2B checkout: Fakturerings- og leveringsadresser hentes via Dynamics NAV. Det samme gælder leveringsmetode og -pris. Betaling foregår som udgangspunkt via faktura.
  • Kundespecifikke priser: Det er muligt at have unikke kundepriser ud fra pristabeller, der er oprettet i Dynamics NAV. Det betyder at hver kunde kan have en unik pris pr. produkt, som synkroniseres ved login og overskriver Magentos standard prislogik. Dette kan yderligere udvides ved valuta for hver kunde.

Læs mere om mulighederne for en B2B webshop her

Listen er ikke ment som en checkliste til den ultimative B2B shop. Der er mange andre B2B funktioner, som ikke er afhængige af Dynamics NAV. Men det giver stadig et ret godt billede af, hvorfor integrationen er vigtig og hvordan en integration kan lette ekspeditionen af produkter. Inden du påbegynder dit projekt er det samtidig vigtigt at gøre sig klar, hvilke funktionaliteter man ønsker og hvad formålet med integrationen er.


Sæt et uforpligtende møde op eller ring på +45 28 91 27 23

 


 

Fase 2: Dynamics NAV løsningen

I første fase skal du have afklaret hvilken Dynamics NAV løsning der skal integreres. Afklaring er den vigtigste del i en udviklingsproces, fordi det sparer alle parter for tid og hovedpine.

Der er stor forskel på hvordan integrationen skal laves alt efter hvilken Dynamics NAV løsning, der skal integreres med. Det har betydning for integrationen, hvilke licenser der er tilgængelige og om Dynamics NAV er en ny, standard, kasseløsning eller et ældre, skræddersyet system. Det betyder noget for hvor fleksibelt Dynamics NAV er, og altså for hvor meget fiksfakseri, der skal laves i integrationen.

Hvis produkterne eksempelvis både sælges gennem en webshop og et kasseapparat i en fysisk butik, er det væsentligt, at det ikke er Magento, der håndterer lager. Magento skal i stedet opdateres med lagerstatus fra Dynamics NAV løbende, så der ikke bliver solgt produkter på webshoppen, som er blevet solgt i butikken. Denne slags overvejelser er vigtige og fuldstændig afhængig af Dynamics NAV løsningen. Derfor er det altid en god idé at sætte et møde op mellem Dynamics NAV leverandøren og Magento udviklingsbureauet.

 

Vælg integrationsform

Det er smart, at den lagerstatus der er i Magento passer med den lagerstatus der er i Dynamics NAV. Samtidig skal de ordrer, der placeres i webshoppen også kunne ses i Dynamics NAV, så der ikke sælges produkter, der ikke længere er på lager eller der opstår problemer med at holde styr på, hvilke ordrer der ligger.

Den simpleste måde er at lave en integration er via CSV-filer, som flytter data fra det ene system til det andet. Men det kræver stadig en del manuelt arbejde, og vi vil jo gerne have, at systemerne synkroniserer automatisk.
Så her vil vi beskrive tre andre løsninger til at lave Magento og Dynamics NAV integrationer:

  • API, som er den gængse metode.
  • Webservices, som er den smarteste måde.
  • En kombination af de to.

Api vs webservices

API

API er en grænseflade der tillader forskellige stykker software at interagere med hinanden. Magento har en sådan grænseflade indbygget og giver derfor ERP software mulighed for at indlæse og udlæse data til og fra Magento.

 

Fordele ved API løsning

»API kræver minimal udvikling i Magento«

 

Ved at lave integrationen med udgangspunkt i en API løsning, er alt aktivitet initialiseret fra Dynamics NAV. Magento reagerer først, når der sker noget i Dynamics NAV. Når der eksempelvis bliver solgt et produkt i Dynamics NAV, bliver det automatisk opdateret i Magento, og det er smart hvis der sælges mange produkter, eksempelvis via telefon eller mail. Desuden er det en nem løsning, fordi det kræver minimal udvikling i Magento.

 

Ulemper ved API løsning

»API er omsonst og tungt at arbejde med«

 

Med en standard API løsning er det begrænset, hvad Magento kan. Magento viser i princippet kun data fra Dynamics NAV. Derfor kan Magento med sådan en løsning heller ikke ’spørge’ Dynamics NAV om et produkt er på lager. Det er skidt, hvis der sælges unikke produkter eller har mange forskellige butikker, som sælger de samme produkter fra samme hovedlager. Magento ved i princippet ikke, om et produkt er på lager, før det potentielt kan være solgt.

Desuden er det vores erfaring, at al den custom udvikling, der skal laves i forbindelse med en Magento webshop, kræver væsentlig mere udvikling i både Magento og Dynamics NAV, for at API’en kan håndtere den custom del. Det ville eksempelvis ikke være muligt at opdatere en kundes specifikke priser ved hvert login uden at udvide API løsningen i både Magento og Dynamics NAV.

Det er heller ikke muligt at forespørge Dynamics NAV i det øjeblik hvor der er behov for det. Så hvis der er tale om en B2B shop, hvor forskellige kunder har forskellige leveringsvilkår og priser, der er afhængige af ordrepris og vægt, kan der ikke hentes denne data efter behov. I stedet for at forespørge Dynamics NAV efter behov, er det nødvendigt at udtænke alle mulige scenarier og gemme dem i Magento.

En API løsning kan altså være omsonst og tungt at arbejde med, fordi der overføres så meget data til Magento. Løsningen er derfor heller ikke særlig fleksibel, fordi det er defineret på forhånd, hvordan forbindelsen mellem Magento og Dynamics NAV ser ud. Man kan ikke manipulere med dataene og det kan gå ud over performance. Det er vores erfaring fra tidligere projekter, at en sådan løsning er langsom fordi alle produktattributter skal overføres fra Dynamics NAV til Magento for alle store views og fordi den Dynamics NAV klient, der benyttes, bliver låst i al den tid, hvor produkterne udlæses.

 

WEBSERVICES

Webservices er generelt set en tjeneste, der giver adgang til at tilgå data på en webserver. Det er en service, som er tilgængelig på internettet og derfor kan den tilgås fra andre klienter andre steder på internettet. Klienten sender en besked og får svar fra serviceprogrammet. I dette tilfælde er Magento klienten og Dynamics NAV udbyder webservicen.

 

Fordele ved webservice løsning

»Webservices har uanede grader af fleksibilitet«

 

En integration baseret på webservices har uanede grader af fleksibilitet i forhold til manipuleringen af data i Magento. Det er i princippet kun Magento udviklerens kreativitet, der sætter grænser for, hvordan data kan og skal manipuleres.
Webservices er desuden en integreret del af Dynamics NAV og virker derfor som en naturlig løsning i den henseende. Det er muligt selv at bestemme hvilke data, man vil opdatere, og man behøver kun at opdatere, når der sker ændringer. På den måde kan man skræddersy sin egen opdateringsproces.

Det er muligt for Magento at ’spørge’ til lagerstatus når som helst. Man vil derfor aldrig komme til at sælge produkter, som ikke er på lager. Desuden kan man manipulere med data både i Magento og Dynamics NAV og på den måde tilgodese fleksibiliteten i begge systemer.
Der er derudover bedre performance på grund af skalerbarheden i forhold til en API løsning, fordi webservices med det rette setup er forberedt til at skalere både hardware og software.

 

Ulemper ved webservice løsning

»Webservices kræver et større budget«

 

Vores erfaring er, at webservice har flere fordele end ulemper. Dog kræver en integration baseret på webservices et større budget, fordi løsningen kræver mere udviklingsarbejde. Det skyldes netop at både Magento bureauet og Dynamics NAV-leverandøren skal arbejde på løsningen.
Nogle gange kan man have behov for at opdatere sin webshop med frisk data. Eksempelvis hvis et produkt får en ny pris. Dynamics NAV kan ikke selv opdatere prisen i webshoppen og man må derfor vente på, at webshoppen forespørger på prisen.

For at løse dette, kan man i webshoppen sætte forespørgselsintervallet lavt (f.eks. hvert femte minut) eller man kan gøre det muligt for Dynamics NAV at ’bede’ Magento om at opdatere prisen for et specifikt produkt. Denne “tvang” af opdatering kan også implementeres, så opdateringen kan gennemtvinges fra Magentos administrationsområde.

 

KOMBINATION AF API OG WEBSERVICES

Det er vores erfaringer, at en kombineret løsning, hvor både Dynamics NAV og Magento kan initialisere kontakten, er den bedste. Magento forespørger ved Dynamics NAV efter behov, og eventuelt om natten ved større mængder data. Dynamics NAV kan enten sende data til webshoppen gennem Magentos API eller ved at bede Magento om at gennemføre en specifik opdatering.

Dette setup muliggør Magento og Dynamics NAV er ude af sync i så kort tid som muligt.

 

Fase 3: Overblik over data

Det næste skridt i denne afklaringsfase er at få et overblik over hvordan data defineres. Erfaringen har vist os, at den måde priser og lager defineres i Dynamics NAV er afgørende for, hvordan integrationen med Magento skal laves.

Først og fremmest skal ERP-logikken være tydelig, før der kan laves en integration, der har den funktionalitet, der efterspørges. I den forbindelse er der især 2 kritiske områder, man skal være opmærksom på.


KUNDESPECIFIKKE PRISER

Der er stor forskel på, hvordan Magento shoppen opfører sig, alt efter hvordan de kundespecifikke priser defineres i Dynamics NAV.

  • Den simpleste model er, at B2B priser ekskl. moms er ens for alle B2B kunder i Dynamics NAV. Priserne kan efterfølgende varieres i Magento ved at lave prisregler for kunderne. Derfor kan kunderne godt få vist deres individuelle priser efter login på webshoppen, selvom priserne er ens i Dynamics NAV.
  • En anden model er, at hver enkelt kunde har en unik pristabel i Dynamics NAV, som kan udvides med forskellige valuta for hver enkelt kunde også. I denne model overskrives Magentos standardfunktonalitet og kundens unikke pris bliver hentet fra Dynamics NAV ved login.

 

 

LAGERHÅNDTERING

Der er også stor forskel på hvordan lager defineres i kundens forretningsmodel. Magento skal blot bruge et tal, men hvad dette tal dækker over, er individuelt fra forretning til forretning.

  • Lagerstatus kan også betyde de produkter, der fysisk ligger på lageret minus de produkter, der allerede er solgt, men plus de købsordrer der er indgivet. Altså de produkter, der er bestilt fremadrettet eller sat i produktion. I denne model kan en B2B kunde altså godt købe et produkt, der reelt set ikke er fysisk på lager endnu.
  • Lagerstatus kan dække over hvad der fysisk er på lager i det øjeblik B2B kunden ser på produktet i webshoppen.
  • Lagerstatus kan også være ubegrænset, så B2B kunderne kan bestille alle de produkter, de vil.

 

Der findes ikke nogen rigtig model til at håndtere priser og lager. Det kommer helt an på kundens forretningsmodel. Men det er vigtigt at være opmærksom på, hvordan disse elementer defineres, fordi det gør udviklingsprocessen meget nemmere fra start.

Oftest tænker man ikke over at der er forskel på priser og lagerstatus fra forretning til forretning. Det er tal, der angiver en mængde, men det er vigtigt at man også gør sig klar hvad der er med i mængden og hvad der er udenfor.

 

Delprocesser som bør afklares på forhånd

Ud over kundespecifikke priser og lagerstatus er der en række andre delprocesser i forretningen, der skal klarlægges.

 

Salg
– Kunder og debitorer
– Priser og rabatter
– Ordremodtagelse
– Sortimenter
– Sprog og valuta

 

Indkøb
– Produkt stamdata
– Varianter
– Relaterede produkter
– Gebyrer og afgifter

 

Marketing
– SEO
– Billeder og filer
– Nyhedsbreve
– Online marketing
– Tracking og analyse
Lager og logistik
– Lagerbeholdning
– Transport og spedition
– Leveringstid
– Track and trace
– Leveringsadresser

 

Økonomi
– Faktura
– Betaling og betingelser
– Kreditmaks. og kontant
– Selvbetjening

 

IT
– ERP og CRM
– Testmiljø
– 3. parts system
– Server og hosting

 

Med en integration af Magento og Dynamics NAV får du en solid teknisk løsning til din forretning. Vi synes, det er vigtigt at sådan en løsning tager hensyn til hele din forretning. I samarbejde med din Magento leverandør og Dynamics NAV leverandør kan disse delprocesser indtænkes i løsningen, så der ikke opstår flaskehalse.

Samtidig sikrer du at alle dine medarbejdere, som varetager forskellige dele af din forretning, bliver hørt. På den måde tilgodeser løsningen også medarbejderne og kan måske lette deres arbejdsbyrde på kritiske områder.

Sæt et uforpligtende møde op eller ring på +45 71 99 34 21

 


 

Fase 4: Prioriter og planlæg

I samarbejde med din Dynamics NAV leverandør bør du finde ud af, hvordan din Dynamics NAV skal bygges, så det tilgodeser alle ovenstående processer. Efterfølgende plejer vi i Droppin Studio at sætte et møde op med vores kunders Dynamics NAV leverandør for at finde ud af hvordan systemerne skal kommunikere og hvilke data, der skal mappes.
Det anbefales at der laves en mapping af attributter og informationer, så det tydeliggøres hvilke felter i Dynamics NAV, der skal synkroniseres til bestemte felter i Magento.

 

Start med integrationen

I vores projekter har vi god erfaring med at begynde med integrationen. Integrationen bygges op i en slags forprojekt før den egentlige løsning udvikles. I starten bygges integrationen op så kunder og produkter synkroniseres til Magento og så Magento kan sende ordrer ind i Dynamics NAV. På den måde sikrer vi, at vi har et godt fundament for videre udvikling.

Når fundamentet er på plads kan integrationen udvikles.

Herefter kan designet laves og tilpasses og vi kan implementere alle de funktioner, som Dynamics NAV tillader.

Oftest er det svært at vide, hvad man egentlig gerne vil have, før man sidder med det. Alt for ofte ender vi med meget store projekter, som i sidste ende ikke helt opfylder alle ønsker. Ved at dele projektet op i mindre bidder udvikles kravspecifikationen løbende og der er mulighed for at følge udviklingen i løsningen.

 


 

Fase 5: Overvågning og vedligeholdelse

En Dynamics NAV integration passer i stort omfang sig selv. Især hvis synkronisering af data er opsat til at køre med faste intervaller og der ikke sker udvikling i forretningen. Men som I nok ved, så udvikler de fleste (e-)forretninger sig med tiden. Pludselig er der en ny type kunde, der handler i shoppen og som udfylder data, der ikke er kendt i Dynamics NAV. Eller et produkt bliver ved en fejl oprettet direkte i Magento, hvorefter Dynamics NAV ikke kan kende varenummeret, når produktet købes. Der opstår fejl, synkroniseringer afbrydes og integrationer fejler.

Derfor anbefaler vi også at man sikre sig, at integrationen bliver overvåget. Ikke kun for at følge med i når integrationen fejler, men også fordi det er rart at vide, at alting er, som det skal være.

Dashboard oversigt

Vi har eksempelvis udviklet et dashboard som er inkluderet ved alle Dynamics NAV løsninger vi laver. Her kan alle involverede parter følge med i, hvad status er på webshoppen og integrationen til Dynamics NAV. Der er en oversigt over seneste synkroniseringer, tidspunktet for næste synkronisering og en liste af fejlmeldinger.

På den måde vil vi som regel opsnappe fejlen før vores kunder og kan derfor være proaktive med hensyn til fejlretning. På den måde skal kunden ikke bruge ressourcer på at kontakte os ved fejl, fordi vi selv overvåger synkroniseringen.

 


 

Vi håber du har fået noget ud af ovenstående guide. Har du spørgsmål eller kommentarer skal du være mere end velkommen til at tage kontakt.

Sæt et uforpligtende møde op eller ring på +45 71 99 34 21

Eksempler på løsninger