spree_analytics_trackers 1.1.0 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/.travis.yml +30 -36
  4. data/Appraisals +3 -16
  5. data/LICENSE +1 -1
  6. data/README.md +7 -3
  7. data/app/assets/javascripts/spree/frontend/add_to_cart_analytics.js +46 -0
  8. data/app/controllers/spree_analytics_trackers/store_controller_decorator.rb +6 -3
  9. data/app/helpers/spree/trackers_helper.rb +58 -20
  10. data/app/overrides/add_cart_viewed_to_orders_edit.rb +1 -1
  11. data/app/overrides/add_checkout_step_viewed_to_checkout_edit.rb +11 -3
  12. data/app/overrides/add_google_analytics_page_view_to_spree_application.rb +18 -0
  13. data/app/overrides/add_google_analytics_to_spree_application.rb +11 -3
  14. data/app/overrides/add_google_purchase_to_orders_show.rb +1 -1
  15. data/app/overrides/add_product_list_filtered_to_taxons_show.rb +1 -1
  16. data/app/overrides/add_product_list_viewed_to_products_list.rb +1 -1
  17. data/app/overrides/add_product_viewed_to_products_show.rb +2 -2
  18. data/app/overrides/add_products_searched_to_products_list.rb +2 -2
  19. data/app/overrides/add_segment_initializer_to_layout.rb +10 -2
  20. data/app/overrides/add_segment_page_viewed_to_layout.rb +18 -0
  21. data/app/presenters/spree_analytics_trackers/base_presenter.rb +14 -0
  22. data/app/presenters/spree_analytics_trackers/segment/order_presenter.rb +32 -0
  23. data/app/presenters/spree_analytics_trackers/segment/product_presenter.rb +40 -0
  24. data/app/views/spree/shared/trackers/google_analytics/_checkout_step_viewed.js.erb +21 -0
  25. data/app/views/spree/shared/trackers/google_analytics/_initializer.js.erb +11 -0
  26. data/app/views/spree/shared/trackers/google_analytics/_page_viewed.js.erb +13 -0
  27. data/app/views/spree/shared/trackers/google_analytics/_purchase.js.erb +19 -0
  28. data/app/views/spree/shared/trackers/segment/_cart_viewed.js.erb +21 -21
  29. data/app/views/spree/shared/trackers/segment/_checkout_step_viewed.js.erb +14 -12
  30. data/app/views/spree/shared/trackers/segment/_initializer.js.erb +1 -2
  31. data/app/views/spree/shared/trackers/segment/_order_complete.js.erb +3 -43
  32. data/app/views/spree/shared/trackers/segment/_page_viewed.js.erb +7 -0
  33. data/app/views/spree/shared/trackers/segment/_product_list_filtered.js.erb +7 -18
  34. data/app/views/spree/shared/trackers/segment/_product_list_viewed.js.erb +16 -21
  35. data/app/views/spree/shared/trackers/segment/_product_viewed.js.erb +10 -6
  36. data/app/views/spree/shared/trackers/segment/_products_searched.js.erb +1 -1
  37. data/config/locales/en.yml +0 -2
  38. data/config/locales/zh-TW.yml +19 -0
  39. data/gemfiles/{spree_3_5.gemfile → spree_4_1.gemfile} +2 -2
  40. data/gemfiles/spree_master.gemfile +0 -1
  41. data/lib/generators/spree_analytics_trackers/install/install_generator.rb +7 -0
  42. data/lib/spree_analytics_trackers.rb +1 -0
  43. data/lib/spree_analytics_trackers/version.rb +4 -3
  44. data/spec/features/admin/configuration/analytics_tracker_spec.rb +3 -1
  45. data/spec/features/products_spec.rb +315 -0
  46. data/spec/fixtures/thinking-cat.jpg +0 -0
  47. data/spec/presenters/spree_analytics_trackers/segment/order_presenter_spec.rb +34 -0
  48. data/spec/spec_helper.rb +7 -82
  49. data/spec/support/custom_products.rb +26 -0
  50. data/spree_analytics_trackers.gemspec +3 -17
  51. metadata +36 -220
  52. data/app/overrides/add_google_checkout_to_checkout_edit.rb +0 -9
  53. data/app/overrides/add_product_added_to_orders_edit.rb +0 -10
  54. data/app/views/spree/shared/_google_add_items.html.erb +0 -13
  55. data/app/views/spree/shared/_google_analytics.html.erb +0 -18
  56. data/app/views/spree/shared/_google_checkout.html.erb +0 -14
  57. data/app/views/spree/shared/_google_purchase.html.erb +0 -19
  58. data/app/views/spree/shared/trackers/segment/_product_added.js.erb +0 -9
  59. data/gemfiles/spree_3_7.gemfile +0 -10
  60. data/gemfiles/spree_4_0.gemfile +0 -9
