/** * Filter given wishlist collection * * @param Mage_Wishlist_Model_Resource_Wishlist_Collection $collection * @return Mage_Wishlist_Model_Resource_Wishlist_Collection */ public function filterCollection(Mage_Wishlist_Model_Resource_Wishlist_Collection $collection) { $customer = Mage::getModel("customer/customer")->setWebsiteId(Mage::app()->getStore()->getWebsiteId())->loadByEmail($this->_email); $collection->filterByCustomer($customer); foreach ($collection as $item) { $item->setCustomer($customer); } return $collection; }
/** * Filter wishlist collection * * @param Mage_Wishlist_Model_Resource_Wishlist_Collection $collection * @return Mage_Wishlist_Model_Resource_Wishlist_Collection */ public function filterCollection(Mage_Wishlist_Model_Resource_Wishlist_Collection $collection) { /* @var $customers Mage_Customer_Model_Resource_Customer_Collection */ $customers = Mage::getModel('customer/customer')->getCollection()->addAttributeToFilter(array(array('attribute' => 'firstname', 'like' => '%' . $this->_firstname . '%')))->addAttributeToFilter(array(array('attribute' => 'lastname', 'like' => '%' . $this->_lastname . '%'))); $collection->filterByCustomerIds($customers->getAllIds()); foreach ($collection as $wishlist) { $wishlist->setCustomer($customers->getItemById($wishlist->getCustomerId())); } return $collection; }
/** * Move item to given wishlist. * Check whether item belongs to one of customer's wishlists * * @param Mage_Wishlist_Model_Item $item * @param Mage_Wishlist_Model_Wishlist $wishlist * @param Mage_Wishlist_Model_Resource_Wishlist_Collection $customerWishlists * @param int $qty * @throws InvalidArgumentException|DomainException */ protected function _moveItem(Mage_Wishlist_Model_Item $item, Mage_Wishlist_Model_Wishlist $wishlist, Mage_Wishlist_Model_Resource_Wishlist_Collection $customerWishlists, $qty = null) { if (!$item->getId()) { throw new InvalidArgumentException(); } if ($item->getWishlistId() == $wishlist->getId()) { throw new DomainException(null, 1); } if (!$customerWishlists->getItemById($item->getWishlistId())) { throw new DomainException(null, 2); } $buyRequest = $item->getBuyRequest(); if ($qty) { $buyRequest->setQty($qty); } $wishlist->addNewItem($item->getProduct(), $buyRequest); $qtyDiff = $item->getQty() - $qty; if ($qty && $qtyDiff > 0) { $item->setQty($qtyDiff); $item->save(); } else { $item->delete(); } }