如果以相同的顺序多次购买同一商品,则视为多个单独商品

时间:2012-08-15 13:01:39

标签: php magento

我正在使用以下代码在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

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

1 个答案:

答案 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数量。我认为这应该可以为您提供所需的结果。