众所周知,(至少在1.11 EE / 1.6 CE中)您可以通过使用ZIP + 4(在美国)Zipcode来绕过税率。我试图在5位税率定义的末尾添加通配符(我认为应该奏效),但事实证明这是徒劳的。

我找到了应用核心补丁的建议 这里 涉及到的影响:

“应用/代码/核心/法师/税/模型/资源/计算.php”

第235行替换:

 $postcode = $request->getPostcode();

 $postcode = substr($request->getPostcode(),0,5);

将其复制到本地/法师不会成为世界的尽头 - 可以节省我们的税收头痛。但是我不喜欢这种方法。

您如何解决这个问题?

有帮助吗?

解决方案

我首选的解决方案是创建一个名为MyCompany_taxCalculationZipFix的新模块,覆盖并使用自己的模型使用像这样的方法,覆盖并扩展Mage_tax_model_model_resource_calculation类。

protected function _getRates($request)
{
    $postcode = substr($request->getPostcode(),0,5);

    $request->setPostcode($postcode);

    return parent::_getRates($request);
}

(未测试代码)

这样,您就不需要将整个方法复制到自己的模型上,以便大多数逻辑都将保持核心;当Magento在新版本中升级该模型时,您并没有覆盖大部分逻辑,并且有可能继续工作的机会更高(尽管您当然仍需要测试此逻辑)。

另外,我不确定更改请求是否会影响使用该请求对象的其他代码。您也需要对此进行测试。

许可以下: CC-BY-SA归因
scroll top