我是Magento的初学者。我正在尝试扩展Magento中的当前API类以满足我的要求并以JSON格式检索数据。我需要:
任何博客/论坛主题?有什么帮助吗?
提前致谢。
答案 0 :(得分:10)
请参阅此Magento维基页面http://www.magentocommerce.com/wiki/doc/webservices-api/custom-api#creating_custom_adapter_for_api。
步骤:
您需要创建一个应该实现Mage_Api_Model_Server_Adapter_Interface
的新API服务器适配器。
创建一个将运行api服务器适配器的控制器
为进程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