【问题标题】:Magento - Accessing a customer's wishlistMagento - 访问客户的愿望清单
【发布时间】:2012-04-04 05:07:51
【问题描述】:

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

我正在使用:

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

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

还有其他方法吗?

【问题讨论】:

    标签: magento


    【解决方案1】:

    你已经非常接近你的目标了。

    $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 的列表。

    【讨论】:

    • 你也可以简单地使用 $item->getProductId(); - 无需加载整个产品。
    • 从可重用性的角度来看,获得整个产品更有意义。例如显示产品名称和链接,您需要的不仅仅是 ID。
    【解决方案2】:

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

    $customer = Mage::getSingleton('customer/session')->getCustomer();
    $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer, true);
    $wishListItemCollection = $wishlist->getItemCollection();
    
    foreach ($wishListItemCollection as $item)
    {
       // do things
    }
    

    【讨论】:

      【解决方案3】:

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

      Total: <?php echo $this->helper('wishlist')->getItemCount() ?>
      
      // Items
      $this->helper('wishlist')->getWishlist()->getItemCollection();
      

      【讨论】:

        【解决方案4】:
        $wishList = Mage::getSingleton('wishlist/wishlist')->loadByCustomer($customer);
        $wishListItemCollection = $wishList->getItemCollection();
        
        foreach ($wishListItemCollection as $item)
        {
            //do your thing e.g. echo $item->getName();
        }
        

        【讨论】:

          【解决方案5】:

          尝试使用产品的所有详细信息,如名称、图像等...

          <?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; } } ?> 
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多