Zugriff von Magento von extern über Magento-API
Magento ermöglicht nicht nur das Verwalten der Daten über das eigene Admin-Back-End, sondern auch den Zugriff über eine sogenannte „WSDL“ eine SOAP Kommunikation zur Magento-API aufzubauen. Die Magento SOAP Schnittstelle bietet sämtliche Funktionalitäten, Artikel-Import mit Bildern, Bestellungen verwalten, Lagerverwaltung, etc..
Um die Sicherheit zu gewährleisten muss ein API-Users samt Password definiert werden. Im folgenden möchten wir Euch eine kurze Einleitung zur Verwendung geben. Vorab solltet ihr noch prüfen ob die SOAP-PHP-Extension geladen ist (siehe php.ini)
Anlegen einer Rolle für die API-User
Unter System->Web Dienste->Gruppenberechtigungen vergebt ihr ein Namen für die Gruppe und bei Gruppenberechtigung Quellen das entsprechende Zugriff-Level auf die entsprechenden Ressourcen bzw. wählt ggf. Alle bei Quellenzugriff aus (speichern nicht vergessen).
Anlegen des API-Benutzers
Das geht im Admin-Bereich unter System -> Web Dienste-> Benutzer, dort auf den Button neuer Benutzer klicken und die entsprechenden Daten eingeben. Unter Benutzer Gruppenberechtigung wählt ihr die eben neu angelegte Gruppe um das Zugriffs-Level zu managen (speichern nicht vergessen).
Zugriff über externen PHP-Script auf Magento API
Mit dem folgenden PHP-Script könnt ihr Euch nun mit der Magento-API connecten und anschließend eine Übersicht der zur Verfügung stehenden Funktionen ausgeben lassen (SOAP V1 Zugriff):
<?php /** * fly2mars-media * http://www.fly2mars-media.de * http://www.fly2mars-media.de/seoblog */ $host= '127.0.0.1'; // host name der magento installation $options = array(); $proxy = new SoapClient('http://' . $host . '/index.php/api/soap/?wsdl'); // show available function $avail = $proxy->__getFunctions(); foreach($avail as $func) { echo "<p>" . $func . "</p>"; } $proxy->endSession($session); ?>
Bei $host ist logischerweise der Hostname einzutragen unter welchem die Magentoinstallation aufgerufen werden kann.
Mit dem folgenden PHP-Script könnt ihr Euch nun mit der Magento-API connecten und anschließend eine Übersicht der zur Verfügung stehenden Funktionen ausgeben lassen (SOAP V2 Zugriff):
<?php /** * fly2mars-media * http://www.fly2mars-media.de * http://www.fly2mars-media.de/seoblog */ $host= '127.0.0.1'; // host name der magento installation $options = array(); $proxy = new SoapClient('http://' . $host . '/api/v2_soap?wsdl=1', $options); // show available function $avail = $proxy->__getFunctions(); foreach($avail as $func) { echo "<p>" . $func . "</p>"; } $proxy->endSession($session); ?>
Wie ihr seht, gibt es zwei Möglichkeiten des Zugriffs über SOAP auf die Magento-API.
V2 wurde um die Kompatibilität mit Java und .NET erweitert samt mehr Funktionen zum Aufruf (vergleicht einfach die Funktions-Listen beider Versionen).
Soweit so gut … als nächstes lassen wir uns eine Katalog-Liste als Baumstruktur ausgeben, dazu verwendet ihr folgenden PHP-Code:
<?php /** * fly2mars-media * http://www.fly2mars-media.de * http://www.fly2mars-media.de/seoblog */ $host= '127.0.0.1'; $options = array(); $proxy = new SoapClient('http://' . $host . '/index.php/api/soap/?wsdl'); // add or edit this in Magento-Admin -> Web Services $apiuser= 'apiuser'; $apikey = 'efjiwofjioefjio234789f3h7ed789fh'; try { $session = $proxy->login($apiuser, $apikey); $proxy->startSession(); $catalog = $proxy->call($session, "catalog_category.tree"); } catch (Exception $e) { echo "==> Error: ".$e->getMessage(); exit(); } foreach($catalog['children'] as $child) { echo $child['name'] . " (id:" . $child['category_id'] . ")\n"; } //Logout $proxy->endSession($session); ?>
Bei $host ist logischerweise der Hostname einzutragen unter welchem die Magentoinstallation aufgerufen werden kann. Bei $apiuser und $apikey tragt ihr die entsprechend im Admin-Back-End eingegebenen Daten des API-Users ein.
Nach dem ausführen des Scriptes erhaltet ihr folgende Ausgabe:
Mit dem Zugriff über die API lassen sich problemlos externe ERP- oder CRM-Anwendungen an Magento anschließen oder Daten (Warenbestand) importieren.
Sie Benötigen Unterstützung bei der Erstellung oder Anpassung eines Magento eCommerce Shop System?
Fly2Mars-Media unterstützt Sie in diesem und vielen anderen Bereichen rund um das Thema Internet & IT!
Für ein individuelles Angebot nehmen Sie noch heute Kontakt mit uns auf.