diff --git a/vendor/magento/module-google-analytics/Block/Ga.php b/vendor/magento/module-google-analytics/Block/Ga.php index 0370174c0b7f..3be62a588efa 100644 --- a/vendor/magento/module-google-analytics/Block/Ga.php +++ b/vendor/magento/module-google-analytics/Block/Ga.php @@ -82,6 +82,7 @@ public function getPageName() * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/method-reference#set * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/method-reference#gaObjectMethods * @deprecated 100.2.0 please use getPageTrackingData method + * @see getPageTrackingData method */ public function getPageTrackingCode($accountId) { @@ -103,6 +104,7 @@ public function getPageTrackingCode($accountId) * * @return string|void * @deprecated 100.2.0 please use getOrdersTrackingData method + * @see getOrdersTrackingData method */ public function getOrdersTrackingCode() { @@ -120,17 +122,19 @@ public function getOrdersTrackingCode() foreach ($collection as $order) { $result[] = "ga('set', 'currencyCode', '" . $order->getOrderCurrencyCode() . "');"; foreach ($order->getAllVisibleItems() as $item) { + $quantity = $item->getQtyOrdered() * 1; + $format = fmod($quantity, 1) !== 0.00 ? '%.2f' : '%d'; $result[] = sprintf( "ga('ec:addProduct', { 'id': '%s', 'name': '%s', - 'price': '%s', - 'quantity': %s + 'price': %.2f, + 'quantity': $format });", $this->escapeJsQuote($item->getSku()), $this->escapeJsQuote($item->getName()), - $item->getPrice(), - $item->getQtyOrdered() + (float)$item->getPrice(), + $quantity ); } @@ -138,15 +142,15 @@ public function getOrdersTrackingCode() "ga('ec:setAction', 'purchase', { 'id': '%s', 'affiliation': '%s', - 'revenue': '%s', - 'tax': '%s', - 'shipping': '%s' + 'revenue': %.2f, + 'tax': %.2f, + 'shipping': %.2f });", $order->getIncrementId(), $this->escapeJsQuote($this->_storeManager->getStore()->getFrontendName()), - $order->getGrandTotal(), - $order->getTaxAmount(), - $order->getShippingAmount() + (float)$order->getGrandTotal(), + (float)$order->getTaxAmount(), + (float)$order->getShippingAmount(), ); $result[] = "ga('send', 'pageview');"; @@ -232,19 +236,20 @@ public function getOrdersTrackingData() foreach ($collection as $order) { foreach ($order->getAllVisibleItems() as $item) { + $quantity = $item->getQtyOrdered() * 1; $result['products'][] = [ 'id' => $this->escapeJsQuote($item->getSku()), 'name' => $this->escapeJsQuote($item->getName()), - 'price' => $item->getPrice(), - 'quantity' => $item->getQtyOrdered(), + 'price' => (float)$item->getPrice(), + 'quantity' => $quantity, ]; } $result['orders'][] = [ 'id' => $order->getIncrementId(), 'affiliation' => $this->escapeJsQuote($this->_storeManager->getStore()->getFrontendName()), - 'revenue' => $order->getGrandTotal(), - 'tax' => $order->getTaxAmount(), - 'shipping' => $order->getShippingAmount(), + 'revenue' => (float)$order->getGrandTotal(), + 'tax' => (float)$order->getTaxAmount(), + 'shipping' => (float)$order->getShippingAmount(), ]; $result['currency'] = $order->getOrderCurrencyCode(); }