Magento 2 купона добавить / удалить прослушиватель событий - PullRequest
0 голосов
/ 18 июня 2020

Мне нужно добавить событие в корзину, чтобы добавить / удалить купон. Я создал прослушиватель событий controller_action_predispatch_checkout_cart_couponPost, который отлично работает на странице - /checkout/cart/. Но на следующей странице - /checkout/#payment это не работает. Я не могу найти событие для добавления слушателя.

Как я могу это сделать?

1 Ответ

0 голосов
/ 18 июня 2020

controller_action_predispatch событий автоматически генерируются на основе маршрута или полного имени действия запроса.

Если вы выполните поиск по запросу controller_action_predispatch, вы обнаружите, что эти события отправляются в Magento\Framework\App\Action\Action::dispatch(RequestInterface).

  • /checkout/cart/couponPost находится в Magento\Checkout\Controller\Cart\CouponPost, который является контроллером
  • /rest/default/V1/carts/mine/coupons/{coupon} - это не контроллер, а REST API, поэтому он «расположен» в /vendor/magento/module-quote/etc/webapi.xml и определяет конечную точку «/V1/carts/mine/coupons/:couponCode, которая, в свою очередь, ссылается на Magento\Quote\Api\CouponManagementInterface::set(int, string)
.

Если вы хотите, вы можете написать плагин для Magento\Quote\Api\CouponManagementInterface::set(int, string), но, не зная вашего точного варианта использования, я не могу сказать, хорошее ли это решение или вам может быть лучше с другим событием или наблюдателем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...