Great, let me know if this will be helpful or if you need any other help.
@Manish Mittal
Hey Manish,
Thanks for your help and sorry for late reply.
This solution works properly for me only when I added this line in google analytics block. -
Block Name-
Magento\GoogleAnalytics\Block\Ga.php
$result['currency'] = $order->getOrderCurrencyCode();
This line was missing in my block. when I added it then it works. Hence final code for this function looks like as follows.
/** * Return information about order and items for GA tracking. * * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#checkout-options * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#measuring-transactions * @link https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#transaction * * @return array * @since 100.2.0 */ public function getOrdersTrackingData() { $result = []; $orderIds = $this->getOrderIds(); if (empty($orderIds) || !is_array($orderIds)) { return $result; } $collection = $this->_salesOrderCollection->create(); $collection->addFieldToFilter('entity_id', ['in' => $orderIds]); foreach ($collection as $order) { foreach ($order->getAllVisibleItems() as $item) { $result['products'][] = [ 'id' => $this->escapeJs($item->getSku()), 'name' => $this->escapeJs($item->getName()), 'price' => $item->getBasePrice(), 'quantity' => $item->getQtyOrdered(), ]; } $result['orders'][] = [ 'id' => $order->getIncrementId(), 'affiliation' => $this->escapeJs($this->_storeManager->getStore()->getFrontendName()), 'revenue' => $order->getBaseGrandTotal(), 'tax' => $order->getBaseTaxAmount(), 'shipping' => $order->getBaseShippingAmount(), ]; } $result['currency'] = $order->getOrderCurrencyCode(); return $result; }