Sha256: 278f26b743c8e6e5c8154bb2e14ed14f13ee5d01cad20ad1ace28a6346d556cb
Contents?: true
Size: 840 Bytes
Versions: 33
Compression:
Stored size: 840 Bytes
Contents
module Spree module Cart class Empty prepend Spree::ServiceModule::Base def call(order:) run :check_if_can_be_empty run :empty_order end private def check_if_can_be_empty(order:) return failure(Spree.t(:cannot_empty)) if order.nil? || order.completed? success(order: order) end def empty_order(order:) ActiveRecord::Base.transaction do order.line_items.destroy_all order.updater.update_item_count order.adjustments.destroy_all order.shipments.destroy_all order.state_changes.destroy_all order.order_promotions.destroy_all order.update_totals order.persist_totals order.restart_checkout_flow success(order) end end end end end
Version data entries
33 entries across 33 versions & 1 rubygems