solidus_admin_insights 2.1.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 +2 -0
  4. data/LICENSE +26 -0
  5. data/README.md +71 -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/solidus_admin_insights.js +2 -0
  9. data/app/assets/javascripts/spree/backend/solidus_admin_insights/paginator.js +128 -0
  10. data/app/assets/javascripts/spree/backend/solidus_admin_insights/report_loader.js +265 -0
  11. data/app/assets/javascripts/spree/backend/solidus_admin_insights/searcher.js +72 -0
  12. data/app/assets/javascripts/spree/backend/solidus_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/solidus_admin_insights.js +2 -0
  15. data/app/assets/stylesheets/spree/backend/override_pdf.css +71 -0
  16. data/app/assets/stylesheets/spree/backend/solidus_admin_insights.css +132 -0
  17. data/app/assets/stylesheets/spree/frontend/solidus_admin_insights.css +4 -0
  18. data/app/controllers/spree/admin/insights_controller.rb +103 -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/permissions/spree/permission_sets/insight_display.rb +9 -0
  25. data/app/reports/spree/best_selling_products_report.rb +42 -0
  26. data/app/reports/spree/cart_additions_report.rb +36 -0
  27. data/app/reports/spree/cart_removals_report.rb +36 -0
  28. data/app/reports/spree/cart_updations_report.rb +40 -0
  29. data/app/reports/spree/payment_method_transactions_conversion_rate_report.rb +74 -0
  30. data/app/reports/spree/payment_method_transactions_conversion_rate_report/payment_method_state_distribution_chart.rb +39 -0
  31. data/app/reports/spree/payment_method_transactions_report.rb +60 -0
  32. data/app/reports/spree/payment_method_transactions_report/payment_method_revenue_distribution_chart.rb +36 -0
  33. data/app/reports/spree/product_views_report.rb +46 -0
  34. data/app/reports/spree/product_views_to_cart_additions_report.rb +53 -0
  35. data/app/reports/spree/product_views_to_purchases_report.rb +54 -0
  36. data/app/reports/spree/promotional_cost_report.rb +84 -0
  37. data/app/reports/spree/promotional_cost_report/promotional_cost_chart.rb +37 -0
  38. data/app/reports/spree/promotional_cost_report/usage_count_chart.rb +41 -0
  39. data/app/reports/spree/report.rb +131 -0
  40. data/app/reports/spree/report/chart.rb +11 -0
  41. data/app/reports/spree/report/configuration.rb +40 -0
  42. data/app/reports/spree/report/date_slicer.rb +61 -0
  43. data/app/reports/spree/report/observation.rb +49 -0
  44. data/app/reports/spree/report/query_fragments.rb +45 -0
  45. data/app/reports/spree/report/query_time_scale.rb +19 -0
  46. data/app/reports/spree/report/result.rb +100 -0
  47. data/app/reports/spree/report/timed_observation.rb +47 -0
  48. data/app/reports/spree/report/timed_result.rb +48 -0
  49. data/app/reports/spree/returned_products_report.rb +37 -0
  50. data/app/reports/spree/sales_performance_report.rb +107 -0
  51. data/app/reports/spree/sales_performance_report/profit_loss_chart.rb +37 -0
  52. data/app/reports/spree/sales_performance_report/profit_loss_percent_chart.rb +36 -0
  53. data/app/reports/spree/sales_performance_report/sale_cost_price_chart.rb +48 -0
  54. data/app/reports/spree/sales_tax_report.rb +64 -0
  55. data/app/reports/spree/sales_tax_report/monthly_sales_tax_comparison_chart.rb +39 -0
  56. data/app/reports/spree/shipping_cost_report.rb +89 -0
  57. data/app/reports/spree/shipping_cost_report/shipping_cost_distribution_chart.rb +38 -0
  58. data/app/reports/spree/trending_search_report.rb +50 -0
  59. data/app/reports/spree/trending_search_report/frequency_distribution_pie_chart.rb +41 -0
  60. data/app/reports/spree/unique_purchases_report.rb +39 -0
  61. data/app/reports/spree/user_pool_report.rb +66 -0
  62. data/app/reports/spree/user_pool_report/distribution_column_chart.rb +65 -0
  63. data/app/reports/spree/users_not_converted_report.rb +48 -0
  64. data/app/reports/spree/users_who_recently_purchased_report.rb +69 -0
  65. data/app/services/spree/report_generation_service.rb +27 -0
  66. data/app/views/spree/admin/insights/_chart.html.erb +4 -0
  67. data/app/views/spree/admin/insights/download.pdf.erb +27 -0
  68. data/app/views/spree/admin/insights/index.html.erb +82 -0
  69. data/app/views/spree/admin/insights/search/_product_views_search.html.erb +13 -0
  70. data/app/views/spree/admin/insights/search/_search_form.html.erb +39 -0
  71. data/app/views/spree/admin/insights/search/_trending_searches_search.html.erb +13 -0
  72. data/app/views/spree/admin/insights/search/_users_not_converted_search.html.erb +13 -0
  73. data/app/views/spree/admin/insights/search/_users_who_have_not_purchased_recently_search.html.erb +13 -0
  74. data/app/views/spree/admin/insights/search/_users_who_recently_purchased_search.html.erb +13 -0
  75. data/app/views/spree/admin/shared/_insights_side_menu.html.erb +5 -0
  76. data/app/views/spree/admin/shared/sub_menu/_insight.html.erb +7 -0
  77. data/app/views/spree/admin/templates/insights/_paginator.template +11 -0
  78. data/app/views/spree/admin/templates/insights/_search.template +76 -0
  79. data/app/views/spree/admin/templates/insights/_show.template +49 -0
  80. data/app/views/spree/layouts/pdf.html.erb +9 -0
  81. data/bin/rails +7 -0
  82. data/config/initializers/add_to_sidebar.rb +14 -0
  83. data/config/initializers/assets.rb +1 -0
  84. data/config/initializers/mime_types.rb +2 -0
  85. data/config/initializers/wicked_pdf.rb +21 -0
  86. data/config/locales/en.yml +167 -0
  87. data/config/routes.rb +6 -0
  88. data/lib/generators/solidus_admin_insights/install/install_generator.rb +36 -0
  89. data/lib/generators/solidus_admin_insights/install/solidus_admin_insights.rb +22 -0
  90. data/lib/solidus_admin_insights.rb +14 -0
  91. data/lib/solidus_admin_insights/engine.rb +27 -0
  92. data/lib/solidus_admin_insights/factories.rb +6 -0
  93. data/solidus_admin_insights.gemspec +42 -0
  94. data/spec/spec_helper.rb +93 -0
  95. metadata +419 -0
