在Magento中,有一个功能,您可以通过指定在运行总计之前和之后来定义总计算的顺序.
我添加了一个自定义总计,如果我将以下行添加到config.xml,则排序错误.错误的意思是:tax_shipping来之前 shipping.这会导致运费的税费增加两倍.
但这违反了这一条件
tax_shipping
after: shipping
Run Code Online (Sandbox Code Playgroud)
我的猜测:整套规则必定存在一些矛盾.但我怎么能找到它呢?
这是我添加的唯一规则.没有这个规则,tax_shipping就会排序shipping.
<shippingprotectiontax>
<class>n98_shippingprotection/quote_address_total_shippingprotectionTax</class>
<after>subtotal,discount,shipping,tax</after>
<before>grand_total</before>
</shippingprotectiontax>
Run Code Online (Sandbox Code Playgroud)
下面我粘贴usort调用返回的已排序数组.Mage_Sales_Model_Quote_Address_Total_Collector::_getSortedCollectorCodes()
对于那些没有安装Magento的人,代码如下:
/**
* uasort callback function
*
* @param array $a
* @param array $b
* @return int
*/
protected function _compareTotals($a, $b)
{
$aCode = $a['_code'];
$bCode = $b['_code'];
if (in_array($aCode, $b['after']) || in_array($bCode, $a['before'])) {
$res = -1;
} elseif (in_array($bCode, $a['after']) || in_array($aCode, $b['before'])) {
$res = 1;
} else { …Run Code Online (Sandbox Code Playgroud) 我需要拨打第三方API,以便在结账流程的审核阶段获取国际运费的最新职责/税收.我准备好了API调用,但是我错过了将返回的职责和税收添加到报价中的方法.
有没有内置的方法来做到这一点?
我希望有类似的东西
$quote->addCostComponent("Duties", 5.0);
Run Code Online (Sandbox Code Playgroud)