- 07 Mar 2024
- 4 Minuten zu lesen
- Mitwirkende
- Drucken
- DunkelLicht
- pdf
Hoe start ik een integratie tussen RetailVista ERP en een Woocommerce webshop?
- Aktualisiert am 07 Mar 2024
- 4 Minuten zu lesen
- Mitwirkende
- Drucken
- DunkelLicht
- pdf
Dit document beschrijft de benodige instellingen om RetailVista te laten communiceren met een Woocommerce webshop.
Om gebruik te kunnen maken van deze integratie is het nodig om een licentie 'Woocommerce integratie' te hebben, samen met een webshop CAL. De Woocommerce integratie is bovendien onderdeel van 'Verkooporders Plus'. De integratie met Woocommerce ondersteunt het versturen van artikel informatie en het ontvangen van orders. Het versturen van artikel info bestaat uit het bijwerken van de verkoopprijs, inkoopprijs en voorraad van artikelen. Hiervoor wordt als basis de in RetailVista gemarkeerde webshop artikelen gebruikt.
Instellingen API communicatie
In webshop onderhoud moet Woocommerce worden aangemaakt als type webshop. De API URL is in de praktijk gelijk gebleken aan de URL van de webshop. Maar misschien zijn er ook configuraties waarbij dit verschilt. Binnen Woocommerce kan bij 'WooCommerce/Settings/Advanced', sub-tab 'REST API' een API token aangemaakt worden. Geef deze als naam 'RetailVista ERP'. Het token moet de permissie 'Read/Write' krijgen.
Maak met de door Woocommerce gegenereerde API tokens nu een webshop aan in RetailVista. De API URL is dezelfde URL als de webshop. Geef de consumer key op als gebruikersnaam en de secret als wachtwoord.
Behalve het aanmaken van de Woocommerce webshop is het nodig dat er een taakplanning aanwezig is voor het versturen van gegevens naar de webshop en voor het ophalen van orders uit de webshop. Controleer of die taakplanning aanwezig is. Vanaf de voorjaar 2023 update van RetailVista worden deze taakplanning automatisch aangemaakt.
Orders ophalen
Een lastige eigenschap van Woocommerce is dat orders direct ontstaan als een klant een winkelmandje vult. Een ander lastig probleem is dat er ook geen duidelijke order status is als een order wel afgerond is. De enige bruikbare filtering op dit moment is dat er door RetailVista gecontroleerd wordt of een order betaald is. Een ander probleem in WC is dat het filter bij opvragen orders op laatste mutatie datum eenvoudigweg niet werkt. Er wordt om die reden nu gefilterd op aanmaak datum van een order, maar dat is de datum en tijd waarop een klant begonnen is met het aanmaken van een winkelmandje. RetailVista kijkt op dit moment 48 uur terug qua aanmaak datum. Winkelmandjes die eerder als 48 uur worden start, worden niet meegenomen in de import. Misschien dat toekomstige versies van WC niet langer de bug hebben rond filtering op de laatste mutatiedatum, dan werkt het ophalen van orders betrouwbaarder.
Ten aanzien van betalingen ondersteund Woocommerce slechts 1 betaling op een order, dat wil zeggen via de API komt er slechts een 'datum betaald' binnen, het betaalde bedrag lijkt niet beschikbaar. Zodra het veld 'datum betaald' gevuld is, dan wordt het totale orderbedrag beschouwd als de betaling.
Artikelen versturen
In webshop onderhoud kunnen geavanceerde instellingen opgegeven worden. Een aantal instellingen daarvan zijn standaard en gelden voor welke webshop integratie, zie oa QA833. De instellingen die in dit document beschreven staan zijn uitsluitend van toepassing op een Woocommerce integratie.
ProductIdentifierPrefix=<value>
Deze instelling is alleen van toepassing op zogenaamde 'terugval' artikel zoekacties. In de webshop instellingen van RetailVista is instelbaar of er gebruikt gemaakt mag worden van een fallback, en welk artikel veld dat dan wordt. Standaard wordt er altijd gezocht op barcode om een match te vinden in de webshop artikelgegevens. Met de fallback instelling wordt op een 2e manier naar een artikel gezocht, bijvoorbeeld vanuit de zoektekst van een artikel in RetailVista. Met deze instelling is het mogelijk om aan te geven dat in RetailVista een prefix gebruikt is, die uiteraard niet bestaat op de webshop zelf. Een voorbeeld is de zoektekst waarde 'WS1234' waarbij de productIdentifierPrefix ingesteld is op 'WS'. Deze code wordt dan weggehaald uit de terugval waarde waarna 1234 overblijft om te zoeken als artikel in Woocommerce. Deze prefix kan handig zijn om wel te gebruiken in RetailVista om webshop artikelen vindbaar te krijgen. Als in bovengenoemd voorbeeld 1234 al als zoektekst gebruikt zou zijn, dan wordt mogelijk een verkeerd artikel gevonden bij de ontvangst van webshop orders. Met deze prefix instelling kan de uniekheid altijd afgedwongen worden.
SafetyStockQty=<value>
Deze instelling gaat over de veiligheidsvoorraad. Als deze instelling gebruikt wordt, dan moet als 'value' een geheel getal gebruikt worden. Die waarde wordt van de RetailVista voorraad afgetrokken en het resultaat wordt als voorraadstand aangeboden aan Woocommerce. Met een veiligheidsvoorraad kan een iets lagere voorraad op de webshop worden getoond, zodat er enige ruimte overblijft voor voorraadverschilllen, winkel verkopen etc.
SkipUnpaid=1
Met deze instelling kan aangegeven dat alleen betaalde orders geimporteerd worden. Onbetaalde orders blijven dan achter.
County-<Country code>=<value>
In oa Ierland wordt door de pakket bezorgers veel gebruik gemaakt van de 'County' aanduiding, vergelijkbaar met provincies in NL. Probleem daarbij is dat WooCommerce geen volledige county omschrijving exporteert maar slechts een code. Met deze instelling kan een bepaalde county code worden omgezet naar een leesbare tekst. Het is dan wel nodig om één keer alle counties op te voeren, samen met hun volledige omschrijving. Een voorbeeld van deze instelling is Country-OV=Overijssel waarbij de gebruikte county code dus 'OV' is.
Let op: Bij de eerste Woocommerce oplevering is gebleken dat het om een of andere reden essentieel was dat een gebruiker ingelogd was in de backoffice van Woocommerce. Als dat het het geval was, dan was er vanuit RetailVista geen verbinding met de API te krijgen. Er ontstond dan iets van een access denied errors (precieze tekst even onbekend, evt deze QA aanvullen als dit weer gebeurd). Het doet er niet toe waar iemand ingelogd is, als er maar ingelogd is. Onduidelijk is nog of dit probleem exemplarisch is of dat het zou gelden voor alle Woocommerce websites en versies.