2014-07-18 3 views
0

다음 코드 스 니펫이 있습니다. 현재 고객 (loadByIncrementId에 의해) 또는 시스템의 마지막 주문 만 확인합니까? 이드가 아닌 고객 전자 메일을 확인하기 위해 어떻게 다시 작성할 수 있습니까? loadBy ($ customer_email)을 시도했지만 작동하지 않았습니다.Magento 한 고객의 주문 세부 정보 확인 방법

$orderId = Mage::getSingleton("checkout/session")->getLastRealOrderId(); 

    $order = Mage::getModel("sales/order")->loadByIncrementId($orderId); 
    $amount = $order->getGrandTotal(); 
    $orderItems = $order->getAllVisibleItems(); 
    $purchasedSkus = array(); 
    foreach($orderItems as $orderItem) { 
     echo $orderItem->getSku()."|"; 
    } 
+0

당신이 할 하시겠습니까? – TBI

+0

사용자 전자 메일 (Mage :: getSingleton ('customer/session') -> getCustomer() -> getEmail()을 기반으로 모든 SKU (getSku())와 GrandTotal (getGrandTotal ; ). 또는 내 코드가 현재 사용자의 마지막 주문에 대한 sku를 갖거나 전체 시스템에 대한 주문인지 여부를 알 수 있습니까? – user3253748

+0

magento의 마지막 주문 ID가 현재 사용자가 아닙니다. – TBI

답변

2

주문에서 현재 고객의 데이터를 얻으려면. 이 문제를 사용해보십시오 -

$customer = Mage::getSingleton('customer/session')->getCustomer(); 
$email = $customer->getEmail(); 
$orderCollection = Mage::getModel('sales/order')->getCollection() 
    ->addFilter('customer_email', $email) 
    ->setOrder('created_at', Varien_Data_Collection_Db::SORT_ORDER_DESC)->setPageSize(1)->getData(); 

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

$orderId = $orderCollection[0]['increment_id']; 
$order = Mage::getModel("sales/order")->loadByIncrementId($orderId); 
$amount = $order->getGrandTotal(); 
$orderItems = $order->getAllVisibleItems(); 
$purchasedSkus = array(); 
foreach($orderItems as $orderItem) { 
    // get sku according to qantity ordered 
    $qty = $orderItem->getQtyOrdered(); 
    for($i=1;$i<=$qty;$i++) { 
     $purchasedSkus[] = $orderItem->getSku(); 
    } 
} 
echo "<pre>";print_r($purchasedSkus); 
echo $amount; 
+0

안녕하세요, thx 답장을 보내 주셔서 감사합니다. 코드는 제대로 작동하지만 수량이 3 인 제품을 구매할 때 하나의 항목 만 나열됩니다. 이 문제를 해결하는 방법? – user3253748

+0

수량이 3 인 품목을 구입하면 단 하나의 품목에 대한 SKU를 받기를 원하기 때문에 하나의 품목 만 표시합니다. – TBI

+0

나는 이해한다. 그렇다면 제품 수량보다 SKU를 여러 번 얻으려면 어떻게해야합니까? 예를 들어 sku # AA1 제품을 3 개 수량으로 주문 했으므로 # AA1, # AA1, # AA1과 같이 나열 할 수 있습니까? – user3253748

0
$customer_email = "[email protected]"; 
$orders = Mage::getModel('sales/order')->getCollection() 
    ->addFieldToFilter('customer_email', $customer_email) 
    ->setOrder('created_at', 'desc'); 
$last_order = $orders->getFirstItem(); 

$skus = array(); 
foreach($last_order->getAllVisibleItems() as $item){ 
    $skus[] = $item->getSku(); 
} 
$grandTotal = $last_order->getGrandTotal(); 
var_dump($grandTotal); 
var_dump($skus); 
관련 문제