duanboshe0001 2014-08-06 11:01
浏览 175
已采纳

Magento:产品从购物车转移到愿望清单

I am trying to catch the event of move cart item to wishlist. I tried wishlist_product_add and wishlist_product_item events. But they not work on cart page. I want to save the custom options of product in wishlist. But when i move product from cart to wishlist all the options data are lost.

  • 写回答

3条回答 默认 最新

  • doulin2947 2014-08-28 10:12
    关注

    You can use following event

           <wishlist_item_add_after>
                <observers>
                   <cop_wishlist_price_options>         
                        <class>AAA_Addon_Model_Observer</class>
                        <method>addProductPriceOptionsToWishlist</method>           
                    </cop_wishlist_price_options>
                </observers>
            </wishlist_item_add_after>
    

    and in observer, you can have access to wishlist and quote. copy data/options form quote to wishlist items.

    public function addProductPriceOptionsToWishlist($observer){
    
    try {
    
        $wishlist = $observer->getEvent()->getWishlist();   
        $itemId = (int) $this->_getRequest()->getParam('item');
    
        $cart = Mage::getSingleton('checkout/cart');
        $session = Mage::getSingleton('checkout/session');
    
    
            $quote_item = $cart->getQuote()->getItemById($itemId);
            if (!$quote_item) {
                Mage::throwException(
                    Mage::helper('wishlist')->__("Requested cart item doesn't exist")
                );
            }
    
            $productId  = $quote_item->getProductId();
    
        $buyRequest = $quote_item->getBuyRequest();
        $buyRequestData = $buyRequest->getData();
    
    
        if($buyRequestData):
    
        $additional_op = $quote_item->getOptionByCode('additional_options');
        $additional_op = $additional_op->getData();
    
        $wishlist_item = Mage::getModel('wishlist/item')->load($productId,'product_id');
    
    
        //save additonal options to wishlist-options        
        $modelRes_w_item_op = Mage::getModel('wishlist/item_option');
        $modelRes_w_item_op->setWishlistItemId($wishlist_item->getId());
        $modelRes_w_item_op->setProductId($productId);
        $modelRes_w_item_op->setCode('additional_options');
        $modelRes_w_item_op->setValue($additional_op['value']);
        $modelRes_w_item_op->save();
    
        endif;
    
    
        } catch (Mage_Core_Exception $e) {
            Mage::log($e->getMessage());
        } catch (Exception $e) {
            Mage::log($e->getMessage());
        }
    
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法