Magento - коллекция товаров с пожеланиями текущего пользователя - PullRequest
1 голос
/ 08 марта 2012

В контроллере Magento php, как я могу получить коллекцию продуктов, содержащую продукты, перечисленные в списке желаний вошедшего в систему пользователя (т.е. текущего пользователя).

Я получаю список желаний, используя:

$wishList = Mage::getModel('wishlist/wishlist')->loadByCustomer(Mage::getSingleton('customer/session')->getCustomer());

и содержит правильное количество предметов.

Но я бы хотел получить коллекцию товаров.Я пробовал:

$productCollection = $wishList->getProductCollection();

и

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

, но полученная мной Коллекция продуктов имеет длину 0.

Как мне получить Коллекцию продуктов?

Ответы [ 3 ]

4 голосов
/ 09 марта 2012

Вы можете использовать getWishlistItemCollection (см. Ссылку для более подробной информации) из помощника списка желаний, чтобы вернуть коллекцию предметов, затем вам нужно получить товар из предмета.

Я использовал следующий код для создания ассоциативного массива продуктов, который я затем использую, чтобы определить, находится ли продукт, который я отображаю на странице списка, в списке пожеланий ... надеюсь, это поможет:

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

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

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

    return $_itemsInWishList;   
} 
3 голосов
/ 22 марта 2014

Попробуйте с продуктом все детали, такие как имя, изображения и т.д ...

<?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; } } ?> 
1 голос
/ 29 апреля 2014
$customer = Mage::getSingleton('customer/session')->getCustomer();

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

$wishListItemCollection = $wishlist->getItemCollection();

foreach ($wishListItemCollection as $item)
{
   // do things
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...