按照之前的问题作为简单指南:

如何以编程方式创建税率

我不想以编程方式创建税收规则,而是想修改现有规则,特别是“tax_rule”数组(其中应包含对此规则有效的税率 ID 列表)。

这些费率可以通过以下方式找到:

$ruleModel = Mage::getModel('tax/calculation_rule')->load($id);
Zend_Debug::dump($ruleModel->getRates());

这应该返回适​​用于该规则的税率 ID 数组。

使用 $ruleModel->setRates($array)->save() 只是搞乱了这个规则,删除了之前保存的其他值(规则名称、优先级等)。

如何简单地加载现有的税率模型并更新“tax_rate”字段以包含附加税率?如果现有数组是 array(5,7,9) 我想更新数组以包含新值,即 array(5,7,9,15).

有帮助吗?

解决方案

除非其他人遇到这个问题并知道正确的答案,否则 Magento 似乎不会将费率存储在其中 tax/calculation_rule 但相反 tax/calculation 桌子。当规则的费率在后端更新时,Magento 将本机删除表中与该规则关联的所有行并创建新行。每行的 ID 值都会自动递增,即使该行的任何值都没有更改,这一事实证明了这一点。

我的目标是动态创建新费率,然后将其添加到现有规则中。我也选择动态创建新规则。以这种方式,它将在数据库中产生更多的开销(每个税率都有自己的税收规则),但我没有看到一个干净的方法来解决这个问题。

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