在创建运输模块后,我正在尝试按照本博客中的说明为 magento 1.7.xx 创建自定义(拣货)运输方法。我希望能够根据用户选择的运输选项更改运输成本。
准备:
1.) 为自定义 (pickship) 运输方法创建了一个表单块
2.) 创建一个包含三个值的商店名称(可以是任何文本)下拉/选择元素:store1、store2、store3。
3.) 默认运费通过运费配置设置为 1.00 美元(仅用于测试目的)。
当前状态:
1.) 完成所需流程后,当我在单页结帐中选择运输方式时,我看到一个包含三个选项的选择元素,并且运费设置为默认价格。
目标:
如果用户选择第一个选项,我希望将运费更新为 10.00 美元,如果用户选择第二个选项,我希望将运费更新为 20.00 美元。
我的尝试:
经过几个小时的谷歌搜索,我对观察者模型进行了一些更改:
NameSpace_ModuleName_Model_Observer extends Varien_Object {
public function saveShippingMethod($observer) {
$request = $evt->getRequest();
$quote = $evt->getQuote();
$pickship = $request->getParam('shipping_pickship', false);
$rates = $quote->getShippingAddress()->getShippingRatesCollection();
$rate = $rates->getFirstItem();
if($pickship['select_element'] == 1) {
$rate->setPrice(10);
} elseif($pickship['select_element'] == 2) {
$rate->setPrice(20);
}
//Mage::log($rate->getPrice());
}
问题:
我是否为这项任务使用了正确的观察者/方法?它只适用于一个步骤——一旦我点击“继续”下订单,它就会重置为默认价格。我设定交货价格的方式可能是错误的。你能让我走上正确的轨道或提出解决方案吗?