Sha256: e067ad796ca32c0c84d5b21cbc29b2c7e7450f99eb2fd53cc1f76ed54f018990

Contents?: true

Size: 1.54 KB

Versions: 3

Compression:

Stored size: 1.54 KB

Contents

<%
return if ENV['GOOGLE_ANALYTICS_ID'].present? || ENV['GOOGLE_TAG_MANAGER_ID'].blank?

event_data = {}

if just_purchased
    event_data[:order] = {
        id: order.number,
        revenue: order.total,
        coupon: order.adjustments.promotion.first&.promotion_code&.value,

        affiliation: current_store.name,
        currency: order.currency,
        tax: order.tax_total,
        shipping: order.ship_total
    }

    event_data[:order_contents] = order.line_items.map do |line_item|
        {
          id: line_item.variant.sku,
          name: line_item.variant.name,
          price: line_item.total,
          variant: line_item.variant.options_text,
          quantity: line_item.quantity
        }
    end
end
%>
<script type="text/javascript" data-tag="google-tag-manager">
  window.dataLayer = window.dataLayer || [];

  <% if just_purchased %>
    window.dataLayer.push({
      'ecommerce': {
        'purchase': {
          'actionField': <%== event_data[:order].to_json %>,
          'products': <%== event_data[:order_contents].to_json %>
        }
      }
    });

    window.solidusSeoDataLayer('google-tag-manager', 'purchase');
  <% end %>
</script>
<script>
  (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','<%= ENV['GOOGLE_TAG_MANAGER_ID'] %>');
</script>

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
solidus_seo-1.1.2 app/views/solidus_seo/_google-tag-manager.html.erb
solidus_seo-1.1.1 app/views/solidus_seo/_google-tag-manager.html.erb
solidus_seo-1.1.0 app/views/solidus_seo/_google-tag-manager.html.erb