Class: Spree::Api::V2::Tenant::DraftOrdersController
- Inherits:
-
BaseController
- Object
- ResourceController
- BaseController
- Spree::Api::V2::Tenant::DraftOrdersController
- Defined in:
- app/controllers/spree/api/v2/tenant/draft_orders_controller.rb
Instance Method Summary collapse
-
#create ⇒ Object
Creates a generic draft order from a locally-assembled cart in a single request.
Methods inherited from BaseController
#current_vendor, #render_serialized_payload, #require_tenant, #scope
Instance Method Details
#create ⇒ Object
Creates a generic draft order from a locally-assembled cart in a single request. Endpoint: POST /api/v2/tenant/draft_orders Params:
- line_items: Array of { variant_id:, quantity:, options: {}, public_metadata: {}, private_metadata: {} } (required)
- st: private sale token granting this order the product's locked stock (optional).
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/controllers/spree/api/v2/tenant/draft_orders_controller.rb', line 11 def create result = SpreeCmCommissioner::DraftOrders::Create.call( line_items: draft_order_line_items, user: spree_current_user, store: current_store, currency: current_currency, tenant: @tenant, options: { device_id: params[:device_id], last_ip_address: request.remote_ip, private_sale_token: params[:st] } ) if result.success? render_serialized_payload { serialize_resource(serializable_order(result.value[:order])) } else render_error_payload(result.error) end end |