2010-11-30 7 views
7

Ich bin ein Anfänger zu Magento. Ich versuche, die aktuellen API-Klassen in Magento zu erweitern, um meine Anforderungen zu erfüllen und Daten im JSON-Format abzurufen. Ich brauche:Erweitern Sie die aktuellen APIs in Magento, um Artikel im JSON-Format zu erhalten

  1. Ich brauche alle Geschäfte in einer Website
  2. ich alle Kategorien und Unterkategorien in einem bestimmten Geschäft
  3. ich alle Produkte in einer bestimmten Kategorie zu bekommen brauchen, um brauchen.
  4. Alle abgerufenen Daten sollten im JSON-Format vorliegen.

Irgendein Blog/Forum Thema? Jede Art von Hilfe?

Vielen Dank im Voraus.

+0

Mit „erweitern die API“, meinen Sie, dass Sie die Web Service verwenden möchten, die Magento bietet, oder dass Sie nur die vorhandenen Bibliotheksklassen benutzen? –

+0

Ich muss die Webservices verwenden. Ich muss die aktuellen Klassen in Magento erweitern, indem Sie sie erweitern. – Damodaran

Antwort

10

Bitte beachten Sie diese Magento Wiki-Seite http://www.magentocommerce.com/wiki/doc/webservices-api/custom-api#creating_custom_adapter_for_api.

Schritte:

  1. Sie benötigen eine neue API-Server-Adapter zu erstellen, die Mage_Api_Model_Server_Adapter_Interface implementieren sollte.

  2. erstellen Controller, die Ihren api Serveradapter

  3. Implementieren Mage_Api_Model_Server_Adapter_Interface::run() Methode zur Prozess JSON Anfrage und das Rückergebnis in JSON laufen wird. Informationen zum Verständnis des Magento-API-Workflows finden Sie unter Mage_Api_Model_Server_Handler_Abstract.

+0

Und hier ist eine gebrauchsfertige JSON-RPC-Implementierung: http://www.schmengler-se.de/de/2015/03/ein-json-rpc-adapter-fuer-die-magento-api/ –

2

nie war eine solche Situation, aber eine Idee kam in den Sinn, einen SOAP-Service oder XML-RPC aufzurufen, dann konvertieren, welche Daten für JSON benötigt.

Magento bietet SOAP oder XML-RPC-Web-Service mit bestimmten Rollen für Benutzer automatisch generiert werden, sehr nützlich.

+0

Vereinbart, dass dies die * einfachste * Methode wäre. Ich wundere mich über die Auswirkungen auf die Leistung, aber der Aufwand für das Hinzufügen der zusätzlichen Schicht könnte für Ihre Anforderungen funktionieren. – shaune

0

Siehe hier https://github.com/app-z/magento-android-web-api
Es gibt sogar Zufallsprodukte Liste
Ist es das, was Sie wollen?

// 
// Random Products Items 
// 
// http://localhost/magento/web-api.php?route=feed/web_api/random&limit=4&key=key1 
// 
function random_products($limit){ 
    $json = array('success' => true); 

    $products = Mage::getModel('catalog/product')->getCollection(); 
    $products->addAttributeToSelect(array('name', 'thumbnail', 'price')); //feel free to add any other attribues you need. 

    Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products); 
    Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products); 
    $products->getSelect()->order('RAND()')->limit($limit); 

    foreach($products as $product){ 
     $json['products'][] = array(
       'id'  => $product->getId(), 
       'name'  => $product->getName(), 
       'href'  => $product->getProductUrl(), 
       'thumb'  => (string)Mage::helper('catalog/image')->init($product, 'thumbnail'), 
       'pirce'  => Mage::helper('core')->currency($product->getPrice(), true, false) //." ".$currencyCode, 
      ); 
    } 
    return $json; 
} 
Verwandte Themen