2011-11-29 47 views
10

我正在爲Magento中狀態='complete'的訂單獲取訂單id和其他詳細信息。我確信在magento中有一種方法可以檢索狀態爲Complete的所有訂單。由於我對magento是個新手,所以我很難解決這個問題。在Magento中獲得狀態爲'Complete'的訂單ID

我想發送訂單狀態的客戶填寫一封電子郵件,並在發送電子郵件後標記它們。但那是後面的部分。任何人都可以告訴我在magento中如何獲得所有訂單ID的狀態爲Complete?

任何幫助表示讚賞。提前致謝。

回答

22

這可以作爲基礎Magento安裝文件夾中的腳本運行。如果它已經在Magento文件中運行(控制器或模塊或其他),則不需要前三行。

<?php 
require_once('app/Mage.php'); 
Mage::app(); 

$orders = Mage::getModel('sales/order')->getCollection() 
    ->addFieldToFilter('status', 'complete') 
    ->addAttributeToSelect('customer_email') 
    ; 
foreach ($orders as $order) { 
    $email = $order->getCustomerEmail(); 
    echo $email . "\n"; 
} 

編輯:

要查看與狀態和電子郵件所有訂單:

$orders = Mage::getModel('sales/order')->getCollection() 
    //->addFieldToFilter('status', 'complete') 
    ->addAttributeToSelect('customer_email') 
    ->addAttributeToSelect('status') 
    ; 
foreach ($orders as $order) { 
    $email = $order->getCustomerEmail(); 
    echo $order->getId() . ": '" . $order->getStatus() . "', " . $email . "\n"; 
} 
+0

感謝您的回覆。我試過你的代碼,它確實可以工作,但是我在數據庫中有三個狀態爲完成的訂單。不過,它只是向我展示了這3個訂單中的一個電子郵件ID。我想顯示狀態爲「完成」的所有訂單(編號爲聯繫電子郵件)。另外,如果我需要打印訂單ID,是否有任何方法作爲getOrderId()或getId()或要做的 – ivn

+1

您可能想要閱讀有關Magento開發的一些內容。我發現最好的文章是Alan Storm在他的網站上的文章:http://alanstorm.com/category/magento 要得到Id,你可以在循環中執行$ order-> getId()。你可能想要做$ order-> getIncrementId(),但這取決於你需要什麼。 關於你的問題,我不知道該說些什麼,除了嘗試刪除過濾器並打印所有的命令和狀態,並像這樣echo $ order-> getId()。 「:'」。 $ order-> getStatus()。 「',」。 $電子郵件。 「\ n」;' – Max

+0

嗯,我確實想要status = complete的訂單,但我也想看看這些特定訂單的訂單ID,客戶名稱,客戶電子郵件。所以你以前的解決方案很好,只是我也想訂購ID。然而,即使我嘗試getId()和getIncrementId(),但他們似乎沒有返回任何訂單ids。 – ivn

1

讓所有的產品與訂單狀態爲 '已完成'

$orders = Mage::getResourceModel('sales/order_collection') 
->addFieldToSelect('*') 
->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId()) 
->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates())) 
->addFieldToFilter('status', 'complete') 
->setOrder('created_at', 'desc'); 

$this->setOrders($orders); 
foreach ($orders as $order) 
{ 
$order_id=$order->getRealOrderId(); 
$order = Mage::getModel('sales/order')->load($order_id, 'increment_id'); 
$order->getAllVisibleItems(); 
$orderItems = $order->getItemsCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter('product_type', array('eq'=>'simple')) 
    ->load(); 
foreach($orderItems as $Item) 
{ 
    $Item = Mage::getModel('catalog/product')->setStoreId($Item->getStoreId())->load($Item->getProductId()); 
    if ($Item->getId()) 
    { 
     echo $Item->getName(); 
     echo $Item->getPrice(); 
     echo $Item->getProductUrl(); 
     echo $Item->getImageUrl(); 
     } 
} 
} 
?> 
相關問題