From c7f7e420eab75bace1106bda18ecfc33e66413a0 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 5 Jul 2018 16:34:11 +1000 Subject: [PATCH] Skip shipment creation for payment step https://github.com/openfoodfoundation/openfoodnetwork/issues/2007 Spree 2.0.4 creates in-memory shipments for the payment step. That means we don't need to create a shipment in that transition. This change copies the checkout_flow from the Spree code, but leaves one last customisation: removal of the confirm step. https://github.com/openfoodfoundation/openfoodnetwork/commit/75ec77dc31de2c57514948211755a05356eab938 --- app/models/spree/order_decorator.rb | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index c6def73d68..10cabd124a 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -30,20 +30,14 @@ Spree::Order.class_eval do checkout_flow do go_to_state :address go_to_state :delivery - go_to_state :payment, :if => lambda { |order| - # Fix for #2191 - if order.shipping_method.andand.delivery? - if order.ship_address.andand.valid? - order.create_shipment! - order.update_totals - end - end + go_to_state :payment, if: ->(order) { + order.update_totals order.payment_required? } # NOTE: :confirm step was removed because we were not actually using it # go_to_state :confirm, :if => lambda { |order| order.confirmation_required? } go_to_state :complete - remove_transition :from => :delivery, :to => :confirm + remove_transition from: :delivery, to: :confirm end # -- Scopes