Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
[MAGENTO 2] Injecting data into Cart data
namespace Vendor\Module\Plugin\Checkout\CustomerData;
class CartTotals
* @var \Magento\Customer\Model\Session
protected $checkoutSession;
* @param \Magento\Checkout\Model\Session $checkoutSession
public function __construct(\Magento\Checkout\Model\Session $checkoutSession) {
$this->checkoutSession = $checkoutSession;
* Add cart grand total to result data
* @param \Magento\Checkout\CustomerData\Cart $subject
* @param array $result
* @return array
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
public function afterGetSectionData(\Magento\Checkout\CustomerData\Cart $subject, $result)
$totals = $this->checkoutSession->getQuote()->getTotals();
if(isset($totals['grand_total'])) {
$result['grand_total'] = $totals['grand_total']->getValueInclTax() ?: $totals['grand_total']->getValue();
return $result;
<config xmlns:xsi="" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\CustomerData\Cart">
<plugin name="cart_totals" type="Vendor\Module\Plugin\Checkout\CustomerData\CartTotals"/>
Copy link

dmcmillin commented Oct 20, 2021

Are these the only two files I need to add or must I create the module basics(registration,et all)

Copy link

olance commented Oct 20, 2021

@dmcmillin I’ve created this a few years ago but as far as I can tell & remember, yes you’d need to create the module basics and replace the Vendor\Module accordingly in the files above

Copy link

pramodhanu commented May 10, 2022

I follow same process. But my plugin is not working. Please help me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment