I have created one observer CategorySaveAfter.php file in my custom module.
And calling this observer on catalog_category_save_after event define in events.xml
But somehow its not calling when i save category using restApi
Its working fine when i save category from magento2 backend it calling observer staightforward.
But for Rest APi its not working .
Below code i have tried :
Vendor/Module/etc/adminhtml/events.xml
<?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="catalog_category_save_after">
<observer name="catalog_megamenu" instance="Vendor\ModuleName\Observer\CategorySaveAfter" />
</event>
</config>
Vendor/Module/Observer/Categorysaveafter.php
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Vendor\ModuleName\Observer;
use Magento\Catalog\Model\Category;
use Magento\Framework\Event\ObserverInterface;
class Categorysaveafter implements ObserverInterface
{
protected $test;
public function __construct(\Vendor\Modulename\Model\ModelFactory $testMenu)
{
$this->test = $testMenu;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
echo "goes here";exit;
}
}
Yes i have added registration.php and module.xml file as well.
Update :
Forgot to mention that i have tried global level events.xml as well . Like etc/events.xml and etc/webapi_rest/events.xml . Still both way its not calling
Your help will be appreciated.
Best Answer
You have to override core CategoryRepository.php file to changes your custom requirement.
app/code/Package/Modulename/etc/di.xml
Inside app/code/Package/Modulename/Model/CategoryRepository.php,
Remove var/generation folder and check again.