While working many times we face the requirement to load the current quote of the customer to achieve needed functionality. We can get the current quote of the customer easily by loading the checkout session class \Magento\Checkout\Model\Session. Further we need to call getQuote() method of this class..

Example below will help you to achieve this:

<?php

namespace WebbyTroops\Checkout\Block;

class Quote extends \Magento\Framework\View\Element\Template
{
    /**
     * @var \Magento\Checkout\Model\Session
     */
    protected $_checkoutSession;

    /**
     * @param \Magento\Framework\View\Element\Template\Context $context
     * @param \Magento\Checkout\Model\Session $checkoutSession
     * @param array $data
     */
    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Checkout\Model\Session $checkoutSession,
        array $data = []
    ) {
        $this->_checkoutSession = $checkoutSession;
        parent::__construct($context, $data);
    }

    /**
     * Get current quote of Customer
     */
    public function getCurrentQuote()
    {
        return $this->_checkoutSession->getQuote();
    }
}

Get quote data or items/products added in it

Now you have loaded the quote of current customer. Further you can easily get its data like below:

$quote = $block->getCurrentQuote();
echo $quote->getId();

You can also get the items or products added in it using below code snippet:

foreach ($quote->getAllVisibleItems() as $item) {
    echo $item->getProductId();
    echo $item->getName();
}

Further if you need to load current logged in customer data using customer session then you can follow this article How to get current logged in customer data in Magento 2.

Go To Top