class ShopifyDashboardPlus::SalesReport
Public Instance Methods
currencies_per_sale()
click to toggle source
# File lib/shopify_dashboard_plus/sales_report.rb, line 61 def currencies_per_sale currencies = Hash.new(0) @orders.each do |order| currencies[order.currency] += 1 if order.attributes['currency'] end currencies end
number_of_sales()
click to toggle source
# File lib/shopify_dashboard_plus/sales_report.rb, line 57 def number_of_sales @orders.length end
sales_per_country()
click to toggle source
# File lib/shopify_dashboard_plus/sales_report.rb, line 10 def sales_per_country sales_per_country = Hash.new(0) @orders.each do |order| sales_per_country[order.billing_address.country] += 1 if order.attributes['billing_address'] end sales_per_country end
sales_per_customer()
click to toggle source
# File lib/shopify_dashboard_plus/sales_report.rb, line 30 def sales_per_customer customer_sales = [] @orders.each do |order| order.line_items.each do |item| customer_name = "#{order.customer.first_name} #{order.customer.last_name} (#{order.customer.email})" customer_sales.push( :name => item.title, :data => [customer_name, item.price.to_f] ) end end hash_to_graph_format(customer_sales) end
sales_per_price_point()
click to toggle source
# File lib/shopify_dashboard_plus/sales_report.rb, line 45 def sales_per_price_point sales_per_price_point = Hash.new(0) @line_items.each do |item| sales_per_price_point[item.price] += 1 end sales_per_price_point.sort_by { |x, _| x.to_f }.to_h rescue {} end
sales_per_product()
click to toggle source
# File lib/shopify_dashboard_plus/sales_report.rb, line 20 def sales_per_product sales_per_product = Hash.new(0) @line_items.each do |item| sales_per_product[item.title] += 1 end sales_per_product end
to_h()
click to toggle source
# File lib/shopify_dashboard_plus/sales_report.rb, line 71 def to_h { :currencies_per_sale => currencies_per_sale, :most_used_currency => currencies_per_sale.sort_by { |_, v| v }.last, :sales_per_country => sales_per_country, :most_sales_per_country => sales_per_country.sort_by { |_, v| v }.last, :sales_per_price => sales_per_price_point, :top_selling_price_point => sales_per_price_point.sort_by { |_, v| v }.last, :sales_per_product => sales_per_product, :top_selling_product => sales_per_product.sort_by { |_, v| v }.last, :sales_per_customer => sales_per_customer, :number_of_sales => number_of_sales } end