Class: Spree::Cart::RemoveOutOfStockItems
- Inherits:
-
Object
- Object
- Spree::Cart::RemoveOutOfStockItems
- Includes:
- ServiceModule::Base
- Defined in:
- app/services/spree/cart/remove_out_of_stock_items.rb
Instance Method Summary collapse
Methods included from ServiceModule::Base
Instance Method Details
#call(order:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'app/services/spree/cart/remove_out_of_stock_items.rb', line 6 def call(order:) @messages = [] ActiveRecord::Base.transaction do line_items(order).each do |line_item| cart_remove_line_item_service.call(order: order, line_item: line_item) if !valid_status?(line_item) || !stock_available?(line_item) end end if @messages.any? # If any line item was removed, reload the order success([order.reload, @messages]) else success([order, @messages]) end end |