Ich suche ein funktionierendes Beispiel für ein Magento API-fähiges Modul. Wie kann ich es definieren, den Code dafür schreiben und es aufrufen?
Eine funktionierende Konfiguration (in app / code / local / Modulname / etc /. Ich schrieb mir in api.xml):
%Vor%Der PHP-Code (in app / code / local / Modulname / Modell / Api.php):
%Vor%Der PHP-Code zum tatsächlichen Aufruf der SOAP-Schnittstelle:
%Vor%Das Ergebnis der Ausführung dieses Skripts:
%Vor%Einige Anmerkungen:
o Fehler: "Ungültiger API-Pfad."
o Fehler: "Ressourcenpfad ist nicht aufrufbar."
Dies bedeutet, dass Magento die Methode im Modul nicht aufrufen kann.
Sie können die Datei system.log verwenden, um dies zu debuggen. Es wird einen oder mehrere Fehler darüber angezeigt, wie die angeforderte Klasse nicht automatisch aus dem berechneten Dateipfad entfernt werden konnte.
2011-04-13T15: 15: 24 + 00: 00 DEBUG (7): include (Mage / Kunde / Model / Api.php) [function.include]: Fehler beim Öffnen des Streams: Keine solche Datei oder kein VerzeichnisC: /Entwicklung/Projekte/MagentoCommercial/lib/Varien/Autoload.php
2011-04-13T15: 15: 24 + 00: 00 DEBUG (7): include () [function.include]: Fehler beim Öffnen von "Mage / Customer / Model / Api.php" für die Aufnahme (include_path = 'C : / Entwicklung / Projekte / MagentoCommercial / app / code / lokal; C: / Entwicklung / Projekte / MagentoCommercial / app / code / community; C: / Entwicklung / Projekte / MagentoCommercial / app / code / core; C: / Entwicklung / Projekte / MagentoCommercial / lib;.; C: / Entwicklung / Bibliotheken; C: / Entwicklung / Bibliotheken / Standard / _Pear ') C: /Entwicklung/Projekte/MagentoCommercial/lib/Varien/Autoload.php
o Die oben genannte Modul-Config-XML verknüpft diese SOAP-Schnittstelle mit einem neuen Element in den API-Berechtigungen namens "Get Info Test" unter der Gruppe "Customers". Es wird dann verfügbar sein, um bestimmte API-Benutzer / Rollen zu erlauben oder zu verweigern.
o Der Wert unter / config / api / resources / customer / methods / info in der XML-Datei von module-config ist der interne Methodenname der Methode, die an den SOAP-Ressourcennamen gebunden werden soll. Wenn sie gleich sind, können Sie dies weglassen.
o Der Wert unter / config / api / resources / customer (der 'ModuleName_Model_Api' ist) ist der vollständige Klassenname, da er sich offensichtlich auf meine Klasse bezieht, die nicht zu Mage gehört. Wenn Sie versuchen, eine bestehende Klasse in Mage aufzurufen, können Sie einfach die Kurzschreibweise (xxx / yyy, xxx / yyy_zzz, etc ..) verwenden.
o Nur im ACL-Teil der module-config scheint der Wert der "module" -Attribute (& lt; ... module="" & gt;) von Bedeutung zu sein. Egal, stellen Sie sicher, dass es überall richtig eingestellt ist (Fall spielt keine Rolle). Es könnte sein, dass sie es noch nicht Mainstream implementiert haben, und es zu ignorieren, wird Ihnen später nur Probleme bereiten.
Dustin Oprea