在Magento中获取状态='完成'的订单ID

时间:2011-11-29 10:32:29

标签: php magento orders

我正在努力获取Magento中status ='complete'的订单的订单ID和其他详细信息。我确信在magento中有一种方法可以检索状态为Complete的所有订单。由于我是magento的新人,我发现很难解决这个问题。

我希望向客户发送订单状态为完成电子邮件,并在发送电子邮件后对其进行标记。但这就是它的后半部分。任何人都可以告诉我如何在magento中获得状态为Complete的所有订单ID?

感谢任何帮助。提前致谢。

2 个答案:

答案 0 :(得分: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";
}

答案 1 :(得分:1)

获取订单状态为&#39;已完成&#39;

的所有商品
$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();
        }
    }
}
?>