Obsługa Magento za pomocą SOAP na przykładzie catalog_product.info

SOAP to skrót od Simple Object Access Protocol. Jest to jeden z protokołów wspieranych przez Magento do zdalnego komunikowania się z nim i wykonywania określonych zadań na zdalnym systemie. SOAP wykorzystuje XML oraz HTTP. Umożliwia realizację podobnych funkcjonalności, które daje Magento API, ale właśnie w spoób zdalny.

Aby rozpocząć korzystanie z SOAP, muszą być wzięte pod uwagę 3 kwestie:

  • Zarówno na zdalnym oraz lokalnym komputerze muszą być uruchomione rozszerzenia PHP o nazwie php_soap.

  • Trzeba zweryfikować poprawną współpracę określonych wersji PHP z bibliotekami SOAP dostarczonymi wraz z Magento. Zazwyczaj nie ma z tym problemu, ale np. wesja PHP 5.3.0 ma z tym problem i korzystając z tej wersji nie połączymy się z Magento za pomocą SOAP.

  • Należy w Magento utworzyć konto użytkownika SOAP w Admin->System->Web Services.

Poniżej przykład pokazujący jak połączyć się przez SOAP z Magento i pobrać informacje o konkretnym produkcie wskazanym przez SKU.

$mage_url = 'http://127.0.0.1/magento1330/api/?wsdl';
$soap = new SoapClient($mage_url);

$mage_user = 'login';
$mage_api_key = 'pass';
$session_id = $soap->login( $mage_user, $mage_api_key );

$a = $soap->call( $session_id, 'catalog_product.info', 'SKU' );
var_dump($a);