2012-08-15 19 views
0

我正在使用下面的代碼展示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

對Magento不太瞭解,但從現實生活的角度來看,如果我在同一個訂單上多次訂購同一個商品,我訂購了一件數量大於1的商品。爲了達到你所希望的效果,我需要放置多個不同的訂單。 – DaveRandom 2012-08-15 13:15:04

+0

訂單中有多個訂單項是可接受的行爲,這有很多原因。例如,我們有可以個性化的項目,如果您想訂購同一個項目,並以兩種不同的方式進行個性化設置,則將項目列在兩個訂單項上比實踐要簡單得多,而不是嘗試將多個不同的個性化設置附加到一個訂單項。 – mttjohnson 2012-08-15 17:11:06

回答

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,將每個項目添加到$cjData的數量僅爲1。我認爲這應該會給你所期望的結果。

+0

完美!非常好,非常感謝 - 非常感謝! – Marc 2012-08-15 21:28:13

相關問題