Magento如何验证单个客户的订单细节


Magento how to verify order details for a single customer

我有下面的代码片段。它是否验证当前客户(通过loadbyincrementd)或系统中的最后一个订单?我如何重写它,使其不通过id而是通过客户电子邮件进行验证?我尝试loadBy($customer_email),但它没有工作。

$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()."|"; 
    }

从订单中获取当前客户的数据。尝试使用-

$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;
$customer_email = "customer@domain.com";
$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);