扩展Magento中的当前API以获取JSON格式的项目

时间:2010-11-30 05:19:13

标签: json api magento

我是Magento的初学者。我正在尝试扩展Magento中的当前API类以满足我的要求并以JSON格式检索数据。我需要:

  1. 我需要在网站上找到所有商店
  2. 我需要在特定商店中获取所有类别和子类别
  3. 我需要获得特定类别的所有产品。
  4. 检索到的所有数据都应采用JSON格式。
  5. 任何博客/论坛主题?有什么帮助吗?

    提前致谢。

5 个答案:

答案 0 :(得分:10)

请参阅此Magento维基页面http://www.magentocommerce.com/wiki/doc/webservices-api/custom-api#creating_custom_adapter_for_api

步骤:

  1. 您需要创建一个应该实现Mage_Api_Model_Server_Adapter_Interface的新API服务器适配器。

  2. 创建一个将运行api服务器适配器的控制器

  3. 为进程JSON请求实现Mage_Api_Model_Server_Adapter_Interface::run()方法并在JSON中返回结果。有关了解Magento API工作流程的信息,请参阅Mage_Api_Model_Server_Handler_Abstract

答案 1 :(得分:2)

从来就不是这样的情况,但想到的一个想法是调用SOAP服务或XML-RPC,然后转换JSON所需的任何数据。

Magento提供SOAP或XML-RPC Web服务,可以为用户自动生成特定角色,非常有用。

答案 2 :(得分:1)

这将是一个更好的方法,并不是很复杂。请参阅此处。 http://www.magentocommerce.com/wiki/5_-_modules_and_development/web_services/additional_information

答案 3 :(得分:0)

见这里 https://github.com/app-z/magento-android-web-api
甚至有随机产品清单
这是你想要的吗?

//
//  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;
}

答案 4 :(得分:-1)

Inchoo为Magento编写了一个免费的REST,JSON和AMF适配器。您可以在此处找到它:http://www.magentocommerce.com/magento-connect/inchoo-api.html