获取Magento中每个税值的SubTotal

时间:2011-05-17 12:51:46

标签: php magento magento-1.4

我正在为联盟计划设置跟踪代码。现在我们给出不同的佣金。一个用于食品相关产品,一个用于非食品相关产品。这些也是我们的税收类别(食品,非食品)。

我需要显示食品的子总数和非食品的小计。

我使用以下代码,但这不起作用:

<?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);,它确实适用于小计,包括食物和非食物价值。

有人可以帮助我。

谢谢, 丹尼尔

1 个答案:

答案 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” 希望有所帮助