Zugriff von Magento von extern über Magento-API

10. November 2009 at 11:20

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.

Video: Zend Framework – Download, Installation & Start mit Core Features

22. Oktober 2009 at 17:01

Eine kurze Video-Einführung (Webcast) zum Zend Framework findet ihr hier .

Dort wird neben der Installation und Installation des FrameWorks kurz erläutert an einem Beispiel wie dieses zu verwenden ist.

Sie benötigen Support im Bereich Zend-Framework? Fly2Mars-Media unterstützt Sie bei Projekten im Bereich PHP, ZendFramework, Mysql und mehr.

Für ein individuelles Angebot nehmen Sie noch heute Kontakt mit uns auf.

ZendServer Installation Problem – Lösung

20. Oktober 2009 at 20:46

Solltet ihr bei der Zend Server Installation unter Windows Vista die Fehlermeldung „Error: -1622 Beim Öffnen der Datei des Installationsprotokolls ist ein Fehler aufgetreten. … “ oder auf engl. „Error -1622 Error opening installation log file. Verify that the specified log file location exists and that you can write to it.“ erhalten, hier die Lösung.

Das Problem liegt wahrscheinlich in der Vorkonfiguration des NTFS „junction points“.
Zur Lösung des Problems einfach folgende Schritte ausführen:
  • Eingabeaufforderung unter Vista öffnen (Windows-Taste + R)
  • Den Tast (Eingabeaufforderung) mit Administrator-Rechten öffnen (rechter klick auf die cmd.exe im Start-Menu und „Als Administrator ausführen“ wählen)
  • In der Eingabeaufforderungen (CMD-Box) gebt ihr ‚echo %ALLUSERSPROFILE%‘ ein. Die Ausgabe sollte als junction point der Profile „Application Data“ anzeigen, in diesem Fall könnt ihr die restlichen Schritte überspringen. Ist die Ausgabe „C:\ProgramData“ so könnt ihr dies wie folgt ändern:
  • Gebt ‚cd \ProgramData‘ ein und wechselt
  • Löscht den Ordner ‚rmdir „Application Data“‚ (das entfernt den falschen junction point).
  • Verlinkt den junction point neu mit ‚mklink /j „Application Data“ C:\ProgramData‘
  • Zend Server erneut installieren

Performancemodul für Magento angekündigt

20. Oktober 2009 at 19:01

Die Leipziger Internetagentur Netresearch will dem OpenSource-Shopsystem Magento Beine machen und hat ein Performance-Modul angekündigt. Mit dem Modul soll der Seitenaufbau im Magentoshop beschleunigt werden.

Aktuell werden die Produktlisten und Produktdetailseiten im Magentoshop bei jedem Aufruf neu generiert, dadurch verlängert sich die Ladezeit beim Seitenaufbau. Das Modul von Netresearch rüstet eine Cachingfunktion nach, welche das Neugenerieren unnötig macht. Die Ladezeit soll sich dadurch um bis zu 2/3 verringern lassen.

Das neue Modul wird offiziell am 2. November auf dem Community Treff „Meet Magento #2.09“ in der Frankfurter Börse vorgestellt.

Die Magento-Community ist gespannt!

Magento: Datenbank reparieren (kostenloses Database Repair Tool)

12. Oktober 2009 at 16:15

Die Magento Entwickler haben ein kostenloses Tool namens „Magento Database Repair Tool“ zum finden prüfen und reparieren von Datenbanken veröffentlicht. Es lassen sich damit zwei Datenbanken miteinander vergleichen, sollte es zu Abweichungen kommen so werden fehlende Tabellen hinzugefügt oder vorhandene repariert. Außerdem werden fehlende Felder hinzugefügt und inkonsistente Daten entfernt. Darüber hinaus werden fehlende Fremdschlüssel oder Indexe hinzugefügt, falls sie fehlen sollten. Das Tool steht ab sofort zum Download bereit.

Download (klick hier)

Vorstellung der Entwicklungsumgebung ZendStudio 7

10. Oktober 2009 at 21:30

Eine mit der Besten Entwicklungsumgebungen für die Entwicklung im PHP & Zend-Umfeld ist unser Meinung das ZendStudio von der gleichnamigen Firma Zend. Seit Version 6 basierend auf Eclipse, einer mächtigen und gut zu skalierenden Entwicklungsumgebung von IBM & SUN welche ursprünglich für die Entwicklung im Java-Umfeld konzipiert wurde.

Zend hat ein Video online gestellt in welchem ihr ein schnellen Einblick über die Funktionalität erhalten könnt.

Link zum Webminar von Zend

Performance-Optimierung von Magento mit Zend Server

10. Oktober 2009 at 21:04

Wie gerade aus dem Zend-Newsletter zu entnehmen gibt es auf der Zend-Seite ein kostenloses Video über Performance-Optimierung der Magento E-Commerce Shop Software mit Zend Server.

Allen nicht Newsletter Abonennten wollten wir das Video nicht vor enthalten!

Hier geht es zum Video

Mit PHP Cloud-Applikationen für Cloud entwickeln

10. Oktober 2009 at 20:52

Zusammen mit Branchengrößen wie Microsoft, IBM, Rackspace Hosting, Nirvanix und GOGRID arbeitet Zend derzeit an daran PHP und damit PHP-Webanwendungen Plattform-Unabhängig für Cloud einsetzen zu können. Dazu wird unter anderem eine Simple Cloud API und das ZendFramework entwickelt und im Rahmen der Open Source Initiative kostenlos zur Verfügung gestellt.

Fly2Mars-Media begrüßt dieses Schritt! 🙂