Расширение текущих API в Magento для получения элементов в формате JSON - PullRequest
7 голосов
/ 30 ноября 2010

Я новичок в Magento.Я пытаюсь расширить текущие классы API в Magento для выполнения моих требований и получения данных в формате JSON.Мне нужно:

  1. Мне нужно получить все магазины на сайте
  2. Мне нужно получить все категории и подкатегории в определенном магазине
  3. Мне нужно получить всепродукты в определенной категории.
  4. Все полученные данные должны быть в формате JSON.

Любой блог / тема на форуме?Любая помощь?

Заранее спасибо.

Ответы [ 5 ]

10 голосов
/ 01 декабря 2010

Пожалуйста, обратитесь к этой вики-странице Magento http://www.magentocommerce.com/wiki/doc/webservices-api/custom-api#creating_custom_adapter_for_api.

Шаги:

  1. Вам необходимо создать новый серверный адаптер API, который должен реализовывать Mage_Api_Model_Server_Adapter_Interface.

  2. Создайте контроллер, который будет запускать ваш серверный адаптер API

  3. Реализовать Mage_Api_Model_Server_Adapter_Interface::run() метод для обработки JSON-запроса и возврата результата в JSON. См. Mage_Api_Model_Server_Handler_Abstract для понимания рабочего процесса Magento API.

2 голосов
/ 30 ноября 2010

такой ситуации никогда не было, но пришла в голову идея вызвать службу SOAP или XML-RPC, а затем преобразовать все необходимые данные в JSON.

Magento предлагает веб-службу SOAP или XML-RPCбыть автоматически сгенерированными с определенными ролями для пользователей, очень полезно.

1 голос
/ 22 декабря 2010

Это был бы лучший подход, и это совсем не сложно. Обратитесь к этому, чтобы увидеть. http://www.magentocommerce.com/wiki/5_-_modules_and_development/web_services/additional_information

0 голосов
/ 26 июля 2014

Смотрите здесь 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;
}
0 голосов
/ 11 апреля 2012

Inchoo написал бесплатный адаптер REST, JSON и AMF для Magento.Вы можете найти его здесь: http://www.magentocommerce.com/magento-connect/inchoo-api.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...