Download the PHP package thelia/google-tag-manager-module without Composer

On this page you can find all versions of the php package thelia/google-tag-manager-module. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package google-tag-manager-module

Google Tag Manager

This module pushes the Google Analytics 4 e-commerce events of a Thelia shop to a Google Tag Manager dataLayer.

Installation

Composer

The module needs the ShortCode module (2.0 or later): the view_item and view_item_list pushes are resolved through it once the response is built.

Usage

You need to configure the id from your Google tag manager account in the thelia administration panel.\ It should look like . Nothing is rendered while this id is empty.

The module injects its scripts through theme hooks: as long as your front theme declares the hook points below, there is nothing to add to your templates.

Theme hook Where the theme declares it What the module renders
layout.head.bottom in <head> GTM container script, then the dataLayer pushes of the page (see Events below)
layout.body.top right after <body> GTM <noscript> fallback
layout.body.bottom before </body> select_item / add_to_cart event listeners
product.bottom product page, with a product parameter registers the viewed product (enables the view_item event)

The flexy front-office theme declares all four out of the box:

product.bottom must receive the product, otherwise the view_item event is silently skipped.

Events

Event Pushed on Items
thelia_page_view every page, with the page type and the logged-in customer none
view_item_list category, brand and search views the products of the listing
view_item the product page the viewed product
select_item a click on a product link of a listing the product behind the link
add_to_cart, remove_from_cart the two JS custom events described below the product sale element and its quantity
view_cart the checkout_cart route the cart lines
begin_checkout the checkout_delivery route the cart lines
add_shipping_info the checkout_invoice route the cart lines
add_payment_info the checkout_payment route the cart lines
purchase the checkout_pay or checkout_confirm route, once, for the order placed in the session the order lines
thelia_auth_success the page following a login or a registration none

Items

Every item carries item_id, item_name, item_brand, affiliation, price, currency, quantity, the category path (item_category, item_category2...) and item_variant when the line is a combination.

price is the unit price before tax. Listing, product, cart and add to cart items round it to the cent; purchase items keep six decimals, so that price times quantity gives back the amount the line was invoiced. The value of an event is the taxed amount of the cart or of the order, and, like the tax and shipping of the purchase, it is rounded to the cent.

quantity is the quantity of the line: the cart line, the order line, or the quantity sent by the add to cart event.

Reshaping the items from your theme or module

A project that needs its items shaped differently (a fixed quantity, another price rule) can decorate GoogleTagManager\Service\GoogleTagService instead of patching the module. getProductItem() and getOrderProductItem() build every item the module pushes, whatever the event, so overriding these two covers listings, product page, cart, checkout steps, add to cart and purchase at once.

The service has no interface: the decorator extends the class and lets the module compute the item first. The example below reports every item as a single unit, which a shop selling by weight needs (its lines carry grams). The price is left as the module computed it.

Three things to know about this setup:

Check the wiring on the compiled container: php Thelia debug:container 'GoogleTagManager\Service\GoogleTagService' must list your class, with a container.decorator tag.

Themes without theme hooks

If your theme does not declare those hook points, the same rendering is available as Twig functions you place yourself:

Function Where Equivalent to
{{ gtm_head() }} in <head> the dataLayer pushes of layout.head.bottom
{{ gtm_js_init() }} before </body> layout.body.bottom
{{ gtm_track_product(product.id) }} product page template product.bottom

Do not use both mechanisms at once. gtm_head() is already called by the template rendered on layout.head.bottom, so adding it to a theme that declares that hook pushes page_view twice.

This fallback has two limits. gtm_head() outputs the dataLayer pushes only, so you have to add the GTM container <script> and the <noscript> iframe to your layout yourself. And there is no Twig function for the <noscript> fallback.

Tracking add to cart / remove from cart

The add_to_cart and remove_from_cart events are driven by two JS custom events you dispatch from your "Add to cart" / "Remove from cart" buttons:

From a live component, dispatch the same event server side:

Tracking select_item on listings

On listing views (category, brand, search, folder, content, page) the module binds the select_item event to product links matching a.ProductCard, .ProductCard a. Adapt templates/frontOffice/default/assets/js/getItem.js if your theme uses different markup.


All versions of google-tag-manager-module with dependencies

PHP Build Version
Package Version
Requires thelia/installer Version ^1.6
thelia/short-code-module Version ^3.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package thelia/google-tag-manager-module contains the following files

Loading the files please wait ...