Php 如果同一项目在同一订单中多次购买,则将其视为多个单独项目

Php 如果同一项目在同一订单中多次购买,则将其视为多个单独项目,php,magento,Php,Magento,我在Magento(4.1.1)中使用下面的代码提取订单详细信息,该代码运行良好。但是,如果一个产品已经订购了两次,我需要有一个重复的行,因此,如果同一物品在同一订单中多次购买,则需要将其视为多个单独的物品-目前,Magento返回一个单一的产品线,同一物品的多次购买具有数量值: $_customerId = Mage::getSingleton('customer/session')->getCustomerId(); $lastOrderId = Mage::getSingle

我在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
如果在同一订单中多次购买同一商品,我需要将其视为多个单独的商品-非常感谢您对实现此目标的任何帮助。

您可以尝试根据每行商品的数量添加x次to循环:

foreach($allitems as $item)
{   
    for($i = 1; $i <= $item->getQtyToShip(); $i++) {
        $cjData.="|".$item->getPrice()."::".$item->getName()."::1";
        $index++;   
    }
}
foreach($allitems作为$item)
{   
对于($i=1;$i getQtyToShip();$i++){
$cjData.=“|”。$item->getPrice()。”::“$item->getName()。”::1”;
$index++;
}
}
我还没有测试过这个,所以它可能需要一些调整,但基本概念是循环直到
$I
等于
$item->getQtyToShip()
,并且在循环的每次迭代中,
$I
将通过
$I++
递增

我还将字符串赋值更改为
$cjData
,以使添加到
$cjData
的每个项目的数量仅为
1
。我认为这应该会为您的要求提供所需的结果。

您可以根据每行项目的数量尝试添加x次to循环:

foreach($allitems as $item)
{   
    for($i = 1; $i <= $item->getQtyToShip(); $i++) {
        $cjData.="|".$item->getPrice()."::".$item->getName()."::1";
        $index++;   
    }
}
foreach($allitems作为$item)
{   
对于($i=1;$i getQtyToShip();$i++){
$cjData.=“|”。$item->getPrice()。”::“$item->getName()。”::1”;
$index++;
}
}
我还没有测试过这个,所以它可能需要一些调整,但基本概念是循环直到
$I
等于
$item->getQtyToShip()
,并且在循环的每次迭代中,
$I
将通过
$I++
递增


我还将字符串赋值更改为
$cjData
,以使添加到
$cjData
的每个项目的数量仅为
1
。我认为这应该能满足您的要求。

我对Magento了解不多,但从现实生活的角度来看,如果我在一次订单上多次订购同一商品,我订购了一件数量大于1的商品。为了达到您描述的效果,我需要下多个不同的订单。为什么在订单上有多个行项目是可以接受的行为有很多原因。例如,我们有可以个性化的商品,如果您想订购相同的商品并以两种不同的方式对其进行个性化,将商品列在两个订单行上比尝试将多个不同的个性化设置附加到一个单行商品上要简单得多。我不太了解Magento,但从现实生活的角度来看,如果我在一个订单上多次订购同一商品,我订购了一个数量大于1的商品。为了达到您描述的效果,我需要下多个不同的订单。为什么在订单上有多个行项目是可以接受的行为有很多原因。例如,我们有可以个性化的商品,如果您想订购同一商品并以两种不同的方式对其进行个性化,那么在两个订单行上列出该商品比尝试将多个不同的个性化附加到一个单行商品上要简单得多。完美!非常好用,非常感谢-非常感谢!完美的非常好用,非常感谢-非常感谢!