Sha256: a96f121609ce8a919b3e86025b658e5e050b27e7d04bf92d790a20ecf0d8e981

Contents?: true

Size: 584 Bytes

Versions: 7

Compression:

Stored size: 584 Bytes

Contents

module Spree
  module Cart
    class Create
      prepend Spree::ServiceModule::Base

      def call(user:, store:, currency:, order_params: nil)
        order_params ||= {}

        # we cannot create an order without store
        return failure(:store_is_required) if store.nil?

        default_params = {
          user: user,
          currency: currency || store.default_currency,
          token: Spree::GenerateToken.new.call(Spree::Order)
        }

        order = store.orders.create!(default_params.merge(order_params))
        success(order)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
spree_core-4.3.3 app/services/spree/cart/create.rb
spree_core-4.3.2 app/services/spree/cart/create.rb
spree_core-4.3.1 app/services/spree/cart/create.rb
spree_core-4.3.0 app/services/spree/cart/create.rb
spree_core-4.3.0.rc3 app/services/spree/cart/create.rb
spree_core-4.3.0.rc2 app/services/spree/cart/create.rb
spree_core-4.3.0.rc1 app/services/spree/cart/create.rb