From f2884568535c0df2f3995ff3f15ac09b5c4bfbed Mon Sep 17 00:00:00 2001 From: SEAN LAPTOP Date: Thu, 10 May 2018 21:48:14 +0200 Subject: [PATCH 1/7] Some code refactoring rename list to route rename type to page handle re-add product price addvariable detection for route (was list) for checkout and succes page --- .../MagePal/GoogleTagManager/Block/Tm.php | 11 ++++-- .../GoogleTagManager/Model/DataLayer.php | 35 +++++++++++++------ 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/app/code/local/MagePal/GoogleTagManager/Block/Tm.php b/app/code/local/MagePal/GoogleTagManager/Block/Tm.php index edf5a55..575bbb2 100755 --- a/app/code/local/MagePal/GoogleTagManager/Block/Tm.php +++ b/app/code/local/MagePal/GoogleTagManager/Block/Tm.php @@ -28,7 +28,6 @@ class MagePal_GoogleTagManager_Block_Tm extends Mage_Core_Block_Template */ protected $_dataLayerModel = null; - protected $_customVariables = array(); protected $_orderCollection = null; @@ -40,7 +39,15 @@ public function __construct() { $this->_gtmHelper = Mage::helper('googletagmanager'); $this->_dataLayerModel = Mage::getModel('googletagmanager/dataLayer'); - $this->addVariable('ecommerce', array('currencyCode' => Mage::app()->getStore()->getCurrentCurrencyCode())); + $this->addVariable('currency', array('currencyCode' => Mage::app()->getStore()->getCurrentCurrencyCode())); + + $this->addVariable('page_handle', $this->fullActionName); + $this->addVariable('route', 'other'); + + if($this->fullActionName === 'checkout_onepage_success'){ + $this->addVariable('route', 'checkout_success'); + } + } /** diff --git a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php index 4af2808..a61a1d4 100755 --- a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php +++ b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php @@ -42,9 +42,17 @@ public function __construct() { $this->fullActionName = Mage::app()->getFrontController()->getAction() ? Mage::app()->getFrontController()->getAction()->getFullActionName() : 'Unknown';; - $this->addVariable('pageType', $this->fullActionName); - $this->addVariable('list', 'other'); - + $this->addVariable('page_handle', $this->fullActionName); + $this->addVariable('route', 'other'); + + if($this->fullActionName === 'cms_index_index'){ + $this->addVariable('route', 'home_page'); + } + + if($this->fullActionName === 'cms_page_view'){ + $this->addVariable('route', 'cms_page'); + } + $this->setCustomerDataLayer(); $this->setProductDataLayer(); $this->setCategoryDataLayer(); @@ -89,8 +97,7 @@ protected function setCategoryDataLayer() { $category['name'] = $_category->getName(); $this->addVariable('category', $category); - - $this->addVariable('list', 'category'); + $this->addVariable('route', 'category'); } return $this; @@ -104,13 +111,13 @@ protected function setProductDataLayer() { if($this->fullActionName === 'catalog_product_view' && $_product = Mage::registry('current_product') ) { - $this->addVariable('list', 'detail'); + $this->addVariable('route', 'product'); $product = array(); $product['id'] = $_product->getId(); $product['sku'] = $_product->getSku(); $product['name'] = $_product->getName(); - // $this->addVariable('productPrice', $_product->getPrice()); + $product['price'] = $_product->getPrice(); $this->addVariable('product', $product); } @@ -143,10 +150,18 @@ protected function setCustomerDataLayer() { * Set cart Data Layer */ protected function setCartDataLayer() { - if($this->fullActionName === 'checkout_index_index'){ - $this->addVariable('list', 'cart'); + if($this->fullActionName === 'checkout_index_index' || $this->fullActionName === 'checkout_cart_index'){ + $this->addVariable('route', 'cart'); } - + + if($this->fullActionName === 'checkout_onepage_index'){ + $this->addVariable('route', 'checkout'); + } + + if($this->fullActionName === 'checkout_onepage_success'){ + $this->addVariable('route', 'checkout_success'); + } + $quote = $this->getQuote(); $cart = array(); From 6f2efdd1544b7c395e6fbc08cf739d1c52ed6007 Mon Sep 17 00:00:00 2001 From: SEAN LAPTOP Date: Thu, 10 May 2018 22:02:59 +0200 Subject: [PATCH 2/7] same nameconvention --- .../frontend/base/default/layout/magepal_googletagmanager.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/design/frontend/base/default/layout/magepal_googletagmanager.xml b/app/design/frontend/base/default/layout/magepal_googletagmanager.xml index 5e8daf2..8f01a6a 100755 --- a/app/design/frontend/base/default/layout/magepal_googletagmanager.xml +++ b/app/design/frontend/base/default/layout/magepal_googletagmanager.xml @@ -14,7 +14,7 @@ Default layout, loads most of the pages - + From 5f44ecd8dc321352a346cd959247b803a6b74306 Mon Sep 17 00:00:00 2001 From: SEAN LAPTOP Date: Thu, 10 May 2018 22:21:08 +0200 Subject: [PATCH 3/7] reset variable + fix cart prices not adding up fix cart prices not adding up prices were not adding up because 1 is without tax other is with --- app/code/local/MagePal/GoogleTagManager/Block/Tm.php | 2 +- app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/local/MagePal/GoogleTagManager/Block/Tm.php b/app/code/local/MagePal/GoogleTagManager/Block/Tm.php index 575bbb2..cfe244a 100755 --- a/app/code/local/MagePal/GoogleTagManager/Block/Tm.php +++ b/app/code/local/MagePal/GoogleTagManager/Block/Tm.php @@ -39,7 +39,7 @@ public function __construct() { $this->_gtmHelper = Mage::helper('googletagmanager'); $this->_dataLayerModel = Mage::getModel('googletagmanager/dataLayer'); - $this->addVariable('currency', array('currencyCode' => Mage::app()->getStore()->getCurrentCurrencyCode())); + $this->addVariable('ecommerce', array('currencyCode' => Mage::app()->getStore()->getCurrentCurrencyCode())); $this->addVariable('page_handle', $this->fullActionName); $this->addVariable('route', 'other'); diff --git a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php index a61a1d4..99cfba9 100755 --- a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php +++ b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php @@ -175,7 +175,7 @@ protected function setCartDataLayer() { $items[] = array( 'sku' => $item->getSku(), 'name' => $item->getName(), - 'price' => $this->formatPrice($item->getPrice()), + 'price' => $this->formatPrice($item->getRowTotalInclTax()), 'quantity' => $item->getQty() ); } From 9bcaa4e8fad955c574635977cb61975acec34212 Mon Sep 17 00:00:00 2001 From: SEAN LAPTOP Date: Thu, 10 May 2018 22:31:22 +0200 Subject: [PATCH 4/7] Add domain --- .../MagePal/GoogleTagManager/Model/DataLayer.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php index 99cfba9..f5a9fcf 100755 --- a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php +++ b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php @@ -53,6 +53,19 @@ public function __construct() { $this->addVariable('route', 'cms_page'); } + $domain = Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB); // Maybe add $_SERVER['HTTP_HOST']; + $this->addVariable('domain', $domain); + + $domain = 'unknown'; // Maybe add $_SERVER['HTTP_HOST']; + if ($_SERVER['HTTP_HOST']) { + $domain = $_SERVER['HTTP_HOST']; + } else if (Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB)) { + $domain = Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB); + } + $domain = preg_replace("(^https?://)", "", $domain); + $domain = preg_replace("(\/)", "", $domain); + $this->addVariable('domain', $domain); + $this->setCustomerDataLayer(); $this->setProductDataLayer(); $this->setCategoryDataLayer(); From 7035f473a6a362577cc35c5524fb88ab03766858 Mon Sep 17 00:00:00 2001 From: SEAN LAPTOP Date: Thu, 10 May 2018 22:32:34 +0200 Subject: [PATCH 5/7] undo --- .../local/MagePal/GoogleTagManager/Model/DataLayer.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php index f5a9fcf..9172d32 100755 --- a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php +++ b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php @@ -56,16 +56,6 @@ public function __construct() { $domain = Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB); // Maybe add $_SERVER['HTTP_HOST']; $this->addVariable('domain', $domain); - $domain = 'unknown'; // Maybe add $_SERVER['HTTP_HOST']; - if ($_SERVER['HTTP_HOST']) { - $domain = $_SERVER['HTTP_HOST']; - } else if (Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB)) { - $domain = Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB); - } - $domain = preg_replace("(^https?://)", "", $domain); - $domain = preg_replace("(\/)", "", $domain); - $this->addVariable('domain', $domain); - $this->setCustomerDataLayer(); $this->setProductDataLayer(); $this->setCategoryDataLayer(); From c45eef88a40025bc4e9b47c6708488e547a4c497 Mon Sep 17 00:00:00 2001 From: SEAN LAPTOP Date: Thu, 10 May 2018 22:34:39 +0200 Subject: [PATCH 6/7] add domain --- .../local/MagePal/GoogleTagManager/Model/DataLayer.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php index 9172d32..f5a9fcf 100755 --- a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php +++ b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php @@ -56,6 +56,16 @@ public function __construct() { $domain = Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB); // Maybe add $_SERVER['HTTP_HOST']; $this->addVariable('domain', $domain); + $domain = 'unknown'; // Maybe add $_SERVER['HTTP_HOST']; + if ($_SERVER['HTTP_HOST']) { + $domain = $_SERVER['HTTP_HOST']; + } else if (Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB)) { + $domain = Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB); + } + $domain = preg_replace("(^https?://)", "", $domain); + $domain = preg_replace("(\/)", "", $domain); + $this->addVariable('domain', $domain); + $this->setCustomerDataLayer(); $this->setProductDataLayer(); $this->setCategoryDataLayer(); From b0e0f81d37f31d321c7f48f6b6403ad8ac46db29 Mon Sep 17 00:00:00 2001 From: SEAN LAPTOP Date: Thu, 10 May 2018 22:40:22 +0200 Subject: [PATCH 7/7] add domain --- app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php index f5a9fcf..79d1025 100755 --- a/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php +++ b/app/code/local/MagePal/GoogleTagManager/Model/DataLayer.php @@ -53,9 +53,6 @@ public function __construct() { $this->addVariable('route', 'cms_page'); } - $domain = Mage::getBaseUrl (Mage_Core_Model_Store::URL_TYPE_WEB); // Maybe add $_SERVER['HTTP_HOST']; - $this->addVariable('domain', $domain); - $domain = 'unknown'; // Maybe add $_SERVER['HTTP_HOST']; if ($_SERVER['HTTP_HOST']) { $domain = $_SERVER['HTTP_HOST'];