Sømløs integrering av Woocommerce-nettbutikk



Skreddersydd integrering mellom nettbutikk og ERP-systemet Telaris


Gå til nettsted
Mørk Maskin AS bruker ERP systemet Telaris for alle sine daglige oppgaver og ønsket å integrere systemet mot WooCommerce. Denne integrasjonen synkroniserer produkter (med all nødvendig data), produktkategorier og nødvendige filer i en én-veis binding mot Gigantbutikken.no.
Utvikling referanse woocommerce telaris
Du kan lese mer om utvidelsen her.

Arbeidsbeskrivelse

Prosjektet ble utviklet i form av en WordPress-utvidelse under navnet «Woocommerce Telaris Integration». Utvidelsen er bygd opp i programmeringsspråkene PHP (v. 8.2) og JavaScript under OOP paradigmen, slik at utvidelsen kan lett bli testet, utvidet og lest av utviklere. «Fronten» av utvidelsen kommer fram som et undermenypunkt under WooCommerce med navnet «Telaris Integration» – denne siden gir brukeren mulighet til å endre innstillinger og bruke ulike verktøy som gjør det lettere for brukeren å feilsøke evt. feilkonfigureringer de har gjort i Telaris systemet.

Bakdelen av utvidelsen gjør alt som har med selve synkroniseringen å gjøre. For at synkronisering skal skje, så måtte vi manuelt skrive «rapporter» i systemet til Telaris gjennom SQL spørringer. Hver rapport blir gitt en ID automatisk fra Telaris systemet og er hvordan utvidelsen vet hvor den skal hente spesifik informasjon fra. ID-en blir gitt videre til REST API-et til Telaris som «kjører» den faktiske rapporten og gir informasjon om produkter, kategorier, osv. Autentisering med API-et blir gjort gjennom en bearer token vi fikk fra Telaris som aldri utgår.

Utviklingsprosessen

Utviklingen av prosjektet ble gjort under UndrumDesign sine interne rutiner, men på grunn av manglende informasjon og ikke optimal kommunikasjon, møtte prosjektet på en del «bugs» underveis. Dette førte til at den første versjonen av utvidelsen var dårlig optimalisert for jobben den skulle gjøre og ble ofte uleselig på grunn av kjappe fiks som ble implementert – dette ble senere refaktorert og strukturen av prosjektet ble mye bedre.

Fordi Telaris og WooCommerce har forskjellige navn på samme felter for data, så lagde vi to Models: Product og Category. Disse Model klassene gjør det mulig for oss å isolere logikken mellom produkter og kategorier, i tillegg til at vi kunne nå også lage adaptere for dataene som kommer inn fra Telaris.

Utvidelsen trenger i tillegg en «utløser» for synkroniseringene. For å automatisere dette og gjøre utvidelsen åpen for videre utvikling, lagde vi REST API endepunkter gjennom WordPress sine interne funksjoner. Endepunktene har URL parametere som lar oss ha full kontroll over hva som blir synkronisert, samt gjorde det enkelt for oss å lage Cron jobber (Linux) som automatisk kjører synkroniseringene på forskjellige tidspunkter.

Resultatet

Etter mange revisjoner og massevis av fin-justering av kode og API-er, er utvidelsen noe vi er svært stolte over. Ved å ta i bruk moderne programmeringsstandarder og gi slipp på den gamle WordPress programmeringsstandarden, fikk vi laget en utvidelse som er lett å utvide, bruke og feilsøke.