如何在Magento中显示动态运费?

时间:2013-05-08 13:41:20

标签: magento shipping

我已经为运输方法集成了矩阵率模块。但我得到了额外的要求

通过更改仓库选项显示动态运费。

例如,当用户选择仓库A,然后

时,我有2个仓库A和B.

运费价格应相应更新。与仓库B的情况相同。

我很困惑,我该怎么做?

请帮忙。

1 个答案:

答案 0 :(得分:0)

我正在努力争取类似的要求。我必须根据用户选择的邮资方式设置运费。

如果它可以帮助你,我将继续这样做:

  1. 创建一个自定义送货方式,让用户选择仓库/邮资/其他。它将显示在OnePageCheckout运输方法步骤中。您可以轻松创建一种新的送货方式,只需谷歌即可。

  2. 在模板/结帐/ shipping_method / available.phtml中添加if($_rate->getCode()=='yourmodule_code')条件 然后编写用户可以看到的单选按钮的代码。例如。对于Warehouse1和Warehouse2。

  3. 根据用户选择使用您的模块的collectRates()方法[已覆盖]设置运费率

     public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
            $result = Mage::getModel('shipping/rate_result');
            if($show){
    
            $method = Mage::getModel('shipping/rate_result_method');
            $method->setCarrier($this->_code);
            $method->setMethod($this->_code);
            $method->setCarrierTitle($this->getConfigData('title'));
            $method->setMethodTitle($this->getConfigData('name'));
            $method->setPrice($price); //this price you can get from available.phtml using AJAX
            $method->setCost($price);
            $result->append($method);
    
        }else{
            $error = Mage::getModel('shipping/rate_result_error');
            $error->setCarrier($this->_code);
            $error->setCarrierTitle($this->getConfigData('name'));
            $error->setErrorMessage($this->getConfigData('specificerrmsg'));
            $result->append($error);
        }
        return $result;
    }
    
  4. 希望它有所帮助。