2

I have code for last order detail but I want last 5 orders. For last order detail code is:

$objectManager =  \Magento\Framework\App\ObjectManager::getInstance();
        $orderDatamodel = $objectManager->get('Magento\Sales\Model\Order')->getCollection()->getLastItem();
        $orderId   =   $orderDatamodel->getId();
        $order = $objectManager->create('\Magento\Sales\Model\Order')->load($orderId);
        $orderItems = $order->getAllItems();

        foreach ($orderItems as $item) {
           $product_name=   $item->getName();         
           $product_id=   $item->getProductId();
        }

I want last 5 oders detail.

7
  • As per separate customer's last 5 order or all over last 5 order? Nov 2, 2018 at 11:53
  • Last 5 in All orders. Nov 2, 2018 at 11:54
  • Please check my answer. Nov 2, 2018 at 12:01
  • Check my updated answer. Nov 2, 2018 at 12:34
  • Is it working ? Nov 2, 2018 at 12:39

2 Answers 2

1

Use this below code. It maybe helpful for you :

$orderDatamodel = $objectManager->get('Magento\Sales\Model\Order')->getCollection();
$orderDatamodel->getSelect()->limit(5);
    foreach ($orderDatamodel as $key => $value) {
        $order = $objectManager->create('\Magento\Sales\Model\Order')->load($value->getId());
        $orderItems = $order->getAllItems();
        foreach ($orderItems as $item) {
            $product_name = $item->getName();
            $product_id = $item->getProductId();
            echo $product_name . "--" . $product_id;
        }
    }
2
  • Can you give me hole code with loop like item name and items detail Nov 2, 2018 at 12:11
  • $objectManager without using how to get all orders imformation on home page in magento 2? Apr 29, 2019 at 8:51
0

In below code orders has been set in descending order and setPageSize() will give you 5 records only.

$ordercollection = $objectManager->get('Magento\Sales\Model\Order')->getCollection();
$ordercollection->setOrder(
    'created_at',
    'desc'
)
    ->setPageSize(5)
    ->setCurPage(1);

foreach($ordercollection as $order){
    echo $order->getRealOrderId();

    //To get order items
    $items = $order->getAllItems();
    foreach ($items as $item) {
        echo $item->getPrice();
        echo $item->getSku();
    }
}

Notes:

  • Don't use Object Manager.
  • Inject OrderRepository or Interface Class
6

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.