10 oktober 2019 3 minuten

Hoe koppel ik een datastructuur aan mijn entries in Craft CMS

#koppeling #craftcms
Pieterjan Thumb

Stel je moet de prijs veranderen van verschillende producten op jouw webshop: pas je dit zelf handmatig aan of wil je geen tijd verliezen en laat je dit automatiseren? Vaak komen klanten bij ons terecht en beschikken ze over producten of klantgegevens die ze graag in hun website of webshop zouden willen gebruiken. Craft CMS biedt verschillende gebruiksvriendelijke en gemakkelijke oplossingen aan voor de integratie van jouw site/shop met jouw bestaande systemen (ERP, CRM, ATS, ...). Maar ook wanneer een softwarepakket iets ingewikkelder opgesteld is of niet zomaar simpel te exporteren valt, bestaan er oplossingen om je data toch te importeren in de website.

Zowel een eenmalige import of een continue synchronisatie behoren tot de mogelijkheden bij het koppelen van de datastructuren. Craft stelt ons ook in staat om zeer makkelijk op maat gemaakte koppelingen te programmeren.

Gebruiksvriendelijk importeren via Feed Me

Sinds kort heeft Craft CMS één van de meest gebruikte plugins overgenomen om zelf verder te ontwikkelen. De Feed Me plugin was voorheen een plugin die door het Australische Verbb ontwikkeld was en door de hele Craft community gretig gebruikt werd. Het eerste wat ze gedaan hebben, is de plugin gratis gemaakt en op termijn verwachten ze deze te integreren in de core van Craft.

Zoals in de inleiding aangehaald werd, is dit een plugin die zeer handig is bij het synchroniseren van de data in een CRM pakket en de website. Er zijn een heleboel bestandsformaten die Feed Me accepteert om te importeren: XML, JSON, CSV, RSS en ATOM behoren tot de mogelijkheden. Het merendeel van de CRM pakketten beschikken over een export-functionaliteit, al dan niet in realtime, die in één van deze formaten kan aangeleverd worden.

1

Als we de plugin even bekijken, zien we hier het voorbeeld van onze klant Glow. De eerste twee rijen zijn verantwoordelijk voor het importeren van de ratings die hun klanten op Google & Facebook achterlaten. Bij het instellen van een nieuwe Feed heb je tal van mogelijkheden om de data dynamisch in de website te plaatsen.

In het voorbeeld van de ratings hebben we twee algemene velden aangemaakt in het CMS aangemaakt waar de getallen van de rating in worden bijgehouden. In de nieuwe Feed krijg je vervolgens in een overzichtelijke interface de keuze om de data uit de bron te koppelen aan de velden in het CMS.

2

Daarnaast kan je ook nog bepalen wat er moet gebeuren met bestaande data wanneer deze al aanwezig zijn. In het voorbeeld van deze ratings mogen deze altijd overschreven worden gezien we de meest recente ratings willen tonen aan de bezoekers. Als je bijvoorbeeld een volledig gamma aan producten wil importeren in je webshop, dan kan je opteren om producten die niet meer aanwezig zijn in de databron te verwijderen uit het CMS. Het is ook uitermate gemakkelijk, om te bepalen welke velden verantwoordelijk zijn om te bepalen of het bestand reeds bestaat.

Import op maat

Soms is een CRM pakket iets ingewikkelder en kan het niet zomaar één grote vlakke JSON file aanleveren. Zo vroeg onze klant Merito om de vacatures die ze beheren in hun ATS pakket ook op de website te kunnen tonen. Carerix was het ATS pakket die gebruikt werd en bood een API aan om de data uit het pakket te halen.

Ondanks dat deze koppeling op maat geprogrammeerd werd, moet de klant niet inboeten aan een gebruiksvriendelijke interface. In het CMS wordt een nieuwe pagina gemaakt waarop het overzicht van de geïmporteerde vacatures te zien is. De non-actieve vacatures, dit zijn diegene die niet meer aanwezig zijn in Carerix, worden ook duidelijk aangeduid.

3

Deze synchronisatie wordt elk uur automatisch uitgevoerd. Indien de klant uitzonderlijk een snelle synchronisatie nodig heeft, kan hij/zij dit handmatig uitvoeren via het CMS. Achter de schermen worden de vacatures gekoppeld aan de entries van het type Vacature die we eerder hebben aangemaakt in het CMS, wat het daarna mogelijk maakt om op de website een overzicht te tonen van de vacatures.

4

Koppeling in twee richtingen

Daar stopt het natuurlijk nog niet. Want onder elke vacature staat een sollicitatieformulier die natuurlijk ook in het ATS pakket opgevolgd moet worden. Daarvoor maken we gebruik van dezelfde API van Carerix.

5

Wanneer een sollicitant het formulier invult, worden de gegevens eerst opgeslagen in het CMS. Wanneer alles correct ingevuld is, kan de data uit Craft dan omgezet worden naar een formaat dat Carerix accepteert. In dit geval maakten we gebruik van de REST API die Carerix zelf aanbiedt. De sollicitatie wordt dan automatisch ook gekoppeld aan de vacature in kwestie zodat binnen Carerix meteen de correcte personen op de hoogte kunnen gebracht worden van de nieuwe sollicitatie.

Op deze manier kan Merito het vacature-deel van hun website volledig beheren via het ATS pakket zonder dat ze dubbel werk hebben om vacatures op beide systemen te publiceren.

Automatisch laten uitvoeren

In beide gevallen is het gewenst dat deze imports op vastgestelde tijdstippen uitgevoerd worden zonder dat een handmatige actie vereist is. Met zowel de Feed Me-plugin als een op maat gemaakte koppeling worden URL’s gegenereerd die op hun beurt dan gebruikt kunnen worden om de import te starten.

Met deze URL hebben we dan de mogelijkheid om een geplande taak in te stellen. Dit kan op elk mogelijk tijdstip ingesteld worden, van elke 5 minuten tot bijvoorbeeld elke weekdag om 19u. Het feit dat deze URL beschikbaar is, stelt de klant ook in staat om deze imports handmatig op te roepen.

Wil je de voordelen ontdekken voor het koppelen van jouw website of webshop met Craft CMS?

Bekijk hier welke koppelingen we al hebben ontwikkeld

Stay updated!
Nieuwsbrief

Schrijf je in voor onze nieuwsbrief

Wil je op de hoogte blijven van de laatste digitale trends, tips & tricks, interessante events en seminaries? Schrijf je dan in voor onze nieuwsbrief.

Schrijf mij in!