Module: SpreeKlaviyo::OrderDecorator
- Defined in:
- app/models/spree_klaviyo/order_decorator.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.prepended(base) ⇒ Object
3 4 5 6 |
# File 'app/models/spree_klaviyo/order_decorator.rb', line 3 def self.prepended(base) base.state_machine.after_transition to: :complete, do: :subscribe_user_to_klaviyo_newsletter base.state_machine.after_transition to: :canceled, do: :track_order_cancelled_event end |
Instance Method Details
#subscribe_user_to_klaviyo_newsletter ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'app/models/spree_klaviyo/order_decorator.rb', line 8 def return unless accept_marketing? return if user&.klaviyo_subscribed? integration = store_integration('klaviyo') return if integration.blank? SpreeKlaviyo::SubscribeJob.perform_later(integration.id, email, user_id) end |
#track_order_cancelled_event ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/models/spree_klaviyo/order_decorator.rb', line 19 def track_order_cancelled_event klaviyo_integration = store.integrations.active.find_by(type: 'Spree::Integrations::Klaviyo') return if klaviyo_integration.nil? klaviyo_integration.create_event(event: 'Order Cancelled', resource: self, email: email) rescue StandardError => e Rails.error.report( e, context: { event_name: 'order_cancelled', record: { order: self } }, source: 'spree.core' ) end |