Het lukt niet de Magento webwinkel te koppelen. Wat kan de oorzaak zijn?

Als je problemen ondervindt bij het leggen van de koppeling kun je het volgende controleren:

Rechten API user: De User / Gebruiker van de API moet administrator / beheerder zijn. Ga naar Webservices -> REST OAuth Geautoriseerde Tokens. Hier zie je de applicatie-naam, maar ook het gebruikersid staan. Klik nu op Systeem -> Rechten -> Gebruikers en zorg dat de gebruiker met dit gebruikersid Administrator rechten heeft bij REST Role.

Beschikbaarheid REST API in webwinkel: We komen heel vaak tegen dat de REST API in de Magento webwinkel niet beschikbaar is. Requests naar de REST API worden doorgeleid naar een 404 - Page not found pagina. Je kunt dit testen door deze url in de browser in te voeren: https://www.uwwebwinkel.nl/api/rest/products. Geeft deze url een 403 - zoals in het volgende plaatje - dan is de standaard REST API in je webwinkel bereikbaar. Zie je een 404 dan maken redirects de REST API onbereikbaar.

Een mogelijke oorzaak kan in het .htaccess zitten. Standaard staat deze regel er in: RewriteRule ^api/rest api.php?type=rest [QSA,L]. Ontbreekt deze regel of het hele .htaccess bestand dan kan de koppeling niet worde opgezet omdat de webwinkel REST API requests redirect naar een 404-Page not Found.

Tot slot kan er een probleem zijn met de magento-headers. Dit is een beveiligingsprobleem dat we vaak zien als er gebruik gemaakt wordt van php-fpm5 / fast-cgi. Dit probleem kan zich voordoen bij webwinkels gehost bij Byte. Zij hebben een goede uitleg hoe je dit probleem kunt oplossen.

Tip van Magento-specialist Richard Blezer bij het koppelen van de Magento webwinkel:

In de hosting omgeving <zelfgekozennaam>.hypernode.io/data/web/nginx dient een bestand server.api aangemaakt te moeten worden (deze locatie is klant toegankelijk). In de deze file moet het volgende komen te staan:

location /api {
# onderstaande regels defineren de toegelaten IP adressen. Alleen gebruiken indien de IP adressen van webwinkelfacturen.nl bekend zijn. Anders middels # uitcommenteren. Deze zijn dus nu niet werkzaam.
# allow XXX.XXX.XXX.XXX; // toegelaten IP. Opvragen bij mijnwebwinkelfacturen
# allow XXX.XXX.XXX.XXX; // evt. tweede toegelaten IP. Opvragen bij mijnwebwinkelfacturen
# deny all; // blokkeer alle andere adressen
rewrite ^/api/rest /api.php?type=rest last; 
rewrite ^/api/v2_soap /api.php?type=v2_soap last; 
rewrite ^/api/soap /api.php?type=soap last;
location ~ \.php$ { 
echo_exec @phpfpm; 

}

Hierna krijgt de oproep https://<webadres>/api/rest/products een xml met een 403

{
"messages":{
" error": [
{
" code": 403,
"message": "Access denied"
}
]
}
}

Deze oplossing is universeel bruikbaar voor alle byte magento sites, aangezien deze uitsluitend hypernode voor magento hosting gebruiken.

Labels: Support