为了账号安全,请及时绑定邮箱和手机立即绑定

在将产品添加到购物车时更改报价的价格:magento

在将产品添加到购物车时更改报价的价格:magento

哈士奇WWW 2019-12-03 10:48:48
我想在将产品添加到购物车时更改产品价格。怎么可能让我知道...
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

做到这一点的方法是添加一个观察该事件的观察者'sales_quote_add_item':


<events>

    <sales_quote_add_item>

        <observers>

            <priceupdate_observer>

                <type>singleton</type>

                <class>mymodule/observer</class>

                <method>updatePrice</method>

            </priceupdate_observer>

        </observers>

    </sales_quote_add_item>

</events>

观察者应具有执行以下操作的方法:


public function updatePrice($observer) {

    $event = $observer->getEvent();

    $quote_item = $event->getQuoteItem();

    $new_price = <insert logic>

    $quote_item->setOriginalCustomPrice($new_price);

    $quote_item->save();

}


查看完整回答
反对 回复 2019-12-03
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

您可以使用观察者类来收听checkout_cart_product_add_after,并使用产品的“超级模式”为报价项设置自定义价格。


在您的/app/code/local/{namespace}/{yourmodule}/etc/config.xml中:


<config>

    ...

    <frontend>

        ...

        <events>

            <checkout_cart_product_add_after>

                <observers>

                    <unique_event_name>

                        <class>{{modulename}}/observer</class>

                        <method>modifyPrice</method>

                    </unique_event_name>

                </observers>

            </checkout_cart_product_add_after>

        </events>

        ...

    </frontend>

    ...

</config>

然后在/app/code/local/{namespace}/{yourmodule}/Model/Observer.php中创建一个Observer类


    <?php

        class <namespace>_<modulename>_Model_Observer

        {

            public function modifyPrice(Varien_Event_Observer $obs)

            {

                $customPrice = Mage::getSingleton(’core/session’)->getCustomPriceCalcuation(); // Provide you price i have set with session

                $p = $obs->getQuoteItem();

                $p->setCustomPrice($customPrice)->setOriginalCustomPrice($customPrice); 

            }


        }


查看完整回答
反对 回复 2019-12-03
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

坚果汤。


文件:/app/etc/modules/config.xml


<?xml version="1.0" encoding="UTF-8"?>

<config>

  <modules>

    <Ajax_ProductAdjust>

      <codePool>local</codePool>

      <active>true</active>

    </Ajax_ProductAdjust>

  </modules>

</config>

文件:/app/code/local/Ajax/ProductAdjust/etc/config.xml


<?xml version="1.0"?>

      <config>

       <modules>

         <Ajax_ProductAdjust>

           <version>1.0.1</version>

         </Ajax_ProductAdjust>

       </modules>

       <global>

           <models>

             <Ajax_ProductAdjust>

               <class>Ajax_ProductAdjust_Model</class>

             </Ajax_ProductAdjust>

           </models>

           <events>

              <sales_quote_add_item>

                  <observers>

                     <ajax_productadjust_model_observer>

                        <type>singleton</type>

                        <class>Ajax_ProductAdjust_Model_Observer</class>

                        <method>updatePrice</method>

                     </ajax_productadjust_model_observer>

                 </observers>

              </sales_quote_add_item>

          </events>

      </global>

     </config>

文件:/app/code/local/Ajax/ProductAdjust/Model/Observer.php


<?php

//Notes

class Ajax_ProductAdjust_Model_Observer

{


    public function _construct()

      {

      }


    public function getNewPrice()

      {

        //Your new functionality here

        //

        $newprice = "";


        return $newprice;

      }


     public function updatePrice( Varien_Event_Observer $observer ) 

     {

        $event = $observer->getEvent();

        $quote_item = $event->getQuoteItem();

        $new_price = $this->getNewPrice();

        $quote_item->setOriginalCustomPrice($new_price);

        $quote_item->save();

      }

 }

干杯,


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 745 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信