Droppin Studio har samlet flere års erfaringer til en tekst om B2B e-handel, Magento 2 og Dynamics NAV365 BC 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/365 BC integrationer til B2B Magento shops.
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:
1. Hvad dækker lagerstatus over?
2. 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.
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.
Data flow mellem jeres Dynamics Nav og Magento installationer sker automatisk, hvor der klart er defineret hvor data fødes, og hvordan det bevæger sig mellem 2 systemer, og ikke mindst, hvorfor.
Ved at fjerne manuelle handlinger i jeres webshop, kan i dyre fejl, skabt af menneskelige tastefejl.
Slut med at gøre ting på forskellige måder og slut med at jeres kunder oplever forvirring når de handler med jer.
Med denne funktion kan dine B2B kunder nemt genbestille gamle ordrer.
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.
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.
Vi lagerstatus og giv forhandleren besked, når produkter, han har vist interesse for, er tilbage på lager.
Mulighed for at dine forhandlere kan reservere varer, du har eller får på lager.
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.
B2B kunden kan få vist nye og gamle fakturaer og kreditnotaer på deres kundeside. PDF’en streames direkte fra Dynamics NAV.
Fakturerings- og leveringsadresser hentes via Dynamics NAV. Det samme gælder leveringsmetode og -pris. Betaling foregår som udgangspunkt via faktura.
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.
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.
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.
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 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.
»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.
»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 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.
»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.
»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.
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å.
Der er stor forskel på, hvordan Magento shoppen opfører sig, alt efter hvordan de kundespecifikke priser defineres i Dynamics NAV.
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.
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.
– Kunder og debitorer
– Priser og rabatter
– Ordremodtagelse
– Sortimenter
– Sprog og valuta
– Produkt stamdata
– Varianter
– Relaterede produkter
– Gebyrer og afgifter
– SEO
– Billeder og filer
– Nyhedsbreve
– Online marketing
– Tracking og analyse
– Lagerbeholdning
– Transport og spedition
– Leveringstid
– Track and trace
– Leveringsadresser
– Faktura
– Betaling og betingelser
– Kreditmaks. og kontant
– Selvbetjening
– ERP og CRM
– Testmiljø
– 3. parts system
– Server og hosting
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.
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.
Læs mere om vores forskellige integrationsløsninger.
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.
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.
Kontakt os for at høre mere om vores cases.
Har du spørgsmål, eller skal vi hjælpe dig med at finde den helt rigtige løsning til dit behov?
Kontakt vores kundeserviceafdeling på 28 91 27 23 eller support@droppinstudio.dk
Østergade 31, 1. sal
8000 Aarhus C
Tlf: +45 28 91 27 23
E-mail: info@droppinstudio.dk