@@ -1,9 +0,0 @@
1
- if Gem.loaded_specs['spree_core'].version >= Gem::Version.create('3.5.0')
2
- Deface::Override.new(
3
- virtual_path: 'spree/checkout/edit',
4
- name: 'add_google_checkout_to_checkout_edit',
5
- insert_before: "#checkout",
6
- partial: 'spree/shared/google_checkout',
7
- original: '1bc9409097210501fee61bc448df937682546308'
8
- )
9
- end
@@ -1,10 +0,0 @@
1
- spree_version = Gem.loaded_specs['spree_core'].version
2
- unless spree_version >= Gem::Version.create('3.4.0') && spree_version < Gem::Version.create('3.5.0')
3
- Deface::Override.new(
4
- virtual_path: 'spree/orders/edit',
5
- name: 'add_product_added_to_orders_edit',
6
- insert_top: "[data-hook='cart_container']",
7
- partial: 'spree/shared/trackers/segment/product_added.js',
8
- original: '75a9171ce7647353a00bdfa178b131872e7f9bdc'
9
- )
10
- end
@@ -1,13 +0,0 @@
1
- if (typeof ga !== 'undefined') {
2
- <% @order.line_items.each do |line_item| %>
3
- ga('ec:addProduct', { // Provide product details in a productFieldObject.
4
- 'id': '<%= j (line_item.sku.present? ? line_item.sku : line_item.variant_id.to_s) %>', // Product ID (string).
5
- 'name': '<%= j line_item.name %>', // Product name (string).
6
- 'category': '<%= j line_item.category.try(:name) %>', // Product category (string).
7
- 'brand': '<%= j line_item.brand.try(:name) %>', // Product brand (string).
8
- 'variant': '<%= j line_item.options_text %>', // Product variant (string).
9
- 'price': '<%= line_item.price %>',
10
- 'quantity': <%= line_item.quantity %>
11
- });
12
- <% end %>
13
- }
@@ -1,18 +0,0 @@
1
- <% if tracker = Spree::Tracker.current(:google_analytics) %>
2
- <script>
3
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
4
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
5
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
6
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
7
-
8
- <% if user_analytics_id = try_spree_current_user.try(:analytics_id) %>
9
- ga('create', { 'trackingId': '<%= tracker.analytics_id %>', 'cookieDomain': 'auto', 'userId': '<%= user_analytics_id %>' });
10
- <% else %>
11
- ga('create', '<%= tracker.analytics_id %>', 'auto');
12
- <% end %>
13
-
14
- ga('require', 'displayfeatures');
15
- <%= yield :google_analytics %>
16
- ga('send', 'pageview');
17
- </script>
18
- <% end %>
@@ -1,14 +0,0 @@
1
- <%# more info: https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce %>
2
- <script>
3
- if (typeof ga !== 'undefined') {
4
- ga('require', 'ec');
5
- ga('set', '&cu', '<%= current_currency %>');
6
-
7
- <%= render partial: 'spree/shared/google_add_items', locals: { order: @order } %>
8
-
9
- // Add the step number and additional info about the checkout to the action.
10
- ga('ec:setAction','checkout', {
11
- 'step': <%= (@order.checkout_steps.index(@order.state) + 1) %>
12
- });
13
- }
14
- </script>
@@ -1,19 +0,0 @@
1
- <% if order_just_completed?(@order) %>
2
- <script>
3
- <%# more info: https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce %>
4
- if (typeof ga !== 'undefined') {
5
- ga('require', 'ec');
6
- ga('set', '&cu', '<%= current_currency %>');
7
-
8
- <%= render partial: 'spree/shared/google_add_items', locals: { order: @order } %>
9
-
10
- ga('ec:setAction', 'purchase', { // Transaction details are provided in an actionFieldObject.
11
- 'id': '<%= j @order.number %>', // Transaction ID. Required.
12
- 'affiliation': '<%= current_store.name %>', // Affiliation (string).
13
- 'revenue': '<%= @order.total %>', // Revenue (currency).
14
- 'tax': '<%= @order.tax_total %>', // Tax.
15
- 'shipping': '<%= @order.ship_total %>' // Shipping.
16
- });
17
- }
18
- </script>
19
- <% end %>
@@ -1,9 +0,0 @@
1
- <% if @variant %>
2
- <script>
3
- if (typeof analytics !== 'undefined') {
4
- analytics.track('Product Added', <%= product_for_segment(@variant.product, cart_id: @order.number) %>);
5
- analytics.page('Product Added', <%= product_for_segment(@variant.product, cart_id: @order.number) %>);
6
-
7
- }
8
- </script>
9
- <% end %>
@@ -1,10 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "spree", "~> 3.7.0"
6
- gem "spree_auth_devise", "~> 3.5.0"
7
- gem "rails-controller-testing"
8
- gem "sass-rails"
9
-
10
- gemspec path: "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "spree", "~> 4.0.0.beta"
6
- gem "spree_auth_devise", "~> 4.0.0.rc2"
7
- gem "rails-controller-testing"
8
-
9
- gemspec path: "../"