Use draft orders
Only stores on the Shopify Plus plan can use apps with B2B features.
Only stores on the Shopify Plus plan can use apps with B2B features.
Merchants often need to create draft orders for company approval when selling business-to-business (B2B). After creating a company, you can use the GraphQL Admin API to create draft orders for a purchasing entity. A purchasing entity is a combination of the company, company contact, and company location.
Anchor to What you'll learnWhat you'll learn
In this tutorial, you'll learn how to do the following tasks:
- Calculate a draft order for a purchasing entity
- Create a draft order for a purchasing entity
- Send an invoice for a draft order
- Mark a draft order as complete
Anchor to RequirementsRequirements
- Your app has the
write_productsaccess scope. Learn how to configure your access scopes using Shopify CLI. - You've added products to your dev store.
- You've created a company.
Anchor to Step 1: Calculate a draft order for a purchasing entityStep 1: Calculate a draft order for a purchasing entity
Before creating a draft order for a purchasing entity, you can preview information such as total taxes and prices using the draftOrderCalculate mutation:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL mutation
JSON response
Anchor to Step 2: Create a draft order for a purchasing entityStep 2: Create a draft order for a purchasing entity
When you're satisfied with the calculated draft order, you can create the draft order by passing the same input from your calculated draft order to the draftOrderCreate mutation:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL mutation
JSON response
Anchor to Step 3: Send an invoice for a draft orderStep 3: Send an invoice for a draft order
Sending an invoice for a B2B draft order is identical to sending an invoice for a consumer draft order. After creating a draft order, you can pass the draft order ID to the draftOrderInvoiceSend mutation to send the invoice to the company contact:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL mutation
JSON response
Anchor to Step 4: Mark a draft order as completeStep 4: Mark a draft order as complete
Marking a B2B draft order as complete is identical to marking a consumer draft order as complete. After creating a draft order, you can pass the draft order ID to the draftOrderComplete mutation to mark the draft order as complete and create a corresponding order:
POST https://{shop}.myshopify.com/api/{api_version}/graphql.json
GraphQL mutation
JSON response
Anchor to Next stepsNext steps
- Learn how to create a B2B checkout UI with the GraphQL Admin API.