I've created my 1st module. The purpose is to add the customer group name to the order email template. I think that I didn't do something quite right and was hoping someone could look at my files to see where I may have messed up. The files are stored in magento/app/code/KeystoneCandle/AddGroupEmail/, /etc and /Observer
registration.php
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'KeytoneCandle_AddGroupEmail', __DIR__ );
module.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="KeystoneCandle_AddGroupEmail" setup_version="1.0.0"> <sequence> <module name="Magento_Catalog"/> </sequence> </module> </config>
Observer file AddGroupEmail.php
<?php
namespace KeystoneCandle\AddGroupEmail\Observer;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Customer\Model\Group;
class AddCustomerGroupToOrderEmail implements ObserverInterface
{
protected $_order;
protected $_group;
public function __construct(
\Magento\Sales\Model\Order $order,
Group $group
) {
$this->_order = $order;
$this->_group = $group;
}
public function execute(Observer $observer)
{
$order = $observer->getEvent()->getOrder();
$customerGroupId = $order->getCustomerGroupId();
$customerGroup = $this->_group->load($customerGroupId);
$customerGroupName = $customerGroup->getCustomerGroupCode();
// You can do additional processing with the customer group if needed.
$order->setData('customer_group_id', $customerGroupId);
$order->setData('customer_group_name', $customerGroupName);
}
}Then in the email template I try to use these variables to show the customer group name and ID
{{var order.customer_group_name}} {{var order.customer_group_id}}I've run setup:upgrade, setup:di:compile, setup:static-content:deploy -f, cache:flush/clean
The strange thing is that the
{{var order.customer_group_id}}variable pulls the customer group id even after I disable my module (and run all the previous commands) so I'm not sure if that variable needed the observer or not but I can't get any reaction from the customergroupname. I'd appreciate any insights. Thanks.
Hey,
events.xml file is missing at etc folder code is like below in that file,
<?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="email_order_set_template_vars_before"> <observer name="order-add-customer-group" instance="KeystoneCandle\KeystoneCandle\Observer\AddCustomerGroupToOrderEmail"/> </event> </config>
Thank You!