0

我正在使用以下代码提取 Magento (4.1.1) 中的订单详细信息,效果很好。但是,如果一个产品被订购了两次,我需要有一个重复的行,所以如果同一个项目在同一个订单中多次购买,它们需要被视为多个单独的项目 - 目前 Magento 返回一个单一的产品线,对于同一商品的多次购买具有 Quantity 值:

$_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

如果以相同的顺序多次购买相同的物品,我需要将它们视为多个单独的物品 - 任何有助于实现这一点的帮助都非常感谢。

4

1 回答 1

3

您可以尝试添加一个for 循环以根据每个订单项的数量循环 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. 我认为这应该会给您所要求的结果。

于 2012-08-15T17:24:13.667 回答