Ich entwickle ein System, das eine vorhandene Django-Anwendung in einen Magento-Store integriert. Mit dieser Bibliothek habe ich es geschafft, erwartungsgemäß Produkte vom Typ Bundle zusammen mit Attributen und Kategorien zu erstellen. Das Problem ist, dass ich mithilfe der API (entweder über die oben genannte Bibliothek oder durch xmlrpc
direkten Aufruf der Methoden) keine Möglichkeit finden kann, Produkte zu einem zuvor erstellten Bundle hinzuzufügen. Das Aufrufen der catalog_product.info
Methode gibt nichts Nützliches über die gebündelten Objekte zurück.
Ich habe online recherchiert und nur Lösungen gefunden, die Folgendes beinhalten:
- PHP-Skripte, die die Magento-Codebasis verwenden
- Direktes Einfügen in die Datenbank
Beides ist derzeit keine Option für mich, und ich denke nicht, dass es keine irrealistische Erwartung ist, dies nur mit der API (entweder REST oder SOAP) tun zu können.
quelle
Antworten:
Hintergrund
Mit der Out-of-Box-API allein ist dies nicht möglich . Die Dokumentation scheint diesbezüglich ziemlich klar zu sein, da sie keine Möglichkeit dokumentiert, Auswahlen und Optionen für ein Bundle festzulegen
Abgesehen davon zeigt das Fehlen einer api.xml- Datei im
Mage_Bundle
Paket, dass es keine Unterstützung gibt. Vergleichen Sie dies mit einem anderen Produkttyp, der nach 1.0 verfügbar ist, wie z. B. Downloadable, und es ist offensichtlich, dass der Mangel an Unterstützung beabsichtigt zu sein scheint.Warum sollten sie hier absichtlich auf Unterstützung verzichten? Das Kernteam kann sich wahrscheinlich diesem Ziel anschließen. Ich vermute, dass die Anzahl der verfügbaren Optionen und die Komplexität beim Entwerfen einer solchen API in den Kosten-Nutzen-Berechnungen nicht berücksichtigt wurden.
Also, was tun?
Wie Oleksii bereits betont hat, müssen Sie die Magento-API erweitern, damit dies möglich ist.
Ein eigenständiges Barebone-Skript, das eine Bundle-Auswahl / -Option erstellt, sieht ungefähr so aus:
Wir müssten also höchstens eine API-Schnittstelle für die erforderlichen Optionen bereitstellen. Erstellen Sie ein neues Modul mit einem Modell, das das abstrakte Magento-API-Modell erweitert, und einer Methode, die die Parameter
$items
und$selectionRawData
als Parameter verwendet:Denken Sie daran
$items
und$selectionRawData
sind Arrays (Beispiele sind oben im eigenständigen Skriptcodeblock aufgeführt).Erstellen Sie nun eine api.xml- Datei in Ihrem
etc
Verzeichnis Ihres Moduls mit den folgenden Inhalten:Das ist es.
Und um die neue API aufzurufen, die wir verwenden:
Vorsichtsmaßnahmen / Voraussetzungen
save
Aufruf ersticken und Ausnahmen auslösenradio
Knopf - es gibt auch andere:dropdown
,checkbox
zum Beispiel.$items
Array erstellt ein Bündelelement zum Festpreis. Dies kann ignoriert werden oder für ein dynamisches Preispaket ersticken.Verweise:
http://kavinduthundeniya.blogspot.de/2012/11/magento-extention-api-for-bundle.html
/programming/3108775/programmatisch-add-bundle-products-in-magento-using-the-sku-id-of-simple-it
quelle