Leveraging the sales_quote_address_collect_totals_after Event in Magento 2

Leveraging the sales_quote_address_collect_totals_after Event in Magento 2
The sales_quote_address_collect_totals_after event in Magento 2 lets you modify quote totals after Magento processes them. This event is useful for adjusting shipping, taxes, discounts, or other total-related data dynamically.
Leveraging the sales_quote_address_collect_totals_after Event in Magento 2
To customize quote totals in Magento 2, you can use the sales_quote_address_collect_totals_after event. This event allows you to modify address-related data after Magento processes the current quote total.
Implementing the sales_quote_address_collect_totals_after
Event
To utilize this event, follow these steps:
Define the Event in events.xml
:
Create or update the events.xml file in your module's etc directory to listen for the sales_quote_address_collect_totals_after
event.
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_quote_address_collect_totals_after">
<observer name="custom_quote_totals_observer" instance="Vendor\Module\Observer\QuoteTotalsObserver" />
</event>
</config>
Create the Observer Class:
Develop the observer class that will handle the event. This class should implement the ObserverInterface and define the execute method.
<?php
namespace Vendor\Module\Observer;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Quote\Model\Quote;
class QuoteTotalsObserver implements ObserverInterface
{
public function execute(Observer $observer)
{
// Retrieve the shipping assignment and address
$shippingAssignment = $observer->getEvent()->getShippingAssignment();
$address = $shippingAssignment->getShipping()->getAddress();
// Retrieve the quote
/** @var Quote $quote */
$quote = $observer->getEvent()->getQuote();
// Retrieve the totals
$total = $observer->getEvent()->getTotal();
// Implement your custom logic here
}
}
Key Components:
- Event Name:
sales_quote_address_collect_totals_after
- Observer Name:
custom_quote_totals_observer
- Observer Class Path:
Vendor\Module\Observer\QuoteTotalsObserver
Additional Resources:
- Related Event: For actions before totals are collected, consider using the
sales_quote_address_collect_totals_before
event. Comprehensive Event List
: Refer to the Magento 2 documentation for a complete list of events to enhance your custom module.
By implementing the sales_quote_address_collect_totals_after event, you can effectively customize quote totals in Magento 2 to meet your specific business requirements.
Tip
To enhance your eCommerce store’s performance with Magento, focus on optimizing site speed by utilizing Emmo themes and extensions. These tools are designed for efficiency, ensuring your website loads quickly and provides a smooth user experience. Start leveraging Emmo's powerful solutions today to boost customer satisfaction and drive sales!
FAQs
What Is the sales_quote_address_collect_totals_after
Event in Magento 2?
The sales_quote_address_collect_totals_after
event in Magento 2 allows developers to modify quote totals after Magento has processed the current quote total.
Where Is the sales_quote_address_collect_totals_after
Event Defined?
This event is triggered in the quote total calculation process and is primarily used in the Magento_Quote
module.
How Can I Implement the sales_quote_address_collect_totals_after
Event?
To implement this event, register an observer in your module’s events.xml
file and create an observer class to modify quote totals after they are calculated.
What Data Can Be Accessed Using This Event?
Using this event, you can access the quote object, shipping assignment, address details, and total-related data for a cart.
Can I Apply Discounts or Fees Using This Event?
Yes. You can apply additional discounts, custom fees, or modify existing totals before they are finalized in the checkout process.
How Does This Event Affect Magento's Checkout Process?
Any modifications made using this event will impact the final order total displayed in the checkout summary and invoice calculations.
Where Are Quote Totals Stored in Magento 2?
Quote totals are stored in the sales_quote
and sales_quote_address
tables in the Magento database.
Where Can I Learn More About Customizing Quote Totals?
Refer to Magento’s official developer documentation for detailed guides on modifying quote totals using events and observers.