php - Magento:产品从购物车移至愿望 list

标签 php magento shopping-cart mage

我正在 try catch 将购物车项目移至愿望 list 的事件。我尝试了 wishlist_product_addwishlist_product_item 事件。但它们不适用于购物车页面。我想将产品的自定义选项保存在愿望 list 中。但是,当我将产品从购物车移至愿望 list 时,所有选项数据都会丢失。

最佳答案

您可以使用以下事件

       <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>

在观察者中,您可以访问愿望 list 和报价。将数据/选项表单报价复制到愿望 list 项目。

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());
    }


}

关于php - Magento:产品从购物车移至愿望 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158675/

相关文章:

php - 在带有枚举的 DataObject 的 ModelAdmin 过滤器中使用脚手架列表框进行多项选择

php - 加入到creditmemo_flat_table

magento - 如何在添加新产品常规选项卡中添加新字段?

php - Opencart - 登录后多商店管理员登录重定向到默认商店

php - 将表单变量传递到 Php 查询

php - while循环将值插入数据库?

magento - 如何启用所有商店中的所有产品

php - 更改 magento 中我的帐户页面的导航顺序

javascript - 如何不断增加购物 list 中的总价

PHP OOP::构建 API 包装器类