Magento 2 - Как мне отслеживать вход/регистрацию/подписку с помощью JavaScript?


В Magento 2 мне нужно вызвать некоторое отслеживание JS, когда происходят следующие вещи:

  • клиент входит на сайт
  • клиент регистрирует учетную запись
  • успешная подписка на рассылку новостей
  • клиент обновляет данные учетной записи
  • успех заказа

Помимо успеха заказа, у которого есть фактическая страница для запуска JavaScript, я не уверен, что лучший способ отслеживать другие события, поскольку их успех, похоже, полностью обрабатывается Только PHP.

Что касается требования к входу/регистрации, я видел, что в module-customer/view/frontend/web/js/action/login.js есть обработчик JS, который имеет следующее:

action.registerLoginCallback = function(callback) {
        callbacks.push(callback);
    };

Но я не уверен, как это можно подключить в моем модуле. Есть ли какие-либо ресурсы, которые могли бы здесь помочь? Я просто ищу предложения по наилучшему практическому подходу к этому.

Author: Adam Moss, 2017-04-07

2 answers

В итоге мне пришлось использовать файлы cookie из-за того, как медленно загружалось локальное хранилище, поэтому я ответил на свой вопрос этим сообщением в блоге: https://adammoss.co.uk/magentofox/private-data-tracking-in-magento-2/

 1
Author: Adam Moss, 2017-05-08 21:16:15

У меня есть предложение.

Взгляните: vendor/magento/module-customer/view/frontend/layout/default.xml

<block name="customer.customer.data"
               class="Magento\Customer\Block\CustomerData"
               template="Magento_Customer::js/customer-data.phtml"/>

Magento загрузит js/customer-data.phtml на каждую страницу. Файл js: js/customer-data.js также загружен.

Нам нужно добавить наш пользовательский js через phtml на каждую страницу с after.body.start

App/code/Vendor/Tracking/view/frontend/layout/default.xml

<?xml version="1.0"?>

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="after.body.start">
            <block class="Vendor\Tracking\Block\Js"
                   name="tracking" as="tracking" template="js.phtml"/>
        </referenceContainer>
    </body>
</page>

Создайте наш js отслеживания и поместите его в шаблон js.phtml.

Мы можем проверить данные с помощью: $(document).on('submit', function() {}); и $(document).on('ajaxComplete', function (event, xhr, settings) {}). Смотрите больше: vendor/magento/module-customer/view/frontend/web/js/customer‌​-data.js.

 0
Author: Khoa TruongDinh, 2017-04-07 13:47:17