POST /admin/api/{api_version}/orders.json
Creates an order. By default, product inventory is not claimed.
When you create an order, you can include the following option parameters in the body of the request:
- inventory_behaviour: The behaviour to use when updating inventory. (default:
bypass
)- bypass: Do not claim inventory.
- decrement_ignoring_policy: Ignore the product's inventory policy and claim inventory.
- decrement_obeying_policy: Follow the product's inventory policy and claim inventory, if possible.
- send_receipt: Whether to send an order confirmation to the customer.
Note
If you're working on a private app and order confirmations are still being sent to the customer when send_receipt
is set to false
, then you need to disable the Storefront API from the private app's page in the Shopify admin.
- send_fulfillment_receipt: Whether to send a shipping confirmation to the customer.
Note
If you are including shipping_address or billing_address, make sure to pass both first_name and last_name. Otherwise both these addresses will be ignored.
If you're using this endpoint with a trial or Partner development store, then you can create no more than 5 new orders per minute.
Servers
- https://{store_name}.myshopify.com
- {store_name}.myshopify.com
Path parameters
Name | Type | Required | Description |
---|---|---|---|
api_version |
String | Yes |
Request headers
Name | Type | Required | Description |
---|---|---|---|
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/json" |
x-shopify-access-token |
String | No |
Request body fields
Name | Type | Required | Description |
---|---|---|---|
order |
Object | No | |
order.email |
String | No | |
order.line_items[] |
Array | No | |
order.line_items[].quantity |
Number | No | |
order.line_items[].variant_id |
Number | No | |
order.fulfillment_status |
String | No | |
order.fulfillments[] |
Array | No | |
order.fulfillments[].location_id |
Number | No |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.