質問
(少なくとも1.11 EE / 1.6 CEで)ZIP + 4(米国)ZIPCODEを利用して税率をバイパスできることはかなりよく知られています。私は5桁の税率の定義の終わりにワイルドカードを追加しようとしました(私の意見ではうまくいったはずです)が、それは実りがありませんでした。
コアパッチを適用するための提案を見つけました ここ の効果への何かを含む:
「app/code/core/mage/tax/model/resource/calculation.php」
235行の交換:
$postcode = $request->getPostcode();
と
$postcode = substr($request->getPostcode(),0,5);
これを地元/魔術師にコピーすることは世界の終わりではありません。そして、私たちに税の頭痛を救うでしょう。しかし、私はその方法のファンではありません。
この問題をどのように回避しますか?
解決
私の好みのソリューションは、mycompany_taxcalculationzipfixと呼ばれる新しいモジュールを作成し、mage_tax_model_resource_calculationクラスをこのような方法で独自のモデルで拡張し、拡張することです。
protected function _getRates($request)
{
$postcode = substr($request->getPostcode(),0,5);
$request->setPostcode($postcode);
return parent::_getRates($request);
}
(テストされていないコード)
これにより、メソッド全体を独自のモデルにコピーする必要がないため、ほとんどのロジックはコアにとどまります。 Magentoが新しいリリースでそのモデルをアップグレードすると、ほとんどのロジックを無効にすることはなく、物事が機能し続ける可能性が高くなります(もちろん、これをテストする必要があります)。
また、リクエストを変更すると、その要求オブジェクトを使用する他のコードに影響を与えるかどうかはわかりません。それもテストする必要があります。
所属していません magento.stackexchange