Module: Spree::Shipment::CustomEvents

Extended by:
ActiveSupport::Concern
Included in:
Spree::Shipment
Defined in:
app/models/spree/shipment/custom_events.rb

Overview

Publishes custom shipment events beyond basic lifecycle events.

Events:

  • shipment.shipped: Shipment was shipped

  • order.shipped: All order shipments are shipped

  • shipment.canceled: Shipment was canceled

  • shipment.resumed: Shipment was resumed from canceled state

NOTE: These methods are called from the state machine’s after_transition callbacks defined in the Shipment model, not via ActiveRecord callbacks.

Instance Method Summary collapse

Instance Method Details

#publish_shipment_canceled_eventObject



28
29
30
31
32
# File 'app/models/spree/shipment/custom_events.rb', line 28

def publish_shipment_canceled_event
  return unless Spree::Events.enabled?

  publish_event('shipment.canceled')
end

#publish_shipment_resumed_eventObject



34
35
36
37
38
# File 'app/models/spree/shipment/custom_events.rb', line 34

def publish_shipment_resumed_event
  return unless Spree::Events.enabled?

  publish_event('shipment.resumed')
end

#publish_shipment_shipped_eventObject



19
20
21
22
23
24
25
26
# File 'app/models/spree/shipment/custom_events.rb', line 19

def publish_shipment_shipped_event
  return unless Spree::Events.enabled?

  publish_event('shipment.shipped')
  # Force reload of shipments association to see the new state
  order.shipments.reset
  publish_order_shipped_event if order.fully_shipped?
end