spree_admin_insights 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +54 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE +26 -0
  5. data/README.md +96 -0
  6. data/Rakefile +21 -0
  7. data/app/assets/javascripts/spree/backend/jquery.tablesorter.min.js +4 -0
  8. data/app/assets/javascripts/spree/backend/spree_admin_insights.js +2 -0
  9. data/app/assets/javascripts/spree/backend/spree_admin_insights/paginator.js +128 -0
  10. data/app/assets/javascripts/spree/backend/spree_admin_insights/report_loader.js +228 -0
  11. data/app/assets/javascripts/spree/backend/spree_admin_insights/searcher.js +103 -0
  12. data/app/assets/javascripts/spree/backend/spree_admin_insights/table_sorter.js +47 -0
  13. data/app/assets/javascripts/spree/backend/tmpl.js +87 -0
  14. data/app/assets/javascripts/spree/frontend/spree_admin_insights.js +2 -0
  15. data/app/assets/stylesheets/spree/backend/override_pdf.css +71 -0
  16. data/app/assets/stylesheets/spree/backend/spree_admin_insights.css +40 -0
  17. data/app/assets/stylesheets/spree/frontend/spree_admin_insights.css +4 -0
  18. data/app/controllers/spree/admin/insights_controller.rb +112 -0
  19. data/app/helpers/spree/admin/base_helper_decorator.rb +17 -0
  20. data/app/models/spree/app_configuration_decorator.rb +3 -0
  21. data/app/models/spree/product_decorator.rb +3 -0
  22. data/app/models/spree/promotion_action_decorator.rb +3 -0
  23. data/app/models/spree/return_authorization_decorator.rb +4 -0
  24. data/app/models/spree/user_decorator.rb +3 -0
  25. data/app/overrides/add_insights_to_admin_side_menu.html.rb +5 -0
  26. data/app/reports/spree/best_selling_products_report.rb +42 -0
  27. data/app/reports/spree/cart_additions_report.rb +36 -0
  28. data/app/reports/spree/cart_removals_report.rb +36 -0
  29. data/app/reports/spree/cart_updations_report.rb +40 -0
  30. data/app/reports/spree/payment_method_transactions_conversion_rate_report.rb +74 -0
  31. data/app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb +39 -0
  32. data/app/reports/spree/payment_method_transactions_report.rb +60 -0
  33. data/app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb +36 -0
  34. data/app/reports/spree/product_views_report.rb +46 -0
  35. data/app/reports/spree/product_views_to_cart_additions_report.rb +53 -0
  36. data/app/reports/spree/product_views_to_purchases_report.rb +54 -0
  37. data/app/reports/spree/promotional_cost_report.rb +84 -0
  38. data/app/reports/spree/promotional_cost_report/promotional_cost_chart.rb +37 -0
  39. data/app/reports/spree/promotional_cost_report/usage_count_chart.rb +41 -0
  40. data/app/reports/spree/report.rb +131 -0
  41. data/app/reports/spree/report/chart.rb +11 -0
  42. data/app/reports/spree/report/configuration.rb +40 -0
  43. data/app/reports/spree/report/date_slicer.rb +61 -0
  44. data/app/reports/spree/report/observation.rb +49 -0
  45. data/app/reports/spree/report/query_fragments.rb +45 -0
  46. data/app/reports/spree/report/query_time_scale.rb +19 -0
  47. data/app/reports/spree/report/result.rb +100 -0
  48. data/app/reports/spree/report/timed_observation.rb +47 -0
  49. data/app/reports/spree/report/timed_result.rb +48 -0
  50. data/app/reports/spree/returned_products_report.rb +37 -0
  51. data/app/reports/spree/sales_performance_report.rb +107 -0
  52. data/app/reports/spree/sales_performance_report/profit_loss_chart.rb +37 -0
  53. data/app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb +36 -0
  54. data/app/reports/spree/sales_performance_report/sale_cost_price_chart.rb +48 -0
  55. data/app/reports/spree/sales_tax_report.rb +64 -0
  56. data/app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb +39 -0
  57. data/app/reports/spree/shipping_cost_report.rb +89 -0
  58. data/app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb +38 -0
  59. data/app/reports/spree/trending_search_report.rb +50 -0
  60. data/app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb +41 -0
  61. data/app/reports/spree/unique_purchases_report.rb +39 -0
  62. data/app/reports/spree/user_pool_report.rb +66 -0
  63. data/app/reports/spree/user_pool_report/distribution_column_chart.rb +65 -0
  64. data/app/reports/spree/users_not_converted_report.rb +48 -0
  65. data/app/reports/spree/users_who_recently_purchased_report.rb +69 -0
  66. data/app/services/spree/report_generation_service.rb +27 -0
  67. data/app/views/spree/admin/insights/_chart.html.erb +4 -0
  68. data/app/views/spree/admin/insights/download.pdf.erb +27 -0
  69. data/app/views/spree/admin/insights/index.html.erb +91 -0
  70. data/app/views/spree/admin/insights/search/_product_views_search.html.erb +13 -0
  71. data/app/views/spree/admin/insights/search/_search_form.html.erb +39 -0
  72. data/app/views/spree/admin/insights/search/_trending_searches_search.html.erb +13 -0
  73. data/app/views/spree/admin/insights/search/_users_not_converted_search.html.erb +13 -0
  74. data/app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb +13 -0
  75. data/app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb +13 -0
  76. data/app/views/spree/admin/shared/_insights_side_menu.html.erb +16 -0
  77. data/app/views/spree/admin/templates/insights/_paginator.template +9 -0
  78. data/app/views/spree/admin/templates/insights/_search.template +75 -0
  79. data/app/views/spree/admin/templates/insights/_show.template +48 -0
  80. data/app/views/spree/layouts/pdf.html.erb +9 -0
  81. data/bin/rails +7 -0
  82. data/config/initializers/assets.rb +1 -0
  83. data/config/initializers/mime_types.rb +2 -0
  84. data/config/initializers/wicked_pdf.rb +21 -0
  85. data/config/locales/en.yml +169 -0
  86. data/config/locales/pl.yml +164 -0
  87. data/config/routes.rb +6 -0
  88. data/lib/generators/spree_admin_insights/install/install_generator.rb +35 -0
  89. data/lib/generators/spree_admin_insights/install/spree_admin_insights.rb +22 -0
  90. data/lib/spree_admin_insights.rb +14 -0
  91. data/lib/spree_admin_insights/engine.rb +26 -0
  92. data/lib/spree_admin_insights/factories.rb +6 -0
  93. data/spec/spec_helper.rb +93 -0
  94. data/spree_admin_insights.gemspec +41 -0
  95. metadata +420 -0
