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.