You can remove the delivery address by removing the delivery step from the checkout_flow definition by placing this code in your application in app/models/spree/order_decorator.rb :
Spree::Order.class_eval do checkout_flow do go_to_state :address go_to_state :payment, :if => lambda { |order| order.payment_required? } go_to_state :confirm, :if => lambda { |order| order.confirmation_required? } go_to_state :complete remove_transition :from => :delivery, :to => :confirm end end
Without a delivery step, Spree will not request a delivery address or delivery information for an order.
source share