Module: Spree::CheckoutAnalyticsHelper
- Included in:
- CheckoutController
- Defined in:
- app/helpers/spree/checkout_analytics_helper.rb
Instance Method Summary collapse
- #clean_analytics_session ⇒ Object
- #clear_checkout_completed_session ⇒ Object
- #coupon_tracking_params ⇒ Object
- #order_tracking_params ⇒ Object
- #track_checkout_completed ⇒ Object
- #track_checkout_entered_email ⇒ Object
- #track_checkout_started ⇒ Object
- #track_checkout_step_completed ⇒ Object
- #track_checkout_step_viewed ⇒ Object
- #track_payment_info_entered ⇒ Object
Instance Method Details
#clean_analytics_session ⇒ Object
11 12 13 14 15 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 11 def clean_analytics_session session.delete(:checkout_started) session.delete(:checkout_step_viewed) session.delete(:checkout_step_completed) end |
#clear_checkout_completed_session ⇒ Object
17 18 19 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 17 def clear_checkout_completed_session session.delete(:checkout_completed) end |
#coupon_tracking_params ⇒ Object
3 4 5 6 7 8 9 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 3 def coupon_tracking_params { order: @order, coupon_code: params[:coupon_code], coupon_handler: @result } end |
#order_tracking_params ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 21 def order_tracking_params tracking_params = { last_ip_address: request.remote_ip, } tracking_params[:ahoy_visit_id] = current_visit.id if @order.respond_to?(:ahoy_visit) && defined?(current_visit) && current_visit&.id tracking_params end |
#track_checkout_completed ⇒ Object
69 70 71 72 73 74 75 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 69 def track_checkout_completed # server-side tracking track_event('checkout_completed', { order: @order }) # client-side tracking session[:checkout_completed] = true end |
#track_checkout_entered_email ⇒ Object
38 39 40 41 42 43 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 38 def track_checkout_entered_email return unless @order.email.present? return unless params.dig(:order, :email).present? track_event('checkout_email_entered', { order: @order, email: @order.email }) end |
#track_checkout_started ⇒ Object
30 31 32 33 34 35 36 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 30 def track_checkout_started # server-side tracking track_event('checkout_started', { order: @order }) # client-side tracking session[:checkout_started] = true end |
#track_checkout_step_completed ⇒ Object
61 62 63 64 65 66 67 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 61 def track_checkout_step_completed # server-side tracking track_event('checkout_step_completed', { order: @order, step: @previous_state }) # client-side tracking session[:checkout_step_completed] = @previous_state # for 3rd party frontend tracking end |
#track_checkout_step_viewed ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 52 def track_checkout_step_viewed # server-side tracking track_event('checkout_step_viewed', { order: @order, step: params[:state] || @order.state }) # client-side tracking trackable_checkout_steps = @order.checkout_steps[0..2] session[:checkout_step_viewed] = true if trackable_checkout_steps.include? @order.state end |
#track_payment_info_entered ⇒ Object
45 46 47 48 49 50 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 45 def track_payment_info_entered return unless @order.payment_method.present? return unless params.dig(:order, :payments_attributes).present? track_event('payment_info_entered', { order: @order }) end |