M2: Почему Мой Наблюдатель Не Запускает Вызовы API
У меня есть наблюдатель, который настроен в моем модуле
Файл : app\code\MStack\Exchange\etc\frontend\events.xml
<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="changeTaxTotal" instance="MStack\Exchange\Observer\ChangeTaxTotal"/>
</event>
</config>
Файл : app\code\MStack\Exchange\Observer\ChangeTaxTotal.php
<?php
namespace MStack\Exchange\Observer;
use \Magento\Framework\Event\ObserverInterface;
use \Magento\Framework\Event\Observer;
class ChangeTaxTotal implements ObserverInterface
{
public $additionalTaxAmt = 2;
public function execute(Observer $observer)
{
/** @var Magento\Quote\Model\Quote\Address\Total */
$total = $observer->getData('total');
$total->addTotalAmount('tax', $this->additionalTaxAmt);
return $this;
}
}
Как вы можете видеть, я слушаю событие sales_quote_address_collect_totals_after
. Я проверяю это со страницы корзины, и, очевидно, это событие запускается оттуда.
Я вижу, что мое событие прослушивается при загрузке страницы. Но он не прослушивает вызовы api, которые утверждаются Magento для вычисления итогов (например, если вы попытаетесь использовать: Оценка Доставка и налоги). Я могу указать URL-адреса, которые не увольняют моего наблюдателя.
Www.mydomain.com/index.php/rest/default/V1/guest-carts/e192be2e994b1228be16487655004adc/totals-information
Так почему же мой наблюдатель не слушает такой запрос API? Как я могу изменить свой код, чтобы он работал для запроса API?
1 answers
Вам необходимо дополнительно поместить ваш файл events.xml
в папку etc/webapi_rest
или переместить в корневую область etc/
.
Файлы конфигурации, которые находятся на верхнем уровне каталога etc этого модуля , являются глобальными для этого компонента. Файлы конфигурации, размещенные в подкаталогах (adminhtml, интерфейс, webapi_rest, webapi_soap), применяются только к соответствующим функциональным области.
Http://devdocs.magento.com/guides/v2.1/extension-dev-guide/build/required-configuration-files.html