基于出货目的地的Magento税率

时间:2016-03-17 13:16:27

标签: magento-1.9

在结账时更改送货目的地时如何更改税率?

我在后端找不到设置(如果我错了,请更正我)所以我想我必须用自己的模块解决这个问题。

我从哪个项目开始?

示例 - 目标:

  • 德国商店(19%增值税)
  • 瑞士客户(从德国出口到非欧盟国家:0%增值税)
  • 运往德国 - 瑞士边境以节省运费=>我必须计算19%的增值税,因为该产品尚未(尚未)离开该国,即使客户在瑞士,仍然可以从Magento获得0%的增值税)

任何想法,必须改变哪些类和方法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我解决了我的任务。

我重写了Mage_Tax_Model_Calculation方法getRateRequest。 在这里,我可以在switch语句之前添加自己的逻辑,该语句使用$ basedOn来分配$ address。

    //override basedOn
    $basedOn = 'billing';
    if ($shippingAddress != null && $billingAddress != null) {
        if ($shippingAddress->getData('country_id') != $billingAddress->getData('country_id') && $shippingAddress->getData('country_id') == 'DE') {
            $basedOn = 'shipping';
        }
    }
    // needed to still work if one of both addresses is null
    if ($shippingAddress == null || $billingAddress == null) {
        $basedOn = 'default';
    }
    else  {
        $ship = $shippingAddress->getData('country_id');
        $bill = $billingAddress->getData('country_id');
        if(empty($ship) || empty($bill))  {
            $basedOn = 'default';
        }
    }