我正在爲Magento中狀態='complete'的訂單獲取訂單id和其他詳細信息。我確信在magento中有一種方法可以檢索狀態爲Complete的所有訂單。由於我對magento是個新手,所以我很難解決這個問題。在Magento中獲得狀態爲'Complete'的訂單ID
我想發送訂單狀態的客戶填寫一封電子郵件,並在發送電子郵件後標記它們。但那是後面的部分。任何人都可以告訴我在magento中如何獲得所有訂單ID的狀態爲Complete?
任何幫助表示讚賞。提前致謝。
我正在爲Magento中狀態='complete'的訂單獲取訂單id和其他詳細信息。我確信在magento中有一種方法可以檢索狀態爲Complete的所有訂單。由於我對magento是個新手,所以我很難解決這個問題。在Magento中獲得狀態爲'Complete'的訂單ID
我想發送訂單狀態的客戶填寫一封電子郵件,並在發送電子郵件後標記它們。但那是後面的部分。任何人都可以告訴我在magento中如何獲得所有訂單ID的狀態爲Complete?
任何幫助表示讚賞。提前致謝。
這可以作爲基礎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";
}
讓所有的產品與訂單狀態爲 '已完成'
$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();
}
}
}
?>
感謝您的回覆。我試過你的代碼,它確實可以工作,但是我在數據庫中有三個狀態爲完成的訂單。不過,它只是向我展示了這3個訂單中的一個電子郵件ID。我想顯示狀態爲「完成」的所有訂單(編號爲聯繫電子郵件)。另外,如果我需要打印訂單ID,是否有任何方法作爲getOrderId()或getId()或要做的 – ivn
您可能想要閱讀有關Magento開發的一些內容。我發現最好的文章是Alan Storm在他的網站上的文章:http://alanstorm.com/category/magento 要得到Id,你可以在循環中執行$ order-> getId()。你可能想要做$ order-> getIncrementId(),但這取決於你需要什麼。 關於你的問題,我不知道該說些什麼,除了嘗試刪除過濾器並打印所有的命令和狀態,並像這樣echo $ order-> getId()。 「:'」。 $ order-> getStatus()。 「',」。 $電子郵件。 「\ n」;' – Max
嗯,我確實想要status = complete的訂單,但我也想看看這些特定訂單的訂單ID,客戶名稱,客戶電子郵件。所以你以前的解決方案很好,只是我也想訂購ID。然而,即使我嘗試getId()和getIncrementId(),但他們似乎沒有返回任何訂單ids。 – ivn