In the documentation it says: > *"A plugin, or interceptor, is a class that modifies the behavior of public class functions by intercepting a function call and running > code before, after, or around that function call. This allows you to > substitute or extend the behavior of original, public methods **for > any class or interface**."* But is this also true for API? I try to write a **afterSave** Plugin for the class **Magento\Quote\Api\CartItemRepositoryInterface** to log something if the quote is getting saved. But it does not work and no log is created. **app/code/Company/Checkout/etc/frontend/di.xml** <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> <type name="Magento\Quote\Api\CartItemRepositoryInterface"> <plugin name="Company_Checkout_CartItemRepositoryInterface" type="Company\Checkout\Plugin\Quote\Api\CartItemRepositoryInterface" sortOrder="10"/> </type> </config> **app/code/Company/Checkout/Plugin/Quote/Api/CartItemRepositoryInterface.php** <?php namespace Company\Checkout\Plugin\Quote\Api; class CartItemRepositoryInterface { protected $_cartFactory; public function __construct( \Magento\Checkout\Model\CartFactory $cartFactory ) { $this->_cartFactory = $cartFactory; } public function afterSave(\Magento\Quote\Api\Data\CartItemInterface $cartItem) { $cart = $this->_cartFactory->create(); $quote = $cart->getQuote(); \Eddcapone\ChromePhp\Helper\ChromePhp::log("Hello from afterSave Plugin (API: module-quote/api/CartItemRepositoryInterface/save"); \Eddcapone\ChromePhp\Helper\ChromePhp::log("QuoteId = ". $quote->getId()); } }