MagentoApi – Klasse zum einfachen Zugriff auf Magento-API
05.08.2010
Vielleicht haben Sie sich auch schon einmal mit dem Magento API rumgemüht und versucht, Produkte mittels SKU oder Namen, Attributsets (attribute sets) Attributlisten (attribute lists) oder die URL von Produkt-Bildern (product image url) via API aus Magento abzurufen. Wir haben eine rudimentäre Klassendatei erstellt, die häufig benötigte Funktionen in einfacher Weise zur Verfügung stellt.
Die MagentoApi-Class im Überblick
Diese Methoden stehen zur Verfügung:
- connect – Mit Magento über das API verbinden
- getProductBySku – Produktinfo mittels sku abrufen
- getProductByName – Produktinfo mittels Name abrufen
- getProductListByAttribute – Alle Produkte oder nach Attributwert gefilterte Produktliste abrufen
- getImageUrlBySku – Bild-URL mittels sku holen
- getAllAttributeSets – Alle Attributsets abrufen
- getAttributeListByAttributeSet – Attributliste eines Attributsets abrufen
- getAttributeOptionsByAttributeName – Alle Optionen eines Attributs mittels internem Attributnamen abrufen
Diese Variablen werden von der Klasse verwendet:
- $class->debug (boolean) – Klasse debuggen;
- $class->host (string) – Magento-Host im Format “http://www.magentohost.com/”
- $class->apiUser (string) – Magento-Api Zugangslogin
- $class->apiKey(string) – Magento-Api Zugangspasswort
- $class->sku (string) – sku
- $class->name (string) – Produktname
- $class->attributeSet (integer) – Attributset
- $class->filterAttribute (string) – Filterattribut
- $class->filterValue (string) – Filterwert
- $class->imageType (string) – thumbnail, image, small_image
MagentoApi-Class downloaden
Methoden der MagentoApi-Class im Detail
MagentoApi->connect()
Funktion
Mit dieser Methode verbinden Sie zum Magento API.
Benötigte Variablen
- host (string) - Magento-Host im Format “http://www.magentohost.com/”
- apiUser (string) – Magento-Api Zugangslogin
- apiKey (string) – Magento-Api Zugangspasswort
Beispiel für richtige Verwendung
$api = new MagentoApi();
$api->host="http://www.meinmagentoshop.de/"; // Abschliessendes / nicht vergessen
$api->apiUser="MeinApiUser";
$api->apiKey="MeinApiPasswort";
$api->connect();
Weitere Hinweise
Api-Zugangsdaten können Sie in der Magento-Administrationsoberfläche unter «System->Web Services->Users» vergeben. Beachten Sie bitte, dass Sie dem Benutzer unter «System->Web Services->Roles» auch die entsprechenden Api-Rechte vergeben müssen.
MagentoApi->debug()
Funktion
Mit dieser Methode finden Sie ganz einfach Fehler bei der Arbeit mit dieser Klasse.
Benötigte Variablen
- true/false (boolean)
Beispiel für richtige Verwendung
$api->debug=true;
MagentoApi->getProductBySku()
Funktion
Diese Funktion liefert auf Grund einer sku ein Array mit den Produktdaten eines Produktes zurück.
Benötigte Variablen
- sku (string) – sku (Produktnummer) eines Produktes
Rückgabewert
- Produktdaten (array)
Beispiel für richtige Verwendung
$api->sku="produkt_nr_1";
$productInfo=$api->getProductBySku();
Weitere Hinweise
Die ausgegebenen Produktdaten hängen von den entsprechenden Attributen ab, über welche das Produkt verfügt.
MagentoApi->getProductByName()
Funktion
Diese Funktion liefert auf Grund einer Produktbezeichnung ein Array mit den Produktdaten eines Produktes zurück.
Benötigte Variablen
- name (string) – (komplette) Bezeichnung eines Produktes
Rückgabewert
- Produktdaten (array)
Beispiel für richtige Verwendung
$api->name="produktname_produkt_nr_1";
$productInfo=$api->getProductByName();
Weitere Hinweise
Die ausgegebenen Produktdaten hängen von den entsprechenden Attributen ab, über welche das Produkt verfügt.
MagentoApi->getProductListByAttribute()
Funktion
Diese Funktion liefert eine Liste von Produkten zurück, bei welchen ein bestimmtes Attribut einen bestimmten Wert aufweist.
Benötigte Variablen
- filterAttribute (string) – Attribut, das gefiltert werden soll (optional)
- filterValue – Wert, den dieses Attribut bei den gesuchten Produkten aufweist (optional)
Rückgabewert
- Produktliste (array)
Beispiel für richtige Verwendung
$api->filterAttribute="name";
$api->filterValue="produktname_produkt_nr_1";
$productListe=$api->getProductListByAttribute();
Weitere Hinweise
Wird auf die Definition von Filterattribut und Filterwert verzichtet, werden alle Produkte zurückgeliefert.
MagentoApi->getImageUrlBySku()
Funktion
Diese Funktion liefert auf Grund einer sku und eines Bildformates eine URL zum entsprechenden Produkt-Bild zurück.
Benötigte Variablen
- sku (string) – sku (Produktnummer) eines Produktes
- imageType (string) – gewünschtes Bild, das zurückzuliefern ist. Zulässige Werte:
- thumbnail
- image (default)
- small_image
Rückgabewert
- Image URL (string)
Beispiel für richtige Verwendung
$api->sku="produkt_nr_1";
$api->imageType="thumbnail";
$thumbnailUrl=$api->getImageUrlBySku();
Weitere Hinweise
Standardmässig (d.h., falls imageType nicht definiert wird) wird das als Produktbild deklarierte Bild zurückgegeben.
MagentoApi->getAllAttributeSets()
Funktion
Diese Funktion liefert alle Attributsets eines Magento-Shops zurück.
Benötigte Variablen
keine
Rückgabewert
- Attributsets (array)
Beispiel für richtige Verwendung
$AllAttributeSets=$api->getAllAttributeSets();
MagentoApi->getAttributeListByAttributeSet()
Funktion
Diese Funktion liefert eine Liste aller in einem bestimmten Attributset vorhanden Attribute zurück.
Benötigte Variablen
- attributeSet (integer) – Nummer des Attributsets
Rückgabewert
- Attributliste (array)
Beispiel für richtige Verwendung
$AllAttributeSets=$api->getAllAttributeSets();
Weitere Hinweise
Die korrekte Nummer des Attributsets kann ohne grosse Probleme über Methode «getAllAttributeSets» ermittelt werden.
MagentoApi->getAttributeOptionsByAttributeName()
Funktion
Diese Funktion liefert eine Liste aller Optionen eines Attributs zurück.
Benötigte Variablen
- attributeSet (integer) – Nummer des Attributsets
Rückgabewert
- Liste der Attribut-Optionen (array ['value']['label'])
Beispiel für richtige Verwendung
$api->attributName="meinattribut";
$attributeOptions=$api->getAttributeOptionsByAttributeName();
Weitere Hinweise
Diese Funktion ist primär sinnvoll bei Auswahlfeldern, Mehrfachauswahlen, Checkboxen etc., die im Rahmen von Custom Options angelegt worden sind.
Kategorien: Magento-Problemlösungen, Shop-Design






Hallo,
habe die API auf meine Bedürfnisse um eine Funktion erweitert. Nämlich das alle Produkte aus einer bestimmten Kategorie abgerufen werden können.
Da ich nicht das PHP Genie bin, könnte ggf. ein Erfahrenerer anwender einen Lösungsansatz dafür erstellen, wie man die ID der Kategorie eventuell anders übermittelt, damit das ganze flexibler ist.
Hier die von mir verwendete Funktionserweiterung:
function getProductByCategory(){
try{
$filters = array(‘category_id’ => array(‘like’=>’54′));
$this->categoryProducts = $this->proxy->call($this->sessionId,’category.assignedProducts’,array($filters));
}
catch (exception $e){if ($this->debug){echo ‘Konnte Produkte auf Grund der Kategorie ID nicht holen’;}}
return $this->categoryProducts;
}