当用户在结账时输入增值税号码时,我正试图进行magento修改。从订单中删除税款。
我在stackoverflow上找到了一个支持magento旧版本的代码,但它不适用于新版本1.9 ,
我为工作条件做了一些修改并返回0,即使它返回0结帐仍然显示税。
这是我的代码,存档
/app/code/core/Mage/Tax/Model/Calculation.php line number 268
public function getRate($request)
{
if (!$request->getCountryId() || !$request->getCustomerClassId() || !$request->getProductClassId()) {
return 0;
}
//my code
$ctax= Mage::getSingleton('checkout/session')->getQuote()->getCustomerTaxvat();
if ($this->getCustomer() && $ctax !='') {
//echo 'test';
return 0;
}
//end my code
$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];
}
当用户在结账时输入增值税号码时,任何人都可以帮助我减税0,非常感谢
答案 0 :(得分:4)
我已成功通过以下线程解决了我的问题:Modify tax rate on cart quote items and recalculate
我在事件for each PUB."Art": display PUB."Art".IdArt end.
中添加了一个观察者。
以下是我的观察者的内容,非常简单:
sales_quote_collect_totals_before
如果客户免税,我会获取当前购物车内容,并且对于每件商品,我将产品税类设置为0.必须不保存产品或商品。这里的目的是为以下计算设置一个值,而不是将其保存在数据库中。税类需要保持在db中的初始值。
答案 1 :(得分:0)
答案 2 :(得分:0)
转到Calculation.php并找到calcTaxAmount()
并添加结算条件
public function calcTaxAmount($price, $taxRate, $priceIncludeTax = false, $round = true)
{
$billing = Mage::getModel('checkout/session')->getQuote()->getCustomerTaxvat();
if($billing !="")
{
return 0;
}
}