2015-05-27 6 views
2

Я новичок в magento и делаю мобильное приложение, для этого я использую REST API. Но в API списка продуктов я хочу добавить хотя бы одно изображение продукта, чтобы приложение не занимало много времени для загрузки.Как включить изображения продуктов в список продуктов Magento Rest Api

Я видел подобную question для SOAP API, что приводится ниже решения:

public function assignedProducts($categoryId, $store = null) 
{ 
    $category = $this->_initCategory($categoryId); 

    $storeId = $this->_getStoreId($store); 
    $collection = $category->setStoreId($storeId)->getProductCollection() 
    ->addAttributeToSelect(array('brand','image','price','description','short_description','name')); 
    ($storeId == 0)? $collection->addOrder('position', 'asc') : $collection->setOrder('position', 'asc'); 

    $result = array(); 
    $type = 'image'; 
    foreach ($collection as $product) { 
     $result[] = array(
      'product_id' => $product->getId(), 
      'type'  => $product->getTypeId(), 
      'set'  => $product->getAttributeSetId(), 
      'sku'  => $product->getSku(), 
      'position' => $product->getCatIndexPosition(), 
      'brand'  => $product->getData('brand'), 
      'price'  => $product->getData('price'), 
      'name'  => $product->getData('name'), 
      'description'  => $product->getData('description'), 
      'short_description'  => $product->getData('short_description'), 
      'image_url' => $product-> getImageUrl() 
     ); 
    } 

    return $result; 
} 

Но я не могу найти ничего о REST API. Я пытался что-то сделать в protected function _retrieveCollection() класса app/code/core/Mage/Catalog/Model/Api2/Product/Rest.php, но не успел.

ответ

0

Если вы используете контекст администратора, чтобы получить сбор продукта вы не получите изображение URL ссылки в ответ, так как он использует Mage_Catalog_Model_Api2_Product_Rest_Admin_V1 :: _ retrieveCollection.

Если вы используете клиент или гостевой контекст, вы получите «image_url» для каждого продукта, который является образцом стандартного размера. Это обрабатывается в Mage_Catalog_Model_Api2_Product_Rest :: _ retrieveCollection по вызову Mage_Catalog_Model_Api2_Product_Rest :: _ prepareProductForResponse для каждого продукта в коллекции. Вы можете расширить Mage_Catalog_Model_Api2_Product_Rest :: _ prepareProductForResponse и добавить дополнительные URL-адреса изображений для «small_image» и «thumbnail», если хотите.

+0

В качестве побочного примечания я рекомендую https://github.com/Vinai/VinaiKopp_Api2SessionLogin и https://github.com/Vinai/VinaiKopp_Api2SessionAuthAdapter, если вы используете Mage_Api2 для API-интерфейсов, ориентированных на клиента. Они разрешают использование сеанса cookie вместо токенов Oauth. В некоторых случаях это лучше. –

0

Quick Fix:
В: приложение/код/​​ядро ​​/ Mage/Каталог/модели/API2/продукта/Rest.php
Под функции: функция _prepareProductForResponse
Добавьте следующую строку, чтобы показать изображение.

$productData['image_url'] = (string) Mage::helper('catalog/image')->init($product, 'image'); 

Правильный путь:
Создание пользовательского расширения для API и добавьте строку выше в расширении.

Смежные вопросы