Magento получить список желаний от продукта - PullRequest
0 голосов
/ 29 августа 2018
public function addItem(Mage_Wishlist_Model_Item $item)
{

    $superAttributes = Mage::app()->getRequest()->getParam('super_attribute');
    if ($item instanceof Mage_Wishlist_Model_Item && isset($superAttributes)) {
        $simpleItem = Mage::getModel('catalog/product_type_configurable')->getProductByAttributes($superAttributes, $item->getProduct());
    }

    return parent::addItem($simpleItem);
}

Теперь моя проблема в том, что я хочу вызвать родительскую функцию, которая должна получить Mage_Wishlist_Model_Item, а не Mage_Catalog_Model_Product

MyCustom_Wishlist_Model_Wishlist extends Mage_Wishlist_Model_Wishlist

Как я могу получить список желаний для продукта $simpleItem

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы проверили этот URL? https://magento.stackexchange.com/questions/19678/how-do-i-add-to-wishlist-programatically

Это родной способ добавить товар в список желаний.

Если вы не хотите изменять тип параметра, вы можете удалить проверку $ item type из вашего кода (в этом нет необходимости):

$item instanceof Mage_Wishlist_Model_Item

Надеюсь, это поможет вам.

0 голосов
/ 29 августа 2018
public function addItem(Mage_Wishlist_Model_Item $item)
{
    $superAttributes = Mage::app()->getRequest()->getParam('super_attribute');
    if ($item instanceof Mage_Wishlist_Model_Item && isset($superAttributes)) {
        $product = Mage::getModel('catalog/product_type_configurable')->getProductByAttributes($superAttributes, $item->getProduct());
        $item = Mage::getModel('wishlist/item');
        $storeId = $product->hasWishlistStoreId() ? $product->getWishlistStoreId() : $this->getStore()->getId();
        $qty = 1;

        $item->setProductId($product->getId())
            ->setWishlistId($this->getId())
            ->setAddedAt(now())
            ->setStoreId($storeId)
            ->setOptions($product->getCustomOptions())
            ->setProduct($product)
            ->setQty($qty)
            ->save();
    }

    return parent::addItem($item);
}

Это работает для меня сейчас, но я еще не выяснил, как установить $qty

...