modules instal extensions downloads php magento magento2

php - instal - Magento 2: evento enviado cuando un usuario hace clic en "Ir a la comprobación"



magento2 github (5)

¿Cuál es el nombre del evento que se distribuye cuando un cliente hace clic en "Ir a la comprobación" después de agregar cosas en su carrito? Quiero registrar que un usuario inició un proceso de pago para análisis. Específicamente, necesito capturar el contenido del carro y otra información como el precio total, etc.

He probado la mayoría de los eventos en esta lista que están relacionados con "checkout" o "cart". Ninguno de ellos parece ser enviado cuando un usuario hace clic en la opción de pago. Lo más cerca que pude conseguir fue

controller_action_predispatch_checkout_cart_index

que se envía cuando un usuario hace clic en "Ver y editar carrito".

Estoy buscando un par de maneras para resolver esto

  1. Obtenga el nombre del evento que se distribuye cuando un usuario hace clic en "Ir a la comprobación". Observa ese evento y "engancha" mi código a él.
  2. ¿O hay una manera de ver todos los eventos que se envían en tiempo real? Estoy pensando que podría encontrar algún otro evento que se distribuya casi al mismo tiempo que el pago y luego observe ese.

Creo que debería ser

sales_quote_save_after

Esperanza, te ayuda.


Probablemente, esta es una segunda forma que está buscando. Puede registrar todos los eventos en el método "/ Magento / Framework / Event / Manager :: dispatch" (archivo ./vendor/magento/framework/Event/Manager.php):

public function dispatch($eventName, array $data = []) { $obm = /Magento/Framework/App/ObjectManager::getInstance(); /** @var $logger /Psr/Log/LoggerInterface */ $logger = $obm->get(/Psr/Log/LoggerInterface::class); $logger->debug($eventName); // original code $eventName = mb_strtolower($eventName); ... }

Los archivos de registro se colocan en la carpeta "./var/log"


Puede usar checkout_cart_save_before este evento que puede encontrar en vendedor / magento / module-checkout / Model / Cart.php

Buscar siguiente fragmento de código:

$this->_eventManager->dispatch(''checkout_cart_save_before'', [''cart'' => $this]);

Espero que esto te ayude


Si quiero registrar todos los eventos que se envían después de cierta interacción, voy a Magento/Framework/Event/Manager y configuro un punto de interrupción en el método de dispatch que registra $eventName en la consola.

También puede agregar una declaración de registro o escribir un complemento en un módulo personalizado que registre el nombre del evento en algún archivo.

Hay muchos eventos que se envían al hacer clic en Go to checkout , tal vez checkout_cart_save_before es el que está buscando.


Utilice controller_action_predispatch_checkout_index_index .