9

我希望能够加载客户的愿望清单并返回列表中产品的产品 ID

我在用:

$wishList = Mage::getSingleton('wishlist/wishlist')->loadByCustomer($customer);
$wishListItemCollection = $wishList->getItemCollection();

问题是项目集合中的数组受到保护,我找不到任何方法来提取数据。

还有另一种方法可以做到这一点吗?

4

5 回答 5

17

你非常接近你的目标。

$wishList = Mage::getSingleton('wishlist/wishlist')->loadByCustomer($customer);
$wishListItemCollection = $wishList->getItemCollection();

if (count($wishListItemCollection)) {
    $arrProductIds = array();

    foreach ($wishListItemCollection as $item) {
        /* @var $product Mage_Catalog_Model_Product */
        $product = $item->getProduct();
        $arrProductIds[] = $product->getId();
    }
}

数组变量$arrProductIds现在将包含该特定客户已加入愿望清单的所有产品 ID 的列表。

于 2012-04-04T06:54:06.680 回答
7

你的代码是正确的。可能有客户未加载。这是代码。

$customer = Mage::getSingleton('customer/session')->getCustomer();
$wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer, true);
$wishListItemCollection = $wishlist->getItemCollection();

foreach ($wishListItemCollection as $item)
{
   // do things
}
于 2013-09-09T05:47:10.400 回答
5

在任何模板中,使用 magento 1.8,这都有效

Total: <?php echo $this->helper('wishlist')->getItemCount() ?>

// Items
$this->helper('wishlist')->getWishlist()->getItemCollection();
于 2013-12-15T01:23:41.267 回答
2
$wishList = Mage::getSingleton('wishlist/wishlist')->loadByCustomer($customer);
$wishListItemCollection = $wishList->getItemCollection();

foreach ($wishListItemCollection as $item)
{
    //do your thing e.g. echo $item->getName();
}
于 2012-04-04T06:54:18.957 回答
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); ?>" width="113" height="113" />
<?php endif; } } ?> 
于 2014-03-22T06:54:13.853 回答