Magento - 包含当前用户愿望清单的产品系列
Posted
技术标签:
【中文标题】Magento - 包含当前用户愿望清单的产品系列【英文标题】:Magento - Product Collection with the current user's Wishlist 【发布时间】:2012-03-08 18:05:44 【问题描述】:在 Magento php 控制器中,如何获取包含登录用户(即当前用户)愿望清单中列出的产品的产品集合。
我正在使用以下方式获取愿望清单:
$wishList = Mage::getModel('wishlist/wishlist')->loadByCustomer(Mage::getSingleton('customer/session')->getCustomer());
这包含正确数量的项目。
但我想获得一个产品集合。我试过了:
$productCollection = $wishList->getProductCollection();
和
$productCollection = $wishList->getProductCollection()->addAttributeToSelect('id')->load();
但我得到的产品集合的长度为 0。
我如何获得产品集合?
【问题讨论】:
【参考方案1】:您可以使用愿望清单助手中的getWishlistItemCollection(有关详细信息,请参阅链接)返回一组物品,然后您需要从该物品中获取产品。
我一直在使用以下代码创建产品的关联数组,然后我用它来确定我在列表页面中显示的产品是否在愿望清单中...希望这会有所帮助:
public function getWishList()
$_itemCollection = Mage::helper('wishlist')->getWishlistItemCollection();
$_itemsInWishList = array();
foreach ($_itemCollection as $_item)
$_product = $_item->getProduct();
$_itemsInWishList[$_product->getId()] = $_item;
return $_itemsInWishList;
【讨论】:
【参考方案2】:尝试使用产品的所有详细信息,如名称、图像等...
<?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); ?>" />
<?php endif; ?>
【讨论】:
【参考方案3】:$customer = Mage::getSingleton('customer/session')->getCustomer();
$wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer, true);
$wishListItemCollection = $wishlist->getItemCollection();
foreach ($wishListItemCollection as $item)
// do things
【讨论】:
以上是关于Magento - 包含当前用户愿望清单的产品系列的主要内容,如果未能解决你的问题,请参考以下文章
如果项目已经在 magento 的愿望清单中,则隐藏愿望清单按钮