首页 > 解决方案 > 如何在 Magento 2 的订单中获取每个产品的总行数?

问题描述

我正在尝试获取成功页面中每个行/行项目的小计,但我不确定要使用什么。
我试过了getRowTotal()getRowTotalInclTax()但两者都显示为空白。
我能够获得整个购物车小计,但我需要的是单个产品小计。

这是我正在使用的部分代码:

// Get order details
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId($block->getOrderId());

// Get Each Product Details
$items = $order->getAllItems();

foreach($items as $i) {
  $product = $objectManager->create('Magento\Catalog\Model\Product')->load($i->getProductId());

  echo $product->getName();
  echo $product->getSku();
  echo $product->getRowTotal(); // This is where its just coming back blank/null
}

标签: phpmagentomagento2

解决方案


您正在加载产品实体:产品实体不能包含订单信息。
您必须使用已使用的 Order Item 实体来获得总行,

如下所示:

// Get order details
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('Magento\Sales\Model\Order')->loadByIncrementId($block->getOrderId());

// Get Each Product Details
$items = $order->getAllItems();

foreach($items as $i) {
  echo $i->getProduct()->getName();
  echo $i->getProduct()->getSku();
  echo $i->getRowTotal(); 
}

推荐阅读