0

私は、すべての注文をページに表示し、すべての注文とともに、その注文に関して購入した製品を含む完全な注文情報を表示するを開発していますmodulemagentoすべての注文を表示できますが、複数の商品が含まれている注文が1つの商品のみを表示していることを理解していません。これを[販売中の注文]で確認すると、[販売]-> [注文]で、複数の商品が表示されています。そこの。

これが私のコードです:

public function indexAction()
{
    $model = Mage::getModel('sales/order');
    $product_model = Mage::getModel('catalog/product');

    $collection = $model->getCollection()
    ->addFieldToFilter('status', array("in" => array('complete','closed','pending','holded','payment_review','pending_payment','pending_paypal','processing')));

    $data = array();
    $orderArr = array();

    $records = 0;
    foreach($collection as $order)
    {
        $data[$records]['order_data']['shipping_address'] = $order->getShippingAddress()->getData(); // get shipping details
        $data[$records]['order_data']['billing_address'] = $order->getBillingAddress()->getData(); // get billing details

        $data[$records]['order_data']['order_total'] = $order->getGrandTotal(); // get total amount
        $items_obj = $model->loadByIncrementId($order['increment_id']); // get all items
        $items = $items_obj->getAllItems();

        $data[$records]['order_data']['order_id'] = $order['increment_id']; 

        $i = 0;
        $productData = array();
        $orderProductArr = array();
        foreach($items as $itemId => $item)
        {  
            $_product = $product_model->load($item->getProductId()); // getting product details here to get description

            $taxClassId = $_product->getData("tax_class_id");
            $taxClass = $_product->getData("tax_class_name");

            $taxRate = $order['tax_amount'];

            $orderProductArr[$i]['web_id'] = $item->getProductId();
            $orderProductArr[$i]['quantity'] = $item->getQtyToInvoice();
            $orderProductArr[$i]['price'] = $item->getPrice();
            $orderProductArr[$i]['description'] = $_product->getDescription();
            $orderProductArr[$i]['currency'] = $order['order_currency_code'];
            $orderProductArr[$i]['tax_id'] = $taxClassId;
            $orderProductArr[$i]['tax_amt'] = $taxRate;
            $orderProductArr[$i]['total_amt'] = ($item->getPrice()*$item->getQtyToInvoice())+($taxRate);

            $productData[$i]['title'] = $item->getName();
            $productData[$i]['web_product_id'] = $item->getProductId();
            $productData[$i]['price'] = $item->getPrice();
            $productData[$i]['product_sku'] = $item->getSku();
            $productData[$i]['tax_class'] = $taxClassId;
            $productData[$i]['description'] = $_product->getDescription();

            $tax_arr[$i]['tax_id'] = $taxClassId;
            $tax_arr[$i]['tax_class'] = $taxClassId;
            $tax_arr[$i]['tax_amt'] = $taxRate;

            $i++;
        }

        $data[$records]['order_data']['product_details'] = $orderProductArr;
        $data[$records]['order_data']['order_product_details'] = $productData;
        $data[$records]['order_data']['tax_arr'] = $tax_arr;
        $data[$records]['order_data']['shipping_amount'] = $order->getShippingAmount();
        $data[$records]['order_data']['order_details'] = $order->toArray();
        unset($orderProductArr);
        unset($productData);
        $records++;
    }

     echo "<pre>";
     print_r($data);
     echo "</pre>";

}

誰かがこれを手伝ってくれませんか?

どんな助けでもいただければ幸いです。

ありがとう。

4

1 に答える 1

1

これをモジュールで使用しました。それはあなたを助けるかもしれません。

マグネトオーダーと製品コレクションのロード

$resource_model = Mage::getResourceModel('sales/order_collection');
$product_model = Mage::getModel('catalog/product');

注文収集をループする

    $records = 0;
    $productData = array();
    $orderProductArr = array();

    foreach($resource_model as $all_orders)
    {  
        if($all_orders['status']!="canceled" && $all_orders['status']!="fraud")
        {   
            $i = 0;
            $items = $all_orders->getAllVisibleItems();

            foreach($items as $item)
            {
                $_product = $product_model->load($item->getProductId()); // getting product details here to get description

                $taxClassId = $_product->getData("tax_class_id");
                $taxClass = $_product->getData("tax_class_name");

                $taxRate = $order['tax_amount'];

                $orderProductArr[$i]['web_id'] = $item->getProductId();
                $orderProductArr[$i]['quantity'] = $item->getQtyToInvoice();
                $orderProductArr[$i]['price'] = $item->getPrice();
                $orderProductArr[$i]['description'] = $_product->getDescription();
                $orderProductArr[$i]['currency'] = $order['order_currency_code'];
                $orderProductArr[$i]['tax_id'] = $taxClassId;
                $orderProductArr[$i]['tax_amt'] = $taxRate;
                $orderProductArr[$i]['total_amt'] = ($item->getPrice()*$item->getQtyToInvoice())+($taxRate);

                $productData[$i]['title'] = $item->getName();
                $productData[$i]['web_product_id'] = $item->getProductId();
                $productData[$i]['price'] = $item->getPrice();
                $productData[$i]['product_sku'] = $item->getSku();
                $productData[$i]['tax_class'] = $taxClassId;
                $productData[$i]['description'] = $_product->getDescription();

                $tax_arr[$i]['tax_id'] = $taxClassId;
                $tax_arr[$i]['tax_class'] = $taxClassId;
                $tax_arr[$i]['tax_amt'] = $taxRate;

                $i++;
                unset($items);
            }    
            $data[$records]['order_data']['product_details'] = $orderProductArr;
            $data[$records]['order_data']['order_product_details'] = $productData;
            $data[$records]['order_data']['tax_arr'] = $tax_arr;
            unset($orderProductArr);
            unset($productData);
            unset($tax_arr);
            $records++;
        }    
    }
于 2013-03-16T05:06:35.307 に答える