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 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 21 def order_tracking_params { last_ip_address: request.remote_ip, } end |
#track_checkout_completed ⇒ Object
66 67 68 69 70 71 72 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 66 def track_checkout_completed # server-side tracking track_event('order_completed', { order: @order }) # client-side tracking session[:checkout_completed] = true end |
#track_checkout_entered_email ⇒ Object
35 36 37 38 39 40 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 35 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
27 28 29 30 31 32 33 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 27 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
58 59 60 61 62 63 64 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 58 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
49 50 51 52 53 54 55 56 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 49 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
42 43 44 45 46 47 |
# File 'app/helpers/spree/checkout_analytics_helper.rb', line 42 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 |