1

我有 magento 1.7 网站,如果客户在结帐页面上输入税号,我会厌烦地从客户那里扣除税款。

我有两个国家荷兰和比利时的税收规则都有 10% 的税。默认国家是比利时

当比利时客户在结帐页面上输入增值税号时,我需要取消加税。

我厌倦了使用税收规则,但没有运气。

任何人都知道如何使用magento后端或使用代码级别来做到这一点。我很感激任何答案。谢谢你

4

1 回答 1

3

超越 Magento 的税收模型 getRate() 函数是我们做类似事情的方式。

class My_Module_Model_Tax_Calculation extends Mage_Tax_Model_Calculation
{

    public function getRate($request)
    {
        if (!$request->getCountryId() || !$request->getCustomerClassId() || !$request->getProductClassId()) {
            return 0;
        }

        $country_id = $request->getCountryId();

        if ($country_id == 'BE' && $this->getCustomer() && $this->getCustomer()->getTaxvat()) {
            return 0;          
        }

        $cacheKey = $this->_getRequestCacheKey($request);
        if (!isset($this->_rateCache[$cacheKey])) {
            $this->unsRateValue();
            $this->unsCalculationProcess();
            $this->unsEventModuleId();
            Mage::dispatchEvent('tax_rate_data_fetch', array('request'=>$request));
            if (!$this->hasRateValue()) {
                $rateInfo = $this->_getResource()->getRateInfo($request);
                $this->setCalculationProcess($rateInfo['process']);
                $this->setRateValue($rateInfo['value']);
            } else {
                $this->setCalculationProcess($this->_formCalculationProcess());
            }
            $this->_rateCache[$cacheKey] = $this->getRateValue();
            $this->_rateCalculationProcess[$cacheKey] = $this->getCalculationProcess();
        }
        return $this->_rateCache[$cacheKey];
    }
}
于 2013-09-18T21:49:28.793 回答