{"id":13677905,"url":"https://github.com/webmatch/WbmTagManagerEcomm","last_synced_at":"2025-04-29T12:32:17.631Z","repository":{"id":37092370,"uuid":"275121045","full_name":"webmatch/WbmTagManagerEcomm","owner":"webmatch","description":"Shopware 6 Plugin for Google Tag Manager integration and dataLayer configuration","archived":false,"fork":false,"pushed_at":"2024-04-18T06:00:28.000Z","size":307,"stargazers_count":13,"open_issues_count":13,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-06T23:48:13.196Z","etag":null,"topics":["data-layer","datalayer-configuration","google-tag-manager","gtm","shopware-plugin","shopware6"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webmatch.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-26T09:37:59.000Z","updated_at":"2024-05-06T22:01:34.000Z","dependencies_parsed_at":"2024-04-18T06:39:16.012Z","dependency_job_id":"52bad0c5-0577-428d-8eaa-3ef135b598d3","html_url":"https://github.com/webmatch/WbmTagManagerEcomm","commit_stats":{"total_commits":145,"total_committers":5,"mean_commits":29.0,"dds":0.02758620689655178,"last_synced_commit":"cbe53aea081e35ce4dfb7ff2ff969117aeccf661"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatch%2FWbmTagManagerEcomm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatch%2FWbmTagManagerEcomm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatch%2FWbmTagManagerEcomm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatch%2FWbmTagManagerEcomm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webmatch","download_url":"https://codeload.github.com/webmatch/WbmTagManagerEcomm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224173287,"owners_count":17268088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-layer","datalayer-configuration","google-tag-manager","gtm","shopware-plugin","shopware6"],"created_at":"2024-08-02T13:00:48.397Z","updated_at":"2024-11-11T20:30:34.742Z","avatar_url":"https://github.com/webmatch.png","language":"PHP","funding_links":[],"categories":["Plugins"],"sub_categories":["Other"],"readme":"# WbmTagManagerEcomm - GTM integration and dataLayer configuration\n\n---\n\nThis Plugin will no longer be maintained.  \nPlease use the new Plugin [WbmTagManager](https://store.shopware.com/detail/index/sArticle/7813615/number/wbm8772526137131)  \nIt has full support to GA4 and also a version for Shopware 6.5\n\n---  \n\n---\n\nThis plugin integrates a new module within the [Shopware](https://www.shopware.de) backend that allows for the integration \nof the Google Tag Manager Snippet and the configuration of the dataLayer content.\n\nThe plugin offers the following features:\n\n* Prepend the GTM Snippet to the head Tag of every page\n* Define the content of the dataLayer for any route\n* All variables passed to the view are available as values for the dataLayer properties\n* Use Twig syntax to insert variables and alter values\n\nRequirements\n-----\n* Shopware \u003e= 6.0\n\nInstallation\n====\nDownload it from the shopware store and install it manually within the shopware backend.\n\nAlternative Installation via composer\n```\ncomposer require webmatch/tag-manager-sw6\n```\n\nAfter installation, use the following commands to install and activate the plugin in shopware\n```\nbin/console plugin:refresh\nbin/console plugin:install --activate WbmTagManagerEcomm\n```\n\nor the following to update, if previously installed\n```\nbin/console plugin:refresh\nbin/console plugin:update WbmTagManagerEcomm \n```\n\n##### :exclamation: Attention :exclamation:\nWith version 1.0.0 composer package was renamed from `wbm/tag-manager` to `webmatch/tag-manager-sw6` in order to publish the\npackage on packagist. If you used a version \u003c= 0.2.5, and you want to update this plugin, your composer.json should be updated too.\n\nUsage\n=====\nThe module will be accessible in backend through a new menu point.\n\nThe plugin comes pre-configured for:\n* Enhanced Ecommerce Tracking of Google Analytics\n* Dynamic Remarketing of Google AdWords\n\nUse syntax like `item in lineItems` as value for properties that are supposed to contain iterative elements.\n\nAdding modules\n=====\nModules are essentially configurations of a dataLayer for a specific view, meaning sites of more or less the same type.\n\nWhen adding new modules you're prompted to enter a name (what the new tab will read) and a route for the module.\n\nThe route must be equal to the one of the controller action that is supposed to be tracked.\n\nAfter adding a module you will find a new tab in the main screen, where you can declare the properties for the\ndataLayer of that specific route.\n\nAdditional Twig functions/filters\n=====\n\ndbquery\n-----\n\nThe Twig function `{{ dbquery(select, from, where, order) }}` is available for the compiling of dataLayers. The function allows you to fetch a single value\nfrom any database table. You can pass one or multiple criterias to be used in `WHERE` and `ORDER BY` statements.\n\nThe following example will work in the dataLayer of the \"Add to basket\" module and will fetch the product number of the newly added product.\n\n```\n{{ dbquery('product_number', 'product', {'id =': item.id|uuid2bytes}) }}\n```\n\nPlease note the use of single quotes only and the arguments in form of twig hashes e.g. `{'id =': item.id|uuid2bytes}`.\n\nAlso be aware that this feature is reliant on proper syntax, meaning you have to pass an operator with the column name and the \ncolumns as well as the values have to exist. Syntax errors will be caught and will result in an empty string to be returned instead.\n\nuuid2bytes\n-----\n\nThe Twig filter `|uuid2bytes` will convert uuid strings to binary format for the use in `dbquery` functions and the like.\n\n```\n{{ item.id|uuid2bytes }}\n```\n\nlanguageid\n-----\n\nFunction that returns the current language id in binary format. For use in `dbquery` functions when fetching translations and the like.\n\n```\n{{ languageid }}\n```\n\ncurrencyiso\n-----\n\nFunction that returns the 3 letter ISO code of the storefronts currency.\n\n```\n{{ currencyiso }}\n```\n\ncartaddprice\n-----\n\nFunction that sets a flag in the session in order to catch the price in from AfterLineItemAddedEvent, which will be \ninjected into the dataLayer right before passing it to the frontend.\nPrimarily for use in `addToBasket` events.\n\n```\n{{ cartaddprice() }}\n```\n\ncartremoveprice\n-----\n\nFunction that returns the unit price of a product when removed from the basket in its current state.  \nExpects parameter for product id in non-binary format.  \nOptionally takes a second boolean paramater and, when true, will return the quantity of the product before removal.\nPrimarily for use in `removeFrombasket` events using URL queries as parameters.\n\n```\n{{ cartremoveprice(product_id) }}\n{{ cartremoveprice(product_id, true) }}\n```\n\ngetvariantdescription\n-----\n\nFunction that returns a concatenated string of properties for a product variant. Returns empty string if the product is not a variant.\nTakes either a product id in non-binary format or an existing array of options.\n\n```\n{{ getvariantdescription(item.id) }}\n{{ getvariantdescription(lineItem.payload.options) }}\n```\n\ngetparam\n-----\n\nFunction that returns a specific GET/POST/route parameter if available.\n\n```\n{{ getparam('id') }}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatch%2FWbmTagManagerEcomm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebmatch%2FWbmTagManagerEcomm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatch%2FWbmTagManagerEcomm/lists"}