@@ -0,0 +1,39 @@
1
+ <div data-hook="admin_insights_sidebar">
2
+ <%= form_tag form_action(@report_name, params[:type]), 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="fa fa-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="fa fa-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,5 @@
1
+ <ul class="admin-subnav" data-hook="admin_insight_sub_tabs">
2
+ <% Spree::ReportGenerationService.reports.each do |report_key, report_value|%>
3
+ <%= tab report_key, url: admin_insight_path(report_category: report_key, id: report_value.first) %>
4
+ <% end %>
5
+ </ul>
@@ -0,0 +1,7 @@
1
+ <% content_for :sub_menu do %>
2
+ <ul id="sidebar-insights" class="inline-menu" data-hook="admin_insight_sub_tabs">
3
+ <% Spree::ReportGenerationService.reports.each do |_key, _value| %>
4
+ <%= tab _key, url: admin_insight_path(report_category: _key, id: _value.first) %>
5
+ <% end %>
6
+ <ul>
7
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <script type="text/x-tmpl" id="paginator-tmpl">
2
+ {% if(o['total_pages'] > 0) { %}
3
+ <nav>
4
+ <ul class="pagination pagination-sm center-block">
5
+ {% for(var i = 0; i <= o['total_pages']; i++) { %}
6
+ <li class="{%= ((o['current_page'] == i) ? 'active' : '') %} page-item"><a href="{%= o['url'] %}&page={%= i %}" class="page-link">{%= i+1 %}</a></li>
7
+ {% } %}
8
+ </ul>
9
+ </nav>
10
+ {% } %}
11
+ </script>
@@ -0,0 +1,76 @@
1
+ <script type="text/x-tmpl" id="search-tmpl">
2
+
3
+ <fieldset>
4
+ <legend align="center">Search</legend>
5
+ <div data-hook="admin_insights_sidebar" class="container">
6
+ <form id="filter-search" action="{%= o['url'] %}" accept-charset="UTF-8" method="get">
7
+
8
+ <div class="quick_search_form">
9
+ </div>
10
+
11
+ <div class="row">
12
+ {% if(o['search_attributes']['name']) { %}
13
+ <div class="one-third column">
14
+ <div data-hook="admin_property_index_search">
15
+ <label for="search_name">{%= o['search_attributes']['name'] %}</label>
16
+ <input type="text" name="search[name]" id="search_name" class="form-control js-quick-search-target js-filterable full-width" placeholder="Name">
17
+ </div>
18
+ </div>
19
+ {% } %}
20
+
21
+ {% if(o['search_attributes']['email_cont']) { %}
22
+ <div class="one-third column">
23
+ <div data-hook="admin_property_index_search">
24
+ <label for="search_email_cont">{%= o['search_attributes']['email_cont'] %}</label>
25
+ <input type="text" name="search[email_cont]" id="search_email_cont" class="form-control js-quick-search-target js-filterable full-width" placeholder="Email">
26
+ </div>
27
+ </div>
28
+ {% } %}
29
+
30
+ {% if(o['search_attributes']['keywords_cont']) { %}
31
+ <div class="one-third column">
32
+ <div data-hook="admin_property_index_search">
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 full-width" placeholder="Keyword">
35
+ </div>
36
+ </div>
37
+ {% } %}
38
+
39
+ <div class="row">
40
+ <div class="date-range-filter">
41
+ <div class="form-group">
42
+ <div class="no-padding-bottom">
43
+ <div class="one-third column">
44
+ <label for="search_start_date">{%= o['search_attributes']['start_date'] %}</label>
45
+ <div class="input-group">
46
+ <input type="text" name="search[start_date]" id="search_start_date" class="datepicker datepicker-from form-control js-filterable full-width" placeholder="Start">
47
+ <span class="input-group-addon">
48
+ <i class="fa fa-calendar"></i>
49
+ </span>
50
+ </div>
51
+ </div>
52
+ <div class="one-third column">
53
+ <label for="search_end_date">{%= o['search_attributes']['end_date'] %}</label>
54
+ <div class="input-group">
55
+ <input type="text" name="search[end_date]" id="search_end_date" class="datepicker datepicker-to form-control js-filterable full-width" placeholder="Stop">
56
+ <span class="input-group-addon">
57
+ <i class="fa fa-calendar"></i>
58
+ </span>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ </div>
66
+
67
+ <div class="row">
68
+ <div class="form-actions text-center" data-hook="admin_insights_index_search_buttons">
69
+ <button name="button" type="submit" class="fa fa-search button"><span class="icon icon-search"></span> Search</button>
70
+ </div>
71
+ </div>
72
+ </form>
73
+ </div>
74
+ </fieldset>
75
+
76
+ </script>
@@ -0,0 +1,49 @@
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
+
49
+ </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/solidus_admin_insights/engine', __FILE__)
5
+
6
+ require 'rails/all'
7
+ require 'rails/engine/commands'
@@ -0,0 +1,14 @@
1
+ REPORT_TABS = [:insights, *Spree::ReportGenerationService.reports.keys.collect(&:to_sym)]
2
+
3
+ Spree::Backend::Config.configure do |config|
4
+ config.menu_items << config.class::MenuItem.new(
5
+ REPORT_TABS,
6
+ 'bar-chart',
7
+ condition: ->{ can?(:display, :insights) },
8
+ partial: 'spree/admin/shared/insights_side_menu'
9
+ )
10
+ end
11
+
12
+ Spree::RoleConfiguration.configure do |config|
13
+ config.assign_permissions :admin, [Spree::PermissionSets::InsightDisplay]
14
+ end
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.precompile += %w( spree/backend/solidus_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,167 @@
1
+ en:
2
+ spree:
3
+ admin:
4
+ day_name: Day
5
+ hour_name: Hour
6
+ month_name: Month
7
+ year: Year
8
+ tab:
9
+ insights: Insights
10
+ finance_analysis: Finance Analysis
11
+ product_analysis: Product Analysis
12
+ promotion_analysis: Promotion Analysis
13
+ trending_search_analysis: Trending Search Analysis
14
+ user_analysis: User Analysis
15
+ insights: Insights
16
+ insight:
17
+ heading: 'Insights: %{type}'
18
+ tab_heading: Insights
19
+ not_found: Report not found.
20
+ product_views:
21
+ title: Product Show Page Views
22
+ description: To fetch the number of times Product Show page is viewed by the Customers.
23
+ product_name: Product
24
+ views: Total Views
25
+ users: Users(Unique)
26
+ guest_sessions: Guest Sessions
27
+ cart_additions:
28
+ title: Product Add to cart
29
+ additions: Additions
30
+ description: Will project the data about how many times product has been added to the cart.
31
+ product_name: Product
32
+ quantity_change: Cart Addition(Qty)
33
+ sku: Variant
34
+ cart_removals:
35
+ title: Product Removed from cart
36
+ description: Will project the data about how many time product has been removed from cart.
37
+ product_name: Product
38
+ quantity_change: Cart Removal(Qty)
39
+ removals: Removals
40
+ sku: Variant
41
+ cart_updations:
42
+ title: Product Updation
43
+ description: Will project the data about how many times product has been updated from the cart.
44
+ product_name: Product
45
+ quantity_decrease: Quantity Decreased(From Cart)
46
+ quantity_increase: Quantity Increased(From Cart)
47
+ removals: Quantity Removed(From Cart)
48
+ sku: Variant
49
+ updations: Total Updation Requests
50
+ product_views_to_cart_additions:
51
+ title: Product 'Views' To 'Cart Additions'
52
+ description: Ratio of number of views (on product show page) to number of times product has been added to the cart after view.
53
+ cart_additions: Conversion to cart (product qty.)
54
+ product_name: Product
55
+ views: Show page views
56
+ cart_to_view_ratio: Cart To View Ratio
57
+ trending_search:
58
+ title: Trending Searches
59
+ description: You can view/search list of keywords which have been searched by customers.
60
+ searched_term: Searched Term
61
+ occurrences: Occurrences
62
+ users_not_converted:
63
+ title: Users Not Converted
64
+ description: Information about number of registered users who haven’t purchased any product after registration.
65
+ signup_date: Signup At
66
+ user_email: Email
67
+ users_who_recently_purchased:
68
+ title: Users who purchased recently
69
+ description: Number of users who frequently purchased products
70
+ last_purchase_date: Last Purchase At
71
+ last_purchased_order_number: Last Purchased Order
72
+ purchase_count: Purchased Count
73
+ user_email: Email
74
+ users_who_have_not_recently_purchased:
75
+ title: Users who didn't purchase recently
76
+ description: Number of users who have not purchased anything since a particular time period
77
+ last_purchase_date: Last Purchase At
78
+ last_purchased_order_number: Last Purchased Order
79
+ user_email: Email
80
+ user_pool:
81
+ title: User Pool
82
+ description: To view monthly stats about type of users who visited site
83
+ months_name: Month
84
+ guest_users: Guests
85
+ active_users: Active Users(Registered)
86
+ new_sign_ups: New Users
87
+ payment_method_transactions:
88
+ title: Payment Method Transactions Count
89
+ description: Transactions from different payment methods
90
+ payment_method_name: Payment Method
91
+ payment_amount: Transaction Amount
92
+ months_name: Month
93
+ payment_method_transactions_conversion_rate:
94
+ payment_method_name: Payment Method
95
+ title: Payment Method Transaction Conversion Rate
96
+ description: Success/Failure rate of different payment methods
97
+ months_name: Month
98
+ payment_state: Payment State
99
+ count: Count
100
+ promotional_cost:
101
+ title: Promotional Cost
102
+ description: Total money invested on a particular promotion - Admin will view total money invested, total revenue and profit from a particular promotion.
103
+ promotion_code: Code
104
+ promotion_discount: Discount
105
+ promotion_name: Promotion
106
+ promotion_start_date: Start Date
107
+ promotion_end_date: End Date
108
+ usage_count: Usage Count
109
+ months_name: Month
110
+ annual_promotional_cost:
111
+ title: Annual Promotional Cost
112
+ description: Total money invested on a particular promotion - Admin will view total money invested, total revenue and profit from a particular promotion.
113
+ promotion_discount: Discount
114
+ promotion_name: Promotion
115
+ usage_count: Usage Count
116
+ sales_performance:
117
+ title: Sales Performance
118
+ description: Info about revenue, tax, shipment total and return amount.
119
+ adjustment_total: Adjustment Total
120
+ cost_price: Cost Price
121
+ months_name: Month
122
+ profit_loss: Profit/Loss
123
+ profit_loss_percent: Profit/Loss %
124
+ refund_amount: Refund Amount
125
+ revenue: Revenue
126
+ sale_price: Sale Price
127
+ shipping_charges: Shipping Charges
128
+ tax: Tax
129
+ promotion_discount: Promotional Discounts
130
+ unique_purchases:
131
+ title: Unique Purchases
132
+ description: Will project the data about how many unique users have purchased a particular product.
133
+ product_name: Product
134
+ sku: Variant
135
+ sold_count: Sold Count
136
+ users: Users
137
+ best_selling_products:
138
+ title: Best Selling Products
139
+ description: Best/least Selling Products as per maximum quantities purchased.
140
+ product_name: Product
141
+ sku: Variant
142
+ sold_count: Sold Quantity
143
+ product_views_to_purchases:
144
+ title: Product 'Views' To 'Purchases'
145
+ description: Ratio of number of views (on product show page) to number of times product has been purchased after view.
146
+ product_name: Product
147
+ purchases: Purchases
148
+ views: Views
149
+ purchase_to_view_ratio: Purchase To View Ratio
150
+ returned_products:
151
+ title: Product Returned
152
+ description: Number of products returned
153
+ product_name: Product
154
+ return_count: Returned Count
155
+ sku: Variant
156
+ shipping_cost:
157
+ title: Shipping Cost
158
+ name: Shipping Method Name
159
+ months_name: Month
160
+ shipping_charge: Shipping Charge
161
+ revenue: Revenue
162
+ shipping_cost_percentage: Shipping Cost %
163
+ sales_tax:
164
+ title: Sales Tax
165
+ months_name: Month
166
+ zone_name: Zone
167
+ sales_tax: Sales Tax