BigCommerce Order Management
Before writing code
Fetch live docs:
- Web-search
site:developer.bigcommerce.com rest ordersfor Orders API reference - Web-search
bigcommerce order api v2 v3for endpoint availability - Web-search
bigcommerce order status listfor status definitions
API Endpoints
V2 Orders (Primary)
Orders are primarily managed via V2 API:
| Endpoint | Methods | Description |
|---|---|---|
/v2/orders | GET, POST, PUT | Orders CRUD |
/v2/orders/{id}/products | GET | Order line items |
/v2/orders/{id}/shipping_addresses | GET | Shipping addresses |
/v2/orders/{id}/coupons | GET | Applied coupons |
/v2/orders/{id}/shipments | GET, POST, PUT, DELETE | Shipments |
/v2/orders/{id}/taxes | GET | Tax details |
/v2/order_statuses | GET | Available order statuses |
V3 Order Extensions
| Endpoint | Description |
|---|---|
/v3/orders/{id}/metafields | Order metafields |
/v3/orders/{id}/payment_actions | Payment actions (capture, void) |
/v3/orders/settings | Order-level settings |
/v3/orders/{id}/transactions | Payment transactions |
Order Lifecycle
Status Flow
Incomplete → Pending → Awaiting Payment → Awaiting Fulfillment
→ Partially Shipped → Shipped → Completed
→ Awaiting Pickup → Picked Up
→ Cancelled / Declined / Refunded / Disputed
Standard Statuses
| ID | Status | Description |
|---|---|---|
| 0 | Incomplete | Checkout not completed |
| 1 | Pending | Awaiting processing |
| 2 | Shipped | All items shipped |
| 3 | Partially Shipped | Some items shipped |
| 4 | Refunded | Fully refunded |
| 5 | Cancelled | Order cancelled |
| 6 | Declined | Payment declined |
| 7 | Awaiting Payment | Payment not yet received |
| 8 | Awaiting Pickup | Ready for customer pickup |
| 9 | Awaiting Shipment | Awaiting fulfillment |
| 10 | Completed | Order completed |
| 11 | Awaiting Fulfillment | Ready to be fulfilled |
| 12 | Manual Verification Required | Payment needs manual review |
| 13 | Disputed | Payment dispute opened |
| 14 | Partially Refunded | Partial refund issued |
Custom Statuses
Create custom statuses via admin or API — they map to one of the standard status groups for reporting.
Order Structure
Order Fields
Key fields returned by GET /v2/orders/{id}:
id— order numberstatus_id— current statusstatus— status labelsubtotal_inc_tax,subtotal_ex_taxtotal_inc_tax,total_ex_taxdiscount_amountshipping_cost_inc_tax,shipping_cost_ex_taxitems_total— total number of itemspayment_method— payment providercurrency_codebilling_address— billing address objectcustomer_id— associated customerdate_created,date_modified
Line Items
GET /v2/orders/{id}/products returns:
product_id,variant_idname,sku,quantityprice_inc_tax,price_ex_taxtotal_inc_tax,total_ex_taxproduct_options— selected options
Creating Orders
Server-Side Order Creation
POST /v2/orders with:
customer_idorbilling_addressproductsarray withproduct_id,quantity, and optionallyprice_inc_taxstatus_idshipping_addressesarray
Useful for: POS integrations, phone orders, order imports.
Shipments
Creating Shipments
POST /v2/orders/{id}/shipments:
{
"tracking_number": "1Z999AA10123456784",
"shipping_method": "UPS Ground",
"shipping_provider": "ups",
"items": [
{ "order_product_id": 15, "quantity": 1 }
]
}
Shipment Flow
- Create shipment with tracking info and items
- Order status auto-updates to "Partially Shipped" or "Shipped"
- Customer receives shipping notification email
- Tracking info displayed in customer order history
Refunds
Creating Refunds
POST /v3/orders/{id}/payment_actions/refund:
{
"items": [
{
"item_type": "PRODUCT",
"item_id": 123,
"quantity": 1,
"reason": "Customer requested return"
}
]
}
Refund Types
- Full refund — refund the entire order amount
- Partial refund — refund specific items or custom amount
- Line-item refund — refund specific products with quantities
Order Metafields
Store custom data on orders (V3):
POST /v3/orders/{id}/metafields- Used for: external IDs, fulfillment notes, integration data
namespace+key= unique per order
Querying Orders
Filters
min_id/max_id— ID rangemin_date_created/max_date_created— date rangestatus_id— filter by statuscustomer_id— filter by customeremail— filter by customer emailpayment_method— filter by payment provideris_deleted— include/exclude deleted orders
Pagination
V2 uses page and limit parameters, plus Link headers for navigation.
Best Practices
- Use webhooks (
store/order/created,store/order/statusUpdated) for real-time order processing - Fetch order details via API after receiving webhook (webhooks only contain the order ID)
- Handle all order statuses — don't assume a linear flow
- Use metafields for integration-specific data, not order notes
- Create shipments with tracking info for best customer experience
- Process refunds through the API for accurate financial records
- Implement idempotency — check if an order was already processed before acting
Fetch the BigCommerce Orders API reference for exact endpoint paths, request/response schemas, and status definitions before implementing.