@@ -0,0 +1,13 @@
1
+ <% content_for :quick_search_form do %>
2
+ <div class="row">
3
+ <div class="col col-md-6">
4
+ <div data-hook="admin_property_index_search" class="form-group">
5
+ <%= label_tag :search_name, Spree.t(:name) %>
6
+ <%= text_field_tag 'search[name]', params.fetch(:search, {})[:name], class: "form-control js-quick-search-target js-filterable" %>
7
+ </div>
8
+ </div>
9
+
10
+ <div class="col-md-6">
11
+ </div>
12
+ </div>
13
+ <% end %>
@@ -0,0 +1,39 @@
1
+ <div data-hook="admin_insights_sidebar">
2
+ <%= form_tag form_action(@report_name, params[:category]), method: :get, id: "filter-search" do %>
3
+ <div class="quick_search_form">
4
+ </div>
5
+ <div class="row">
6
+ <div class="date-range-filter col-md-8">
7
+ <div class="form-group">
8
+ <div class="row no-padding-bottom">
9
+ <div class="col-md-6">
10
+ <%= label_tag :search_start_date, Spree.t(:start_date) %>
11
+ <div class="input-group">
12
+ <%= text_field_tag 'search[start_date]', params.fetch(:search, {})[:start_date], class: 'datepicker datepicker-from form-control js-filterable', placeholder: Spree.t(:start) %>
13
+ <span class="input-group-addon">
14
+ <i class="icon icon-calendar"></i>
15
+ </span>
16
+ </div>
17
+
18
+ </div>
19
+ <div class="col-md-6">
20
+ <%= label_tag :search_end_date, Spree.t(:end_date) %>
21
+ <div class="input-group">
22
+ <%= text_field_tag 'search[end_date]', params.fetch(:search, {})[:end_date], class: 'datepicker datepicker-to form-control js-filterable', placeholder: Spree.t(:stop) %>
23
+ <span class="input-group-addon">
24
+ <i class="icon icon-calendar"></i>
25
+ </span>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </div>
31
+
32
+ </div>
33
+
34
+ <div class="form-actions" data-hook="admin_insights_index_search_buttons">
35
+ <%= button Spree.t(:search), 'search' %>
36
+ </div>
37
+
38
+ <% end %>
39
+ </div>
@@ -0,0 +1,13 @@
1
+ <% content_for :quick_search_form do %>
2
+ <div class="row">
3
+ <div class="col col-md-6">
4
+ <div data-hook="admin_property_index_search" class="form-group">
5
+ <%= label_tag :keywords_cont, Spree.t(:search_keywords) %>
6
+ <%= text_field_tag 'search[keywords_cont]', '', class: "form-control js-quick-search-target js-filterable" %>
7
+ </div>
8
+ </div>
9
+
10
+ <div class="col-md-6">
11
+ </div>
12
+ </div>
13
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <% content_for :quick_search_form do %>
2
+ <div class="row">
3
+ <div class="col col-md-6">
4
+ <div data-hook="admin_insight_index_search" class="form-group">
5
+ <%= label_tag :email_cont, Spree.t(:email) %>
6
+ <%= text_field_tag 'search[email_cont]', '', class: "form-control js-quick-search-target js-filterable" %>
7
+ </div>
8
+ </div>
9
+
10
+ <div class="col-md-6">
11
+ </div>
12
+ </div>
13
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <% content_for :quick_search_form do %>
2
+ <div class="row">
3
+ <div class="col col-md-6">
4
+ <div data-hook="admin_insight_index_search" class="form-group">
5
+ <%= label_tag :email_cont, Spree.t(:email) %>
6
+ <%= text_field_tag 'search[email_cont]', '', class: "form-control js-quick-search-target js-filterable" %>
7
+ </div>
8
+ </div>
9
+
10
+ <div class="col-md-6">
11
+ </div>
12
+ </div>
13
+ <% end %>
@@ -0,0 +1,13 @@
1
+ <% content_for :quick_search_form do %>
2
+ <div class="row">
3
+ <div class="col col-md-6">
4
+ <div data-hook="admin_insight_index_search" class="form-group">
5
+ <%= label_tag :email_cont, Spree.t(:email) %>
6
+ <%= text_field_tag 'search[email_cont]', '', class: "form-control js-quick-search-target js-filterable" %>
7
+ </div>
8
+ </div>
9
+
10
+ <div class="col-md-6">
11
+ </div>
12
+ </div>
13
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <% if can? :admin, Spree::Admin::InsightsController %>
2
+ <ul class="nav nav-sidebar">
3
+ <li class="sidebar-menu-item">
4
+ <a data-toggle="collapse" data-parent="#sidebar" href="#sidebar-insights">
5
+ <span class="icon icon-stats"></span>
6
+ <span class="text"> <%= Spree.t(:tab_heading, scope: :insight) %></span>
7
+ <span class="icon icon-chevron-left pull-right"></span>
8
+ </a>
9
+ <ul data-hook="admin_configurations_sidebar_menu" class="collapse nav nav-pills nav-stacked" id="sidebar-insights">
10
+ <% Spree::ReportGenerationService.reports.each do |_key, _value| %>
11
+ <li class="sidebar-menu-item <%= (selected?(params[:report_category], _key) ? 'selected' : '') %>"><%= link_to Spree.t(_key), admin_insight_path(report_category: _key, id: _value.first) %></li>
12
+ <% end %>
13
+ </ul>
14
+ </li>
15
+ </ul>
16
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <script type="text/x-tmpl" id="paginator-tmpl">
2
+ {% if(o['total_pages'] > 0) { %}
3
+ <ul class="pagination pagination-sm center-block">
4
+ {% for(var i = 0; i <= o['total_pages']; i++) { %}
5
+ <li class="{%= ((o['current_page'] == i) ? 'active' : '') %}"><a href="{%= o['url'] %}&page={%= i %}" class="pagination-link">{%= i+1 %}</a></li>
6
+ {% } %}
7
+ </ul>
8
+ {% } %}
9
+ </script>
@@ -0,0 +1,75 @@
1
+ <script type="text/x-tmpl" id="search-tmpl">
2
+ <div data-hook="admin_insights_sidebar">
3
+ <form id="filter-search" action="{%= o['url'] %}" accept-charset="UTF-8" method="get">
4
+ <div class="quick_search_form">
5
+ </div>
6
+
7
+ {% if(o['search_attributes']['name']) { %}
8
+ <div class="row">
9
+ <div class="col col-md-6">
10
+ <div data-hook="admin_property_index_search" class="form-group">
11
+ <label for="search_name">{%= o['search_attributes']['name'] %}</label>
12
+ <input type="text" name="search[name]" id="search_name" class="form-control js-quick-search-target js-filterable" placeholder="Name">
13
+ </div>
14
+ </div>
15
+ </div>
16
+ {% } %}
17
+
18
+ {% if(o['search_attributes']['email_cont']) { %}
19
+ <div class="row">
20
+ <div class="col col-md-6">
21
+ <div data-hook="admin_property_index_search" class="form-group">
22
+ <label for="search_email_cont">{%= o['search_attributes']['email_cont'] %}</label>
23
+ <input type="text" name="search[email_cont]" id="search_email_cont" class="form-control js-quick-search-target js-filterable" placeholder="Email">
24
+ </div>
25
+ </div>
26
+ </div>
27
+ {% } %}
28
+
29
+ {% if(o['search_attributes']['keywords_cont']) { %}
30
+ <div class="row">
31
+ <div class="col col-md-6">
32
+ <div data-hook="admin_property_index_search" class="form-group">
33
+ <label for="search_keywords_cont">{%= o['search_attributes']['keywords_cont'] %}</label>
34
+ <input type="text" name="search[keywords_cont]" id="search_keywords_cont" class="form-control js-quick-search-target js-filterable" placeholder="Keyword">
35
+ </div>
36
+ </div>
37
+ </div>
38
+ {% } %}
39
+
40
+ <div class="row">
41
+ <div class="date-range-filter col-md-8">
42
+ <div class="form-group">
43
+ <div class="row no-padding-bottom">
44
+ <div class="col-md-6">
45
+ <label for="search_start_date">{%= o['search_attributes']['start_date'] %}</label>
46
+ <div class="input-group">
47
+ <input type="text" name="search[start_date]" id="search_start_date" class="datepicker datepicker-from form-control js-filterable" placeholder="Start">
48
+ <span class="input-group-addon">
49
+ <i class="icon icon-calendar"></i>
50
+ </span>
51
+ </div>
52
+
53
+ </div>
54
+ <div class="col-md-6">
55
+ <label for="search_end_date">{%= o['search_attributes']['end_date'] %}</label>
56
+ <div class="input-group">
57
+ <input type="text" name="search[end_date]" id="search_end_date" class="datepicker datepicker-to form-control js-filterable" placeholder="Stop">
58
+ <span class="input-group-addon">
59
+ <i class="icon icon-calendar"></i>
60
+ </span>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+
67
+ </div>
68
+
69
+ <div class="form-actions" data-hook="admin_insights_index_search_buttons">
70
+ <button name="button" type="submit" class="btn btn-primary "><span class="icon icon-search"></span> Search</button>
71
+ </div>
72
+
73
+ </form>
74
+ </div>
75
+ </script>
@@ -0,0 +1,48 @@
1
+ <script type="text/x-tmpl" id="tmpl">
2
+ <table class="table admin-insight table-hover" id="admin-insight">
3
+ <thead>
4
+ <tr>
5
+ {% for(var i = 0; i < o['headers'].length; i++) { %}
6
+ <th>
7
+ {% if(o['headers'][i].sortable) { %}
8
+ <a href="{%= o['request_path'] %}?report_category={%= o['report_category'] %}&sort%5Battribute%5D={%= o['headers'][i].value %}&sort%5Btype%5D={%= (o['headers'][i].sorted == 'asc') ? 'desc' : 'asc' %}" class="sortable-link {%= o['headers'][i].sorted %}" data-attribute="{%= o['headers'][i].value %}">{%= o['headers'][i].name %}
9
+ </a>
10
+ {% if(o['headers'][i].sorted != undefined) { %}
11
+ <span class="sortable-arrow {%= (o['headers'][i].sorted == 'asc') ? 'fa fa-chevron-down' : 'fa fa-chevron-up' %}"></span>
12
+ {% } %}
13
+ {% } else { %}
14
+ {%= o['headers'][i].name %}
15
+ {% } %}
16
+ </th>
17
+ {% } %}
18
+ </tr>
19
+ </thead>
20
+ <tbody class='table-data'>
21
+ {% for(var i = 0; i < o['stats'].length; i++) { %}
22
+ <tr>
23
+ {% for(var j = 0; j < o['headers'].length; j++) { %}
24
+ <td>
25
+ {% if (o['headers'][j].value == 'profit_loss' || o['headers'][j].value == 'profit_loss_percent') { %}
26
+ {%= Math.abs(o['stats'][i][o['headers'][j].value] || 0) %}
27
+ {% if (o['stats'][i][o['headers'][j].value] > 0) { %}
28
+ <span class="fa fa-chevron-up profit-indicator"></span>
29
+ {% } %}
30
+ {% if (o['stats'][i][o['headers'][j].value] < 0) { %}
31
+ <span class="fa fa-chevron-down loss-indicator"></span>
32
+ {% } %}
33
+ {% } else if (o['headers'][j].type == 'integer') { %}
34
+ {%= o['stats'][i][o['headers'][j].value] || 0 %}
35
+ {% } else { %}
36
+ {% if (o['deeplink']['deeplinked'] && o['deeplink'][o['headers'][j].value]) { %}
37
+ {%# tmpl(o['deeplink'][o['headers'][j].value]['template'], o['stats'][i]) %}
38
+ {% } else { %}
39
+ {%= o['stats'][i][o['headers'][j].value] || '-' %}
40
+ {% } %}
41
+ {% } %}
42
+ </td>
43
+ {% } %}
44
+ </tr>
45
+ {% } %}
46
+ </tbody>
47
+ </table>
48
+ </script>
@@ -0,0 +1,9 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <%= wicked_pdf_stylesheet_link_tag "spree/backend/override_pdf" -%>
5
+ </head>
6
+ <body>
7
+ <%= yield %>
8
+ </body>
9
+ </html>
@@ -0,0 +1,7 @@
1
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
2
+
3
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
4
+ ENGINE_PATH = File.expand_path('../../lib/spree_admin_insights/engine', __FILE__)
5
+
6
+ require 'rails/all'
7
+ require 'rails/engine/commands'
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.precompile += %w( spree/backend/spree_admin_insights.js )
@@ -0,0 +1,2 @@
1
+ Mime::Type.register "application/xls", :xls
2
+ # Mime::Type.register "application/pdf", :pdf
@@ -0,0 +1,21 @@
1
+ # WickedPDF Global Configuration
2
+ #
3
+ # Use this to set up shared configuration options for your entire application.
4
+ # Any of the configuration options shown here can also be applied to single
5
+ # models by passing arguments to the `render :pdf` call.
6
+ #
7
+ # To learn more, check out the README:
8
+ #
9
+ # https://github.com/mileszs/wicked_pdf/blob/master/README.md
10
+
11
+ WickedPdf.config = {
12
+ # Path to the wkhtmltopdf executable: This usually isn't needed if using
13
+ # one of the wkhtmltopdf-binary family of gems.
14
+ # exe_path: '/usr/local/bin/wkhtmltopdf',
15
+ # or
16
+ # exe_path: Gem.bin_path('wkhtmltopdf-binary', 'wkhtmltopdf')
17
+
18
+ # Layout file to be used for all PDFs
19
+ # (but can be overridden in `render :pdf` calls)
20
+ # layout: 'pdf.html',
21
+ }
@@ -0,0 +1,169 @@
1
+ en:
2
+ spree:
3
+ admin:
4
+ day_name: Day
5
+ hour_name: Hour
6
+ month_name: Month
7
+ year: Year
8
+ finance_analysis: Finance Analysis
9
+ product_analysis: Product Analysis
10
+ promotion_analysis: Promotion Analysis
11
+ trending_search_analysis: Trending Search Analysis
12
+ user_analysis: User Analysis
13
+ user_pool:
14
+ new_sign_ups: New users
15
+ active_users: Active Users(Registered)
16
+ guest_users: Guests
17
+ insights: Insights
18
+ insight:
19
+ heading: 'Insights: %{type}'
20
+ tab_heading: Insights
21
+ not_found: Report not found.
22
+ product_views:
23
+ title: Product Show Page Views
24
+ description: To fetch the number of times Product Show page is viewed by the Customers.
25
+ product_name: Product
26
+ views: Total Views
27
+ users: Users(Unique)
28
+ guest_sessions: Guest Sessions
29
+ cart_additions:
30
+ title: Product Add to cart
31
+ additions: Additions
32
+ description: Will project the data about how many times product has been added to the cart.
33
+ product_name: Product
34
+ quantity_change: Cart Addition(Qty)
35
+ sku: Variant
36
+ cart_removals:
37
+ title: Product Removed from cart
38
+ description: Will project the data about how many time product has been removed from cart.
39
+ product_name: Product
40
+ quantity_change: Cart Removal(Qty)
41
+ removals: Removals
42
+ sku: Variant
43
+ cart_updations:
44
+ title: Product Updation
45
+ description: Will project the data about how many times product has been updated from the cart.
46
+ product_name: Product
47
+ quantity_decrease: Quantity Decreased(From Cart)
48
+ quantity_increase: Quantity Increased(From Cart)
49
+ removals: Quantity Removed(From Cart)
50
+ sku: Variant
51
+ updations: Total Updation Requests
52
+ product_views_to_cart_additions:
53
+ title: Product 'Views' To 'Cart Additions'
54
+ description: Ratio of number of views (on product show page) to number of times product has been added to the cart after view.
55
+ cart_additions: Conversion to cart (product qty.)
56
+ product_name: Product
57
+ views: Show page views
58
+ cart_to_view_ratio: Cart To View Ratio
59
+ trending_search:
60
+ title: Trending Searches
61
+ description: You can view/search list of keywords which have been searched by customers.
62
+ searched_term: Searched Term
63
+ occurrences: Occurrences
64
+ users_not_converted:
65
+ title: Users Not Converted
66
+ description: Information about number of registered users who haven’t purchased any product after registration.
67
+ signup_date: Signup At
68
+ user_email: Email
69
+ users_who_recently_purchased:
70
+ title: Users who purchased recently
71
+ description: Number of users who frequently purchased products
72
+ last_purchase_date: Last Purchase At
73
+ last_purchased_order_number: Last Purchased Order
74
+ purchase_count: Purchased Count
75
+ user_email: Email
76
+ users_who_have_not_recently_purchased:
77
+ title: Users who didn't purchase recently
78
+ description: Number of users who have not purchased anything since a particular time period
79
+ last_purchase_date: Last Purchase At
80
+ last_purchased_order_number: Last Purchased Order
81
+ user_email: Email
82
+ user_pool:
83
+ title: User Pool
84
+ description: To view monthly stats about type of users who visited site
85
+ months_name: Month
86
+ guest_users: Guests
87
+ active_users: Active Users(Registered)
88
+ new_sign_ups: New Users
89
+ payment_method_transactions:
90
+ title: Payment Method Transactions Count
91
+ description: Transactions from different payment methods
92
+ payment_method_name: Payment Method
93
+ payment_amount: Transaction Amount
94
+ months_name: Month
95
+ payment_method_transactions_conversion_rate:
96
+ payment_method_name: Payment Method
97
+ title: Payment Method Transaction Conversion Rate
98
+ description: Success/Failure rate of different payment methods
99
+ months_name: Month
100
+ payment_state: Payment State
101
+ count: Count
102
+ promotional_cost:
103
+ title: Promotional Cost
104
+ description: Total money invested on a particular promotion - Admin will view total money invested, total revenue and profit from a particular promotion.
105
+ promotion_code: Code
106
+ promotion_discount: Discount
107
+ promotion_name: Promotion
108
+ promotion_start_date: Start Date
109
+ promotion_end_date: End Date
110
+ usage_count: Usage Count
111
+ months_name: Month
112
+ annual_promotional_cost:
113
+ title: Annual Promotional Cost
114
+ description: Total money invested on a particular promotion - Admin will view total money invested, total revenue and profit from a particular promotion.
115
+ promotion_discount: Discount
116
+ promotion_name: Promotion
117
+ usage_count: Usage Count
118
+ sales_performance:
119
+ title: Sales Performance
120
+ description: Info about revenue, tax, shipment total and return amount.
121
+ adjustment_total: Adjustment Total
122
+ cost_price: Cost Price
123
+ months_name: Month
124
+ profit_loss: Profit/Loss
125
+ profit_loss_percent: Profit/Loss %
126
+ refund_amount: Refund Amount
127
+ revenue: Revenue
128
+ sale_price: Sale Price
129
+ shipping_charges: Shipping Charges
130
+ tax: Tax
131
+ promotion_discount: Promotional Discounts
132
+ unique_purchases:
133
+ title: Unique Purchases
134
+ description: Will project the data about how many unique users have purchased a particular product.
135
+ product_name: Product
136
+ sku: Variant
137
+ sold_count: Sold Count
138
+ users: Users
139
+ best_selling_products:
140
+ title: Best Selling Products
141
+ description: Best/least Selling Products as per maximum quantities purchased.
142
+ product_name: Product
143
+ sku: Variant
144
+ sold_count: Sold Quantity
145
+ product_views_to_purchases:
146
+ title: Product 'Views' To 'Purchases'
147
+ description: Ratio of number of views (on product show page) to number of times product has been purchased after view.
148
+ product_name: Product
149
+ purchases: Purchases
150
+ views: Views
151
+ purchase_to_view_ratio: Purchase To View Ratio
152
+ returned_products:
153
+ title: Product Returned
154
+ description: Number of products returned
155
+ product_name: Product
156
+ return_count: Returned Count
157
+ sku: Variant
158
+ shipping_cost:
159
+ title: Shipping Cost
160
+ name: Shipping Method Name
161
+ months_name: Month
162
+ shipping_charge: Shipping Charge
163
+ revenue: Revenue
164
+ shipping_cost_percentage: Shipping Cost %
165
+ sales_tax:
166
+ title: Sales Tax
167
+ months_name: Month
168
+ zone_name: Zone
169
+ sales_tax: Sales Tax