【问题标题】:How to get grand total without shipping costs from a Magento order model?如何从 Magento 订单模型中获得总计而无需运费?
【发布时间】:2011-11-13 21:42:17
【问题描述】:

我有一个像这样创建的 Magento 订单模型:

$order = Mage::getModel('sales/order')->load($orderId);

现在我想获得包括税费等在内的订单总额,但不包括运费。我可以使用$order->getGrandTotal() 检索总计,但如何排除运费?

提前谢谢你!

【问题讨论】:

  • 小计不包括运费,是这个意思吗?
  • 不,因为小计也不包括税...

标签: magento


【解决方案1】:
$amount = $order->getGrandTotal() - $order->getShippingAmount();

尽量不要想太多。 ;-)

【讨论】:

  • 谢谢!由于我还想减去运费税额,所以我现在使用$amount = $order->getGrandTotal() - $order->getShippingAmount() - $order->getShippingTaxAmount();...
  • 有没有办法获得运输方式中应用的税率百分比?
  • 大概是这样,$taxPercent = 100 * $order->getShippingTaxAmount() / $order->getShippingInclTax();
  • 我想在我的发票 pdf 上显示总运费,包括税费。西蒙你的帖子帮助我实现了这一目标。在 Abstract.php 第 320 行中,我将其编辑为:$totalShippingChargesText = "(" . Mage::helper('sales')->__('Total Shipping Charges (incl GST)') . " " . $order->formatPriceTxt($order->getShippingAmount() + $order->getShippingTaxAmount()) . ")"; 谢谢
  • 我收到了一个编辑建议,建议使用getTotalExclTax(),但这并不排除运费,这是问题的重点。对于认为自己可以做得更好的其他人,请自己做出答案并获得荣誉。
【解决方案2】:

这是另一种快速获取含税总额且不收取运费的方法。

如果您正在处理购物车:

$quote = Mage::getModel('checkout/session')->getQuote();
$cartGrossTotal = 0;
foreach ($quote->getAllItems() as $item) {
 $cartGrossTotal += $item->getPriceInclTax()*$item->getQty();
}

如果您正在处理订单:

$orderGrossTotal = 0;
foreach ($order->getAllItems() as $item) {
 $orderGrossTotal += $item->getPriceInclTax()*$item->getQty();
}

【讨论】:

  • 循环浏览购物车/订单商品可能不是那么高效 - 只需使用clockworkgeek回答中提到的内置内容......
  • 由于其他原因(在成功页面上显示刚购买的项目的标题列表),我已经在迭代项目,所以这个解决方案很方便。
【解决方案3】:

我认为 base_subtotal_incl_tax可以,所以 $order->getBaseSubtotalInclTax()

【讨论】:

    【解决方案4】:

    有一种更简单的方法:

    $orderValue = $order->getSubtotal();
    

    从订单中退回小计,不包括运输方式;

    试试看。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 2020-04-14
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 2017-03-14
    相关资源
    最近更新 更多