2014-03-07 117 views
1

我正在研究只有可下载产品的商店。我需要获得每个客户的可下载产品,并能够按产品名称和sku进行分类。我目前的代码在检索所有的下载链接。Magento加入收藏表

$purchasedItems = Mage::getResourceModel('downloadable/link_purchased_item_collection') 
      ->addFieldToFilter('purchased_id', array('in' => $purchasedIds)) 
      ->addFieldToFilter('status', 
       array(
        'nin' => array(
         Mage_Downloadable_Model_Link_Purchased_Item::LINK_STATUS_PENDING_PAYMENT, 
         Mage_Downloadable_Model_Link_Purchased_Item::LINK_STATUS_PAYMENT_REVIEW 
        ) 
       ) 
      ); 

但是,这不会返回产品名称和SKU。所以我尝试加入到catalog_product_flat表中。

$productTableName = Mage::getSingleton('core/resource')->getTableName('catalog/product_flat'); 
$purchasedItems->getSelect() 
      ->join(array('products' => $productTableName), 'main_table.product_id = products.entity_id', array('table_alias.*')); 

做一个var_dump($purchasedItems)回报Mage_Downloadable_Model_Resource_Link_Purchased_Item_Collection Object。但我无法迭代$purchasedItems

任何帮助将不胜感激。

+0

如果您使用平板电脑为您的目录它将工作,如果不是,您可以尝试加入您需要的属性的产品集合 – dima

回答

4

请看看加入magento自定义,我在我的项目中使用它,它是完美的工作。

语法

$collection = Mage::getModel('module/model_name')->getCollection(); 

$collection->getSelect()->join(Mage::getConfig()->getTablePrefix().'table_name_for_join', 'main_table.your_table_field ='.Mage::getConfig()->getTablePrefix().'table_name_for_join.join_table_field',array('field_name_you_want_to_fetch_from_db')); 

工作查询示例

$collection = Mage::getModel('module/model_name')->getCollection(); 
$collection->getSelect()->join(Mage::getConfig()->getTablePrefix().'catalog_product_entity_varchar', 'main_table.products_id ='.Mage::getConfig()->getTablePrefix().'catalog_product_entity_varchar.entity_id',array('value')); 

希望这会为你工作,以及!

干杯!

+0

任何机会发布你如何做它?谢谢 – vbak