2012-12-28 84 views
0

我的設置是這樣的Magento的REST API URL檢索產品從特定網站

  • 默認 - >總店 - > MainStoreView
  • WEBSITE1 - >存儲1 - > StoreView1 商店2 - > StoreView2

現在我想知道如何從Website1-> Store1或Website1-> Store2中檢索產品。我想過使用像www.mysite.com/api/rest/products/這樣的普通url並通過storeId過濾產品,但問題是我沒有從Website1獲取任何產品。我只從默認網站獲取產品。

任何人都可以透露爲什麼會發生這種情況嗎?

回答

0

綜觀:Mage_Catalog_Model_Api2_Product_Rest::_retrieveCollection()

$collection = Mage::getResourceModel('catalog/product_collection'); 
$store = $this->_getStore(); 
//[...] 
$collection->addStoreFilter($store->getId()) 

所以,收集考慮到商店視圖過濾器。讓我們深入deepr在_getStore()方法:

Mage_Api2_Model_Resource::_getStore()

protected function _getStore() 
    { 
     $store = $this->getRequest()->getParam('store'); 
     try { 
      if ($this->getUserType() != Mage_Api2_Model_Auth_User_Admin::USER_TYPE) { 
       // customer or guest role 
       if (!$store) { 
        $store = Mage::app()->getDefaultStoreView(); 
       } else { 
        $store = Mage::app()->getStore($store); 
       } 
      } else { 
       // admin role 
       if (is_null($store)) { 
        $store = Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID; 
       } 
       $store = Mage::app()->getStore($store); 
      } 
     } catch (Mage_Core_Model_Store_Exception $e) { 
      // store does not exist 
      $this->_critical('Requested store is invalid', Mage_Api2_Model_Server::HTTP_BAD_REQUEST); 
     } 
     return $store; 
    } 

在此基礎上,我相信你可以指定:your_request_url?param...&store=STORE_ID

+0

感謝Florinel這正是我一直在尋找:)。 –