taggrs / magento2-data-layer
本扩展从 Magento 2 收集电商数据并将其推送到 Google Tag Manager 数据层。
README
本扩展从 Magento 2 收集电商数据并将其推送到 Google Tag Manager 数据层。
安装
将您的 Magento 商店设置为维护模式。
bin/magento maintenance:enable
通过 composer 安装扩展。
composer require taggrs/magento2-data-layer
启用模块并执行数据库升级。
bin/magento setup:upgrage
执行依赖注入编译。
bin/magento setup:di:compile
部署静态内容。
bin/magento setup:static-content:deploy
禁用维护模式。
bin/magento maintenance:disable
配置
此扩展的配置位于
商店 > 配置 > TAGGRS > 数据层
Google Tag Manager 设置
此标签页用于配置 GTM。
- Google Tag Manager 代码 输入您的 GTM-跟踪代码。
- Measurements API 密钥 输入您的 Google Measurements API 密钥。
- 增强跟踪脚本的子域 输入用于增强跟踪的子域。
事件
按事件设置以启用或禁用测量
事件
当前捕获的事件有
- view_item_list
- view_item
- add_to_cart
- remove_from_cart
- view_cart
- select_promotion
- begin_checkout
- purchase
view_item_list
此事件在目录分类页面和目录搜索结果页面触发。在这两种情况下,数据层在后台渲染。
由于完全页面缓存 (FPC),需要在将用户数据部分推送到数据层全局之前,通过 AJAX 获取它。
渲染目录分类数据层的块是 Taggrs\DataLayer\Block\Event\CategoryViewItemList。
渲染目录搜索结果数据层的块是 Taggrs\DataLayer\Block\Event\SearchResultsViewItemList。
view_item
此事件在目录产品页面触发。此数据层在后台渲染。
由于 FPC,需要在将用户数据部分推送到数据层全局之前,通过 AJAX 获取它。
渲染数据层的块是 Taggrs\DataLayer\Block\Event\ViewItem。
add_to_cart
此事件在将产品添加到购物车时触发。由于在 Magento 2 中将产品添加到购物车是一个 AJAX 事件,因此需要通过 AJAX 事件渲染数据层。
数据层在以下前端控制器中渲染: Taggrs\DataLayer\Controller\AddToCart\Index。
remove_from_cart
此事件在从购物车中移除产品时触发。这可以发生在迷你购物车或结账购物车页面上。
迷你购物车
由于在 Magento 2 中从购物车中移除产品是一个 AJAX 事件,因此需要通过 AJAX 渲染数据层。
由于无法检索有关从购物车中移除的产品信息,因此需要在前端准备好有关购物车的信息。
这些数据在 Taggrs\DataLayer\Controller\GetQuoteData\Index 中渲染。
数据层在 Taggrs/DataLayer/view/frontend/web/js/checkout-sidebar-mixin.js 中构建并推送到数据层全局。
结账购物车
由于从购物车中移除产品后会有重定向,因此需要在后台渲染数据层并将其存储在会话中以便在前端显示。
数据层是在 Taggrs\DataLayer\Plugin\RemoveFromCart 中构建的。它被注册为 Magento\Checkout\Controller\Cart\Delete::beforeExecute()
的插件。
然后它被存储在会话中,在重定向后从会话中检索并由 Taggrs\DataLayer\Block\SessionDataLayer 渲染。
view_cart
此事件在结账购物车页面触发。因为结账页面在FPC中不被缓存,所以不需要通过AJAX加载用户数据。
数据层在 Taggrs\DataLayer\Block\Event\ViewCart 中渲染。
如果打开头部迷你购物车,view_cart 也会通过AJAX触发。AJAX数据层在 Taggrs\DataLayer\Controller\ViewCart\Index 中渲染。
select_promotion
当客户应用折扣代码时触发此事件。这可以在结账购物车页面或结账支付页面进行。
结账购物车页面
因为应用优惠券后会有重定向,所以需要在后端渲染数据层并将其存储在会话中,以便在前端显示,就像结账购物车页面上 remove_from_cart
事件一样。
数据层是在 Taggrs\DataLayer\Plugin\SelectPromotion 中构建的。
结账支付页面
因为结账支付页面上的应用优惠券是一个AJAX事件,所以数据层也需要通过AJAX渲染。
数据层是在 Taggrs\DataLayer\Controller\SelectPromotion\Index 中构建的。
begin_checkout
此事件在结账索引页面上触发。此数据层在后端使用 Taggrs\DataLayer\Block\Event\BeginCheckout 渲染。
add_shipping_info
当已登录的客户选择他的收货地址或访客客户输入邮编时,此事件在结账索引页面上触发。
数据层在 Taggrs\Datalayer\Controller\AddShippingInfo\Index 中渲染。
add_payment_info
当客户选择支付方式时,此事件在结账索引页面上触发。
数据层在 Taggrs\Datalayer\Controller\AddPaymentInfo\Index 中渲染。
purchase
此事件在结账感谢页面上触发。因为某些情况下客户可能看不到结账感谢页面,所以还需要使用Google测量API从后端推送数据层。
结账感谢页面
此数据层使用 Taggrs\DataLayer\Block\Event\Purchase 在后端渲染。