GeoRex integreren in Magento 2
Terug naar blog
πŸ”§ Technisch

GeoRex integreren in Magento 2

GeoRex Team22 juni 202515 min leestijd

Complete gids voor het integreren van GeoRex adresvalidatie in je Magento 2 webshop, inclusief module setup en checkout customization.

Magento 2 is één van de meest populaire e-commerce platforms. In deze uitgebreide tutorial laten we zien hoe je GeoRex integreert voor Nederlandse adresvalidatie in je checkout flow.

Module structuur

Bash
app/code/GeoRex/AddressValidation/
β”œβ”€β”€ registration.php
β”œβ”€β”€ etc/
β”‚ β”œβ”€β”€ module.xml
β”‚ β”œβ”€β”€ config.xml
β”‚ β”œβ”€β”€ adminhtml/system.xml
β”‚ └── di.xml
β”œβ”€β”€ Model/
β”‚ └── AddressValidator.php
β”œβ”€β”€ Controller/
β”‚ └── Ajax/
β”‚ └── Validate.php
└── view/
└── frontend/
β”œβ”€β”€ layout/
└── web/
└── js/

Module registratie

registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'GeoRex_AddressValidation',
__DIR__
);

API Service Class

Model/AddressValidator.php
<?php
namespace GeoRex\AddressValidation\Model;
use Magento\Framework\HTTP\Client\Curl;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\App\CacheInterface;
class AddressValidator
{
private Curl $curl;
private ScopeConfigInterface $scopeConfig;
private CacheInterface $cache;
private const CACHE_KEY = 'georex_api_token';
private const TOKEN_LIFETIME = 540; // 9 minuten (token geldig 10 min)
public function __construct(
Curl $curl,
ScopeConfigInterface $scopeConfig,
CacheInterface $cache
) {
$this->curl = $curl;
$this->scopeConfig = $scopeConfig;
$this->cache = $cache;
}
private function getToken(): string
{
$token = $this->cache->load(self::CACHE_KEY);
if (!$token) {
$apiKey = $this->scopeConfig->getValue(
'georex/general/api_key',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
$curl = new Curl();
$curl->addHeader('X-API-Key', $apiKey);
$curl->post('https://api.georex.nl/api/token', '');
$response = json_decode($curl->getBody(), true);
$token = $response['token'] ?? '';
$this->cache->save($token, self::CACHE_KEY, [], self::TOKEN_LIFETIME);
}
return $token;
}
public function validate(string $postcode, string $houseNumber): ?array
{
$token = $this->getToken();
$query = urlencode($postcode . ' ' . $houseNumber);
$url = "https://api.georex.nl/address?postcode={$postcode}&huisnummer={$houseNumber}&token={$token}";
$this->curl->get($url);
$response = json_decode($this->curl->getBody(), true);
// GeoJSON response verwerken
if (!empty($response['features'])) {
$feature = $response['features'][0];
$coords = $feature['geometry']['coordinates'];
$props = $feature['properties'];
return [
'street' => $props['street'] ?? '',
'city' => $props['city'] ?? '',
'postcode' => $props['postcode'] ?? '',
'latitude' => $coords[1],
'longitude' => $coords[0]
];
}
return null;
}
}

Frontend integratie

Voeg JavaScript toe om de checkout te verrijken met live adresvalidatie.

Samenvatting

Met deze module heb je een solide basis voor Nederlandse adresvalidatie in Magento 2. Klanten krijgen direct feedback, en je verzamelt gegarandeerd correcte adresgegevens.

magentophpecommerceintegratie
Delen:

Gerelateerde artikelen

Klaar om te beginnen met GeoRex?

Probeer onze geocoding API gratis en ontdek hoe eenvoudig adresverwerking kan zijn.

Cookie-instellingen

Wij gebruiken optionele analytische cookies om onze website te verbeteren. Deze cookies worden alleen geplaatst met uw expliciete toestemming. Meer informatie