diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index 227b6b0189..0c80637d89 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -293,7 +293,9 @@ Spree::Order.class_eval do # Overrride of Spree method, that allows us to send separate confirmation emails to user and shop owners # And separately, to skip sending confirmation email completely for user invoice orders def deliver_order_confirmation_email - Delayed::Job.enqueue ConfirmOrderJob.new(id) unless account_invoice? + unless account_invoice? || standing_order.present? + Delayed::Job.enqueue ConfirmOrderJob.new(id) + end end def changes_allowed? diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index a071373551..f053de5dc5 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -572,6 +572,14 @@ describe Spree::Order do order.deliver_order_confirmation_email end.to_not enqueue_job ConfirmOrderJob end + + it "does not send confirmation emails when the order belongs to a standing order" do + create(:standing_order_with_items, orders: [order]) + + expect do + order.deliver_order_confirmation_email + end.to_not enqueue_job ConfirmOrderJob + end end describe "associating a customer" do