Module: Workarea::Storefront::AnalyticsHelper
- Included in:
- ContentHelper
- Defined in:
- app/helpers/workarea/storefront/analytics_helper.rb
Instance Method Summary collapse
- #add_to_cart_analytics_data(product) ⇒ Object
- #add_to_cart_confirmation_analytics_data(item) ⇒ Object
- #cart_view_analytics_data(order) ⇒ Object
- #category_view_analytics_data(category) ⇒ Object
- #checkout_addresses_view_analytics_data(order) ⇒ Object
- #checkout_edit_analytics_data(type) ⇒ Object
- #checkout_login_analytics_data ⇒ Object
- #checkout_order_placed_analytics_data(order) ⇒ Object
- #checkout_payment_selected_analytics_data(option) ⇒ Object
- #checkout_payment_view_analytics_data(order) ⇒ Object
- #checkout_shipping_service_selected_analytics_data(option) ⇒ Object
- #checkout_shipping_view_analytics_data(order) ⇒ Object
- #checkout_signup_analytics_data ⇒ Object
- #content_block_analytics_data(block) ⇒ Object
- #email_signup_analytics_data ⇒ Object
- #forgot_password_analytics_data ⇒ Object
- #login_analytics_data ⇒ Object
- #order_analytics_data(order) ⇒ Object
- #order_item_analytics_data(item) ⇒ Object
- #primary_navigation_analytics_data(taxon) ⇒ Object
- #product_analytics_data(product) ⇒ Object (also: #product_impression_data)
- #product_click_analytics_data(product) ⇒ Object
- #product_list_analytics_data(name = nil) ⇒ Object
- #product_view_analytics_data(product) ⇒ Object
- #remove_from_cart_analytics_data(item) ⇒ Object
- #search_results_view_analytics_data(search) ⇒ Object
- #signup_analytics_data ⇒ Object
- #update_cart_item_analytics_data(item) ⇒ Object
- #validation_error_analytics_data(model) ⇒ Object
Instance Method Details
#add_to_cart_analytics_data(product) ⇒ Object
56 57 58 59 60 61 62 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 56 def add_to_cart_analytics_data(product) { event: 'addToCart', domEvent: 'submit', payload: product_analytics_data(product) } end |
#add_to_cart_confirmation_analytics_data(item) ⇒ Object
80 81 82 83 84 85 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 80 def add_to_cart_confirmation_analytics_data(item) { event: 'addToCartConfirmation', payload: order_item_analytics_data(item) } end |
#cart_view_analytics_data(order) ⇒ Object
87 88 89 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 87 def cart_view_analytics_data(order) { event: 'cartView', payload: order_analytics_data(order) } end |
#category_view_analytics_data(category) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 4 def category_view_analytics_data(category) { event: 'categoryView', payload: { id: category.id.to_s, name: category.name, sort: category.sort, page: category.page, filters: category.filters } } end |
#checkout_addresses_view_analytics_data(order) ⇒ Object
91 92 93 94 95 96 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 91 def checkout_addresses_view_analytics_data(order) { event: 'checkoutAddressesView', payload: order_analytics_data(order) } end |
#checkout_edit_analytics_data(type) ⇒ Object
147 148 149 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 147 def checkout_edit_analytics_data(type) { event: 'checkoutEdit', domEvent: 'click', payload: { type: type } } end |
#checkout_login_analytics_data ⇒ Object
139 140 141 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 139 def checkout_login_analytics_data { event: 'checkoutLogin', domEvent: 'click' } end |
#checkout_order_placed_analytics_data(order) ⇒ Object
128 129 130 131 132 133 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 128 def checkout_order_placed_analytics_data(order) { event: 'checkoutOrderPlaced', payload: order_analytics_data(order) } end |
#checkout_payment_selected_analytics_data(option) ⇒ Object
120 121 122 123 124 125 126 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 120 def checkout_payment_selected_analytics_data(option) { event: 'checkoutPaymentSelected', domEvent: 'click', payload: { type: option } } end |
#checkout_payment_view_analytics_data(order) ⇒ Object
113 114 115 116 117 118 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 113 def checkout_payment_view_analytics_data(order) { event: 'checkoutPaymentView', payload: order_analytics_data(order) } end |
#checkout_shipping_service_selected_analytics_data(option) ⇒ Object
105 106 107 108 109 110 111 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 105 def checkout_shipping_service_selected_analytics_data(option) { event: 'checkoutShippingServiceSelected', domEvent: 'change', payload: { name: option.name, price: option.price.to_f } } end |
#checkout_shipping_view_analytics_data(order) ⇒ Object
98 99 100 101 102 103 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 98 def checkout_shipping_view_analytics_data(order) { event: 'checkoutShippingView', payload: order_analytics_data(order) } end |
#checkout_signup_analytics_data ⇒ Object
143 144 145 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 143 def checkout_signup_analytics_data { event: 'checkoutSignup', domEvent: 'submit' } end |
#content_block_analytics_data(block) ⇒ Object
217 218 219 220 221 222 223 224 225 226 227 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 217 def content_block_analytics_data(block) { event: 'contentBlockDisplay', payload: { id: block.id.to_s, type: block.type_id, position: block.position, data: block.data } } end |
#email_signup_analytics_data ⇒ Object
135 136 137 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 135 def email_signup_analytics_data { event: 'emailSignup', domEvent: 'submit' } end |
#forgot_password_analytics_data ⇒ Object
159 160 161 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 159 def forgot_password_analytics_data { event: 'forgotPassword', domEvent: 'submit' } end |
#login_analytics_data ⇒ Object
155 156 157 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 155 def login_analytics_data { event: 'login', domEvent: 'submit' } end |
#order_analytics_data(order) ⇒ Object
167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 167 def order_analytics_data(order) { site_name: Workarea.config.site_name, id: order.id, promo_codes: order.promo_codes.sort, shipping_service: order.shipping_service, shipping_total: order.shipping_total.to_f, tax_total: order.tax_total.to_f, total_price: order.total_price.to_f, tenders: order.respond_to?(:tenders) ? order.tenders.map(&:slug) : [], items: order.items.map { |i| order_item_analytics_data(i) } } end |
#order_item_analytics_data(item) ⇒ Object
181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 181 def order_item_analytics_data(item) { id: item.id.to_s, product_id: item.product_id, product_name: item.product_name, sku: item.sku, options: item.details, price: item.current_unit_price.to_f, quantity: item.quantity, category: item.default_category_name } end |
#primary_navigation_analytics_data(taxon) ⇒ Object
206 207 208 209 210 211 212 213 214 215 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 206 def (taxon) { event: 'primaryNavigationClick', domEvent: 'click', payload: { name: taxon.name, url: storefront_path_for(taxon) } } end |
#product_analytics_data(product) ⇒ Object Also known as: product_impression_data
194 195 196 197 198 199 200 201 202 203 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 194 def product_analytics_data(product) { id: product.id, name: product.name, sku: product.current_sku, sale: product.on_sale?, price: product.sell_min_price.to_f, category: product.default_category.try(:name) } end |
#product_click_analytics_data(product) ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 48 def product_click_analytics_data(product) { event: 'productClick', domEvent: 'click', payload: product_analytics_data(product) } end |
#product_list_analytics_data(name = nil) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 37 def product_list_analytics_data(name = nil) page = params[:page].presence || 1 { event: 'productList', name: name, page: page.to_i, per_page: Workarea.config.per_page } end |
#product_view_analytics_data(product) ⇒ Object
30 31 32 33 34 35 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 30 def product_view_analytics_data(product) { event: 'productView', payload: product_analytics_data(product) } end |
#remove_from_cart_analytics_data(item) ⇒ Object
72 73 74 75 76 77 78 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 72 def remove_from_cart_analytics_data(item) { event: 'removeFromCart', domEvent: 'submit', payload: order_item_analytics_data(item) } end |
#search_results_view_analytics_data(search) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 17 def search_results_view_analytics_data(search) { event: 'searchResultsView', payload: { terms: search.query_string, sort: search.sort.slug, page: search.page, filters: search.respond_to?(:filters) ? search.filters : {}, totalResults: search.total } } end |
#signup_analytics_data ⇒ Object
163 164 165 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 163 def signup_analytics_data { event: 'signup', domEvent: 'submit' } end |
#update_cart_item_analytics_data(item) ⇒ Object
64 65 66 67 68 69 70 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 64 def update_cart_item_analytics_data(item) { event: 'updateCartItem', domEvent: 'submit', payload: order_item_analytics_data(item) } end |
#validation_error_analytics_data(model) ⇒ Object
151 152 153 |
# File 'app/helpers/workarea/storefront/analytics_helper.rb', line 151 def validation_error_analytics_data(model) { event: 'validationError', payload: { model: model } } end |