我正在为联盟计划设置跟踪代码。现在我们给出不同的佣金。一个用于食品相关产品,一个用于非食品相关产品。这些也是我们的税收类别(食品,非食品)。
我需要显示食品的子总数和非食品的小计。
我使用以下代码,但这不起作用:
<?php
//Get Order Number & Order Total
$order = Mage::getModel('sales/order')->loadByIncrementId(Mage::getSingleton('checkout/session')->getLastRealOrderId());
$grandamount = number_format($order->getGrandTotal(),2);
$coupon = $order->getCouponCode();
$amountfood = number_format($order->getSubtotal('Food'), 2);
$amountnonfood = number_format($order->getSubtotal('Non_Food'), 2);
$discount = number_format(0.00 - $order->getDiscountAmount(), 2);
?>
如果我使用$amountfood = number_format($order->getSubtotal(), 2);
,它确实适用于小计,包括食物和非食物价值。
有人可以帮助我。
谢谢, 丹尼尔
答案 0 :(得分:0)
我不认为这些信息是直接可用的:magento以全球方式存储小计和税金,仅存储总数,没有详细信息。
您可以做的是获取订购的产品,为每个产品获得他的税收等级并将销售价值存储在一个数组中
像这样:
$order = Mage::getModel('sales/order')->load($order_id);
$items = $order->getAllItems();
$subtotals = array();
foreach ($items as $_item) {
if (array_key_exists($subtotals[$_item->getTaxClassId()])) {
$subtotals[$_item->getTaxClassId()] += $_item->getRowTotal();
} else {
$subtotals[$_item->getTaxClassId()] = $_item->getRowTotal();
}
}
不确定是否需要“if” 希望有所帮助