首先我正在开发自定义价格的扩展程序,我在产品页面上有一个输入,这是一个图像描述了我所做的:
当客户输入他想要的价格并点击添加到购物车时,必须添加产品,并添加他添加的价格。
我知道可以在控制器中编码,但我不知道怎么做?
这是控制器空类:
<?php
class WebDirect_CustomPrice_savePriceController extends Mage_Core_Controller_Front_Action{
//put your code here
}
任何人都知道添加到购物车按钮的工作原理(代码)
答案 0 :(得分:7)
你需要为它调用final_price观察者。需要遵循以下步骤:
1在etc / config.xml中添加Observer
<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()
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;
}
点击下方,了解如何在购物车中添加产品时设置自定义价格。
答案 1 :(得分:1)
作为起点,您可以从:
开始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()
{
确保覆盖添加到购物车路线以指向您的路线(覆盖上述核心路线的新路线)。
同样从用户的输入中获取价格也会影响结账流程,特别是报价及其产生的所有内容(购物车,订单等)。
另外,关于onepage checkout要小心,因为BE逻辑和opcheckout.js非常紧密。
CHEARS