我正在使用以下代码在Magento(4.1.1)中提取订单详情,这样可以正常工作。但是,如果产品已经订购了两次,我需要重复一行,如果相同的商品以相同的顺序多次购买,则需要将它们视为多个单独的商品 - 目前Magento会返回一个产品系列,对于同一项目的多次购买的数量值:
$_customerId = Mage::getSingleton('customer/session')->getCustomerId();
$lastOrderId = Mage::getSingleton('checkout/session')->getLastOrderId();
$order = Mage::getSingleton('sales/order');
$order->load($lastOrderId);
$_totalData =$order->getData();
$_order = $this->getOrder();
$allitems = $order->getAllItems();
$index = 1;
$data = ""
foreach($allitems as $item)
{
$cjData.="|".$item->getPrice()."::".$item->getName()."::".$item->getQtyToShip();
$index++;
}
echo $cjData
如果以相同的顺序多次购买相同的商品,我需要将它们视为多个单独的商品 - 任何有助于实现这一点的帮助。
答案 0 :(得分:3)
您可以尝试根据每个订单项的数量添加for loop循环x次:
foreach($allitems as $item)
{
for($i = 1; $i <= $item->getQtyToShip(); $i++) {
$cjData.="|".$item->getPrice()."::".$item->getName()."::1";
$index++;
}
}
我没有对此进行过测试,因此可能需要进行一些调整,但基本概念是循环直到$i
等于$item->getQtyToShip()
,并且在循环$i
的每次迭代中都会通过$i++
递增。
我还将字符串分配更改为$cjData
,以便为添加到1
的每个项目添加$cjData
数量。我认为这应该可以为您提供所需的结果。