spree_admin_insights 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
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