주문 ID별로 주문 세부 정보 가져 오기


32

ID로 Magento에서 주문을 검색해야합니다. ID별로 특정 주문을 어떻게로드합니까?

지금까지 초기 쿼리를 작성했습니다.

Mage::getModel('sales/order');

답변:


61

증분 ID별로 주문을로드하려면 다음을 수행하십시오.

Mage::getModel('sales/order')->loadByIncrementId('10000001'); //use a real increment order id here

엔티티 ID로로드하려면 다음을 호출하십시오 load.

Mage::getModel('sales/order')->load(24999); //use an entity id here

나는 주문 ID와 증분 ID로 테스트하지만 아무것도 나에게 아무런 오류도 보이지 않습니다! magento.stackexchange.com/questions/39762/…
mahdi

그것이 내가 필요한 것입니다
FosAvance

17

주문 세부 정보 가져 오기는 몇 가지 구성 요소에 따라 다릅니다.

  1. 주문 (일반적으로 주문 번호)
  2. 주문 내용 (단순 대 구성 가능, 보이지 않음 등)
  3. 추출하려는 정보 (가격과 기타 정보)

주문로드 : (db : sales_flat_order)

$OrderNumber = "100000001";//Put your order Number here
$order = Mage::getModel('sales/order')->load($OrderNumber, 'increment_id');

다음으로 주문을 기준으로 항목 모음을 필터링하십시오.

가장 많이 할 일은 : (db : sales_flat_order_item)

$order->getAllVisibleItems();

보이는 제품이 표시됩니다. 이 문제는 컬렉션에서 "구성 가능한"항목을 가져옵니다 (이상하게도 어린이 기록이 기록에 있음). 과거 SKU가 더 이상 존재하지 않기 때문에 SKU 변경의 경우 예측할 수없는 것으로 확인되었습니다. 대신 다음과 같이 대체 방법을 사용하는 것이 좋습니다.

 $orderItems = $order->getItemsCollection()
        ->addAttributeToSelect('*')
        ->addAttributeToFilter('product_type', array('eq'=>'simple'))
        ->load();
  • getItemsCollection ()은 실제로 혼란스럽고 부모와 자식을 반환합니다. 아이에게 집중할 수 있습니다.
  • 일반적으로 부모 (예 : 구성 가능)는 자식 (단순)이 아닌 가격 정보를 갖습니다. Child (단순 제품)를 사용하면 parent_id (반대는 아님)가 있는지 확인할 수 있으며 getAllVisibleItems ()에서와 같이 entity_id (반대 아님)에서 제품 정보를 가져올 수도 있습니다.
  • 주문 항목 수집을 반복

    foreach($orderItems as $sItem) {
    
        //Ignore conf for now
        //Alt. Mage_Catalog_Model_Product_Type::TYPE_SIMPLE = 'simple';
        if($sItem->getProductType() == "simple")
        {
    
    
    
            echo "\n*********************************\nMage Order #: ".$OrderNumber."\n";
            //Simple Item Info from Order
            echo "Type: ".$sItem->getProductType()."\n";
            echo "Order Id: ".$sItem->getOrderId()."\n";
            echo "Product Id: ".$sItem->getProductId()."\n";
            echo "Item Id: ".$sItem->getId()."\n";
            echo "Item Name: ".$sItem->getName()."\n";
            echo "Item Sku: ".$sItem->getSku()."\n";
            echo "Item Price: ".$sItem->getPrice()."\n";
    
            $pItemId = $sItem->getParentItemId();
            echo "Parent Item Id: ".$pItemId."\n";
    
            echo "\n*****\n";
    //Get Parent Item Information
    $item = Mage::getModel('sales/order_item')->load("$pItemId"); //use an item_id here
    
            //Testing, want to see whats inside the parent/configurable item?
            //print_r($item->toArray());
    
            echo "Parent Type: ".$item->getProductType()."\n";
            echo "Parent Order Id: ".$item->getOrderId()."\n";
            echo "Product Id: ".$item->getProductId()."\n";
            echo "Item Id: ".$item->getId()."\n";
            echo "Parent Item Price: ".$item->getPrice()."\n";
            echo "Qty: ".$qty = intval($item->getQtyOrdered())."\n";
    
            //get Active Product Data
            $nProduct = Mage::getModel('catalog/product')->load($sItem->getProductId());
    $nSku = $nProduct->getSku();
        echo "new Product UPC:".$nUpc = $nProduct->getUpc() . "\n";
            echo "new Product Price:".$nPrice = $nProduct->getPrice(). "\n";
    
            }
        }

참고로, 당신 intvalgetQtyOrdered이지만, 그것은 십진수 값이 될 수 있습니다 :)
Harry Mustoe-Playfair

어디서나 모델 내장 함수에 대한 모든 문서를 찾을 수 있습니다 addAttributeToSelect. 고맙습니다.
이프 타카 룰 알람
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.