diff --git a/app/controllers/spree/admin/orders_controller.rb b/app/controllers/spree/admin/orders_controller.rb index a73adf58c4..ada793fc3f 100644 --- a/app/controllers/spree/admin/orders_controller.rb +++ b/app/controllers/spree/admin/orders_controller.rb @@ -70,6 +70,7 @@ module Spree @order.restock_items = params.fetch(:restock_items, "true") == "true" if @order.public_send(event.to_s) + AmendBackorderJob.perform_later(@order) if event == "cancel" flash[:success] = Spree.t(:order_updated) else flash[:error] = Spree.t(:cannot_perform_operation) diff --git a/app/models/spree/order/checkout.rb b/app/models/spree/order/checkout.rb index a9705d7244..e51ffe442a 100644 --- a/app/models/spree/order/checkout.rb +++ b/app/models/spree/order/checkout.rb @@ -142,8 +142,6 @@ module Spree OrderMailer.cancel_email(id).deliver_later if send_cancellation_email update(payment_state: updater.update_payment_state) - - AmendBackorderJob.perform_later(self) end def after_resume diff --git a/app/services/orders/bulk_cancel_service.rb b/app/services/orders/bulk_cancel_service.rb index 0469907bf8..6eed24c7d9 100644 --- a/app/services/orders/bulk_cancel_service.rb +++ b/app/services/orders/bulk_cancel_service.rb @@ -15,6 +15,7 @@ module Orders order.send_cancellation_email = @send_cancellation_email order.restock_items = @restock_items order.cancel + AmendBackorderJob.perform_later(order) end # rubocop:enable Rails/FindEach end diff --git a/app/services/orders/customer_cancellation_service.rb b/app/services/orders/customer_cancellation_service.rb index 7385139db0..3371680cbc 100644 --- a/app/services/orders/customer_cancellation_service.rb +++ b/app/services/orders/customer_cancellation_service.rb @@ -10,6 +10,7 @@ module Orders return unless order.cancel Spree::OrderMailer.cancel_email_for_shop(order).deliver_later + AmendBackorderJob.perform_later(order) end private