From bce009497bbc3cd6cbc233b765dd9b5e8d14a062 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@magento.com> Date: Tue, 3 Oct 2017 18:51:54 +0300 Subject: [PATCH] MAGETWO-80195: [2.2.x] - Send different base currency in Google analytics #10508 --- .gitignore | 1 + app/code/Magento/GoogleAnalytics/Block/Ga.php | 18 ++++++++++-------- .../GoogleAnalytics/Test/Unit/Block/GaTest.php | 13 ++++++++----- .../view/frontend/web/js/google-analytics.js | 3 +++ 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index bae558e0e5b..94c3bf76a2b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /.metadata /.project /.settings +/.vscode atlassian* /nbproject /robots.txt diff --git a/app/code/Magento/GoogleAnalytics/Block/Ga.php b/app/code/Magento/GoogleAnalytics/Block/Ga.php index cda0f198d01..0afd6c51e96 100644 --- a/app/code/Magento/GoogleAnalytics/Block/Ga.php +++ b/app/code/Magento/GoogleAnalytics/Block/Ga.php @@ -121,6 +121,7 @@ class Ga extends \Magento\Framework\View\Element\Template $result[] = "ga('require', 'ec', 'ec.js');"; foreach ($collection as $order) { + $result[] = "ga('set', 'currencyCode', '" . $order->getOrderCurrencyCode() . "');"; foreach ($order->getAllVisibleItems() as $item) { $result[] = sprintf( "ga('ec:addProduct', { @@ -131,7 +132,7 @@ class Ga extends \Magento\Framework\View\Element\Template });", $this->escapeJs($item->getSku()), $this->escapeJs($item->getName()), - $item->getBasePrice(), + $item->getPrice(), $item->getQtyOrdered() ); } @@ -146,9 +147,9 @@ class Ga extends \Magento\Framework\View\Element\Template });", $order->getIncrementId(), $this->escapeJs($this->_storeManager->getStore()->getFrontendName()), - $order->getBaseGrandTotal(), - $order->getBaseTaxAmount(), - $order->getBaseShippingAmount() + $order->getGrandTotal(), + $order->getTaxAmount(), + $order->getShippingAmount() ); $result[] = "ga('send', 'pageview');"; @@ -237,17 +238,18 @@ class Ga extends \Magento\Framework\View\Element\Template $result['products'][] = [ 'id' => $this->escapeJs($item->getSku()), 'name' => $this->escapeJs($item->getName()), - 'price' => $item->getBasePrice(), + 'price' => $item->getPrice(), 'quantity' => $item->getQtyOrdered(), ]; } $result['orders'][] = [ 'id' => $order->getIncrementId(), 'affiliation' => $this->escapeJs($this->_storeManager->getStore()->getFrontendName()), - 'revenue' => $order->getBaseGrandTotal(), - 'tax' => $order->getBaseTaxAmount(), - 'shipping' => $order->getBaseShippingAmount(), + 'revenue' => $order->getGrandTotal(), + 'tax' => $order->getTaxAmount(), + 'shipping' => $order->getShippingAmount(), ]; + $result['currency'] = $order->getOrderCurrencyCode(); } return $result; } diff --git a/app/code/Magento/GoogleAnalytics/Test/Unit/Block/GaTest.php b/app/code/Magento/GoogleAnalytics/Test/Unit/Block/GaTest.php index df535946bbd..63a97b99c1e 100644 --- a/app/code/Magento/GoogleAnalytics/Test/Unit/Block/GaTest.php +++ b/app/code/Magento/GoogleAnalytics/Test/Unit/Block/GaTest.php @@ -103,6 +103,7 @@ class GaTest extends \PHPUnit\Framework\TestCase $this->storeManagerMock->expects($this->once())->method('getStore')->willReturn($this->storeMock); $expectedCode = "ga('require', 'ec', 'ec.js'); + ga('set', 'currencyCode', 'USD'); ga('ec:addProduct', { 'id': 'sku0', 'name': 'testName0', @@ -165,7 +166,8 @@ class GaTest extends \PHPUnit\Framework\TestCase 'price' => 0.00, 'quantity' => 1 ] - ] + ], + 'currency' => 'USD' ]; $this->gaBlock->setOrderIds([1, 2]); @@ -202,7 +204,7 @@ class GaTest extends \PHPUnit\Framework\TestCase ->getMock(); $orderItemMock->expects($this->once())->method('getSku')->willReturn('sku' . $i); $orderItemMock->expects($this->once())->method('getName')->willReturn('testName' . $i); - $orderItemMock->expects($this->once())->method('getBasePrice')->willReturn($i . '.00'); + $orderItemMock->expects($this->once())->method('getPrice')->willReturn($i . '.00'); $orderItemMock->expects($this->once())->method('getQtyOrdered')->willReturn($i + 1); $orderItems[] = $orderItemMock; } @@ -210,9 +212,10 @@ class GaTest extends \PHPUnit\Framework\TestCase $orderMock = $this->getMockBuilder(Order::class)->disableOriginalConstructor()->getMock(); $orderMock->expects($this->once())->method('getIncrementId')->willReturn(100); $orderMock->expects($this->once())->method('getAllVisibleItems')->willReturn($orderItems); - $orderMock->expects($this->once())->method('getBaseGrandTotal')->willReturn(10); - $orderMock->expects($this->once())->method('getBaseTaxAmount')->willReturn(2); - $orderMock->expects($this->once())->method('getBaseShippingAmount')->willReturn($orderItemCount); + $orderMock->expects($this->once())->method('getGrandTotal')->willReturn(10); + $orderMock->expects($this->once())->method('getTaxAmount')->willReturn(2); + $orderMock->expects($this->once())->method('getShippingAmount')->willReturn($orderItemCount); + $orderMock->expects($this->once())->method('getOrderCurrencyCode')->willReturn('USD'); return $orderMock; } diff --git a/app/code/Magento/GoogleAnalytics/view/frontend/web/js/google-analytics.js b/app/code/Magento/GoogleAnalytics/view/frontend/web/js/google-analytics.js index ab00f814102..324881cdc50 100644 --- a/app/code/Magento/GoogleAnalytics/view/frontend/web/js/google-analytics.js +++ b/app/code/Magento/GoogleAnalytics/view/frontend/web/js/google-analytics.js @@ -57,6 +57,9 @@ define([ if (config.ordersTrackingData) { ga('require', 'ec', 'ec.js'); + //Set currency code + ga('set', 'currencyCode', config.ordersTrackingData.currency); + // Collect product data for GA if (config.ordersTrackingData.products) { $.each(config.ordersTrackingData.products, function (index, value) { -- GitLab