Magento - 产品系列,包含当前用户的愿望清单

时间:2012-03-08 18:05:45

标签: magento

在Magento php Controller中,我如何获得包含登录用户(即当前用户)愿望清单中列出的产品的产品系列。

我正在使用:

获取愿望清单
$wishList = Mage::getModel('wishlist/wishlist')->loadByCustomer(Mage::getSingleton('customer/session')->getCustomer());

,这包含正确数量的项目。

但我想获得一个产品系列。我试过了:

$productCollection = $wishList->getProductCollection();

$productCollection = $wishList->getProductCollection()->addAttributeToSelect('id')->load();

但我得到的产品系列的长度为0.

如何获得产品系列?

3 个答案:

答案 0 :(得分:4)

您可以使用心愿单帮助程序中的getWishlistItemCollection(请参阅链接以获取更多详细信息)来返回项目集合,然后您需要从项目中获取产品。

我一直在使用以下代码创建产品的关联数组,然后我用它来确定我在列表页面中显示的产品是否在愿望清单中......希望这会有所帮助:

public function getWishList() {
    $_itemCollection = Mage::helper('wishlist')->getWishlistItemCollection();
    $_itemsInWishList = array();

    foreach ($_itemCollection as $_item) {
        $_product = $_item->getProduct();

        $_itemsInWishList[$_product->getId()] = $_item;
    }

    return $_itemsInWishList;   
} 

答案 1 :(得分:3)

尝试使用产品所有细节,如名称,图像等......

<?php
 $customer = Mage::getSingleton('customer/session')->getCustomer();
 if($customer->getId())
{
     $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer, true);
     $wishListItemCollection = $wishlist->getItemCollection();
     foreach ($wishListItemCollection as $item)
     {
           echo $item->getName()."</br>";
           echo $item->getId()."</br>";
           echo $item->getPrice()."</br>";
           echo $item->getQty()."</br>";  
           $item = Mage::getModel('catalog/product')->setStoreId($item->getStoreId())->load($item->getProductId());
          if ($item->getId()) :
?>
<img src="<?php echo Mage::helper('catalog/image')->init($item, 'small_image')->resize(113, 113); ?>" width="113" height="113" />
<?php endif; } } ?> 

答案 2 :(得分:1)

$customer = Mage::getSingleton('customer/session')->getCustomer();

$wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer, true);

$wishListItemCollection = $wishlist->getItemCollection();

foreach ($wishListItemCollection as $item)
{
   // do things
}