Magento:以自定义价格将产品添加到购物车

Magento : Add Product to cart with custom price

首先我正在开发自定义价格的扩展,并且我在产品页面上有一个输入,这是描述我所做的图像:

enter

1
2
3
4
5
<?php

class WebDirect_CustomPrice_savePriceController extends Mage_Core_Controller_Front_Action{
    //put your code here
}

任何人都知道添加到购物车按钮的工作原理(代码)


你需要为它调用 final_price 观察者。需要遵循以下步骤:

1 在etc/config.xml中添加观察者

1
2
3
4
5
6
7
8
9
10
11
<events>
  <catalog_product_get_final_price>
    <observers>
      <xyz_catalog_price_observer>
        <type>singleton</type>
        <class>Xyz_Catalog_Model_Price_Observer</class>
        <method>apply_customprice</method>
      </xyz_catalog_price_observer>
    </observers>
  </catalog_product_get_final_price>    
</events>

  • 在你的模型中添加方法 apply_customprice()

    1
    2
    3
    4
    5
    6
    7
    8
     public function apply_customprice($observer)
     {
         $event = $observer->getEvent();
         $product = $event->getProduct();
     // ADDD LOGIC HERE to get price added by customer
        $product->setFinalPrice($specialPrice); // set the product final price
        return $this;
     }
  • 点击下方喜欢的地方,您可以找到将产品添加到购物车时如何设置自定义价格。

    http://www.magentocommerce.com/wiki/5__-_modules_and_development/0__-_module_development_in_magento/customizing_magento_using_event-observer_method


    作为起点,您可以从:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
    {

     /**
     * Add product to shopping cart action
     *
     * @return Mage_Core_Controller_Varien_Action
     * @throws Exception
     */
    public function addAction()
    {

    确保您覆盖添加到购物车的路线以指向您的路线(覆盖上述核心路线的新路线)。

    从用户输入中获取价格也会影响结帐过程,特别是报价和由此产生的所有内容(购物车、订单等)。

    另外,关于单页结帐要小心,因为 BE 逻辑和 opcheckout.js 非常紧密。

    切尔斯