6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'app/services/spree/cart/create.rb', line 6
def call(user:, store:, currency:, public_metadata: {}, private_metadata: {}, order_params: {})
order_params ||= {}
return failure(:store_is_required) if store.nil?
default_params = {
user: user,
currency: currency || store.default_currency,
token: Spree::GenerateToken.new.call(Spree::Order),
public_metadata: public_metadata.to_h,
private_metadata: private_metadata.to_h
}
order = store.orders.create!(default_params.merge(order_params))
success(order)
end
|