dra87370 2014-07-18 08:29 采纳率: 100%
浏览 23
已采纳

Magento如何验证单个客户的订单详情

I have the following code snippet. Does it verify a current customer (by loadByIncrementId) or just last order in the system? How could I rewrite this to verify not by id but customer e-mail? I tried loadBy($customer_email) but it didn't work.

$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()."|"; 
    }
  • 写回答

2条回答 默认 最新

  • duanlu0075 2014-07-18 11:08
    关注

    To get current customer's data from order. Try using this -

    $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;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?