Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
getRate()和Magento税百分比_Magento - Fatal编程技术网

getRate()和Magento税百分比

getRate()和Magento税百分比,magento,Magento,我正在尝试获取给定邮政编码的税率(百分比,而不是货币),以便在第三方报价PDF打印输出中显示它(与Magento用作购物车预结账的“报价”无关)。虽然我对Magento还比较陌生,但getRateRequest()和getRate()似乎是两个主要函数,它们根据所有变量(产品税类、客户税类等)获取税率 因为这是针对第三方扩展的,而且我们所有的产品都是应税产品,所以我想我只需要使用getRate()和正确的Varien对象输入,它就会返回税率。经过一周的反复试验,我弄不明白为什么我总是得到零利率。

我正在尝试获取给定邮政编码的税率(百分比,而不是货币),以便在第三方报价PDF打印输出中显示它(与Magento用作购物车预结账的“报价”无关)。虽然我对Magento还比较陌生,但getRateRequest()和getRate()似乎是两个主要函数,它们根据所有变量(产品税类、客户税类等)获取税率

因为这是针对第三方扩展的,而且我们所有的产品都是应税产品,所以我想我只需要使用getRate()和正确的Varien对象输入,它就会返回税率。经过一周的反复试验,我弄不明白为什么我总是得到零利率。我已经确认我正在调用getRate()函数,并且它不会从检查国家/地区和客户/产品类ID的第一个if()语句返回零。此外,我已经确认所有变量都在getRate()函数本身中传递和访问

我用下面的输入(基于getRateRequest()的输出)创建了一个对象,我用getRate()调用它,希望有人能解释我的数据输入有什么问题,或者为什么getRate()函数总是返回零的结果。(我实际上是在下面设置$variables,它们只是在前面定义的,下面是我的一个测试用例值)

我的备份计划是只执行一个直接SQL查找公式,尽管这可能会有点混乱。由于我们的web开发团队没有完全遵循良好的编码标准,所以,一旦初始发布修复(全部4页)到位,最终的站点重写将在我的未来进行

感谢您的帮助,并花时间阅读本文

编辑-堆栈溢出非常可怕:)

如果您更改:

$TaxRequest->setRegionId(California);

其中$stateId是数字区域id。您的代码应该可以工作。

您也可以尝试此方法

$store = Mage::app()->getStore('default');
$request = Mage::getSingleton('tax/calculation')->getRateRequest(null, null, null, $store);
$taxclassid = $product->getData('tax_class_id');
$percent = Mage::getSingleton('tax/calculation')->getRate($request->setProductClassId($taxclassid));

啊!一年有多大的不同,我们重新开始了我们网站的这一部分,这次我带着更多的知识遇到了我自己的问题。更新了我的代码以反映数字状态ID、国家代码,并在getStore()中传递,效果很好。非常感谢。谢谢你的主意!然而,在这种情况下,我不认为它总能给我们我想要的。我们有一些客户帐户是转售的,不需要纳税,看起来这个代码只针对一个产品,没有考虑客户纳税类别。
 $TaxRequest->setRegionId($stateId); 
$store = Mage::app()->getStore('default');
$request = Mage::getSingleton('tax/calculation')->getRateRequest(null, null, null, $store);
$taxclassid = $product->getData('tax_class_id');
$percent = Mage::getSingleton('tax/calculation')->getRate($request->setProductClassId($taxclassid));