0

以下のコードを使用して、Magento (4.1.1) で注文の詳細を引き出しています。これは正常に動作します。ただし、商品が 2 回注文された場合は、行を繰り返す必要があります。同じ注文で同じ商品が複数回購入された場合は、複数の個別の商品として扱う必要があります。現在、Magento は 1 つの商品ラインを返します。同じアイテムを複数回購入するための 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

各項目の数量に基づいて x 回ループするfor ループを追加してみてください。

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 に答える