Updates an order item quantity or metadata.
Required scope: write_orders (for API-key authentication).
PATCH
/
api
/
v3
/
admin
/
orders
/
{order_id}
/
items
/
{id}
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const item = await client.orders.items.update('or_UkLWZg9DAJ', 'li_UkLWZg9DAJ', {
quantity: 5,
})spree api patch /orders/{order_id}/items/{id} -d '{"quantity":5}'{
"id": "li_UkLWZg9DAJ",
"variant_id": "variant_gbHJdmfrXB",
"preorder": false,
"preorder_ships_at": null,
"quantity": 5,
"currency": "USD",
"name": "Product 214628",
"slug": "product-214628",
"options_text": "Size: S",
"price": "19.99",
"display_price": "$19.99",
"total": "99.95",
"display_total": "$99.95",
"adjustment_total": "0.0",
"display_adjustment_total": "$0.00",
"additional_tax_total": "0.0",
"display_additional_tax_total": "$0.00",
"included_tax_total": "0.0",
"display_included_tax_total": "$0.00",
"discount_total": "0.0",
"display_discount_total": "$0.00",
"pre_tax_amount": "99.95",
"display_pre_tax_amount": "$99.95",
"discounted_amount": "99.95",
"display_discounted_amount": "$99.95",
"display_compare_at_amount": "$0.00",
"compare_at_amount": null,
"thumbnail_url": null,
"option_values": [
{
"id": "optval_UkLWZg9DAJ",
"option_type_id": "opt_UkLWZg9DAJ",
"name": "size-5",
"label": "S",
"position": 1,
"color_code": null,
"option_type_name": "foo-size-14",
"option_type_label": "Size",
"image_url": null,
"metadata": {},
"created_at": "2026-07-27T20:00:58.587Z",
"updated_at": "2026-07-27T20:00:58.587Z"
}
],
"digital_links": [],
"metadata": {},
"created_at": "2026-07-27T20:00:58.875Z",
"updated_at": "2026-07-27T20:00:59.177Z",
"cost_price": "17.0",
"tax_category_id": "taxcat_UkLWZg9DAJ"
}Authorizations
Secret API key for admin access
JWT token for admin user authentication
Headers
Bearer token for admin authentication
Body
application/json
Response
200 - application/json
item updated
Was this page helpful?
⌘I
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const item = await client.orders.items.update('or_UkLWZg9DAJ', 'li_UkLWZg9DAJ', {
quantity: 5,
})spree api patch /orders/{order_id}/items/{id} -d '{"quantity":5}'{
"id": "li_UkLWZg9DAJ",
"variant_id": "variant_gbHJdmfrXB",
"preorder": false,
"preorder_ships_at": null,
"quantity": 5,
"currency": "USD",
"name": "Product 214628",
"slug": "product-214628",
"options_text": "Size: S",
"price": "19.99",
"display_price": "$19.99",
"total": "99.95",
"display_total": "$99.95",
"adjustment_total": "0.0",
"display_adjustment_total": "$0.00",
"additional_tax_total": "0.0",
"display_additional_tax_total": "$0.00",
"included_tax_total": "0.0",
"display_included_tax_total": "$0.00",
"discount_total": "0.0",
"display_discount_total": "$0.00",
"pre_tax_amount": "99.95",
"display_pre_tax_amount": "$99.95",
"discounted_amount": "99.95",
"display_discounted_amount": "$99.95",
"display_compare_at_amount": "$0.00",
"compare_at_amount": null,
"thumbnail_url": null,
"option_values": [
{
"id": "optval_UkLWZg9DAJ",
"option_type_id": "opt_UkLWZg9DAJ",
"name": "size-5",
"label": "S",
"position": 1,
"color_code": null,
"option_type_name": "foo-size-14",
"option_type_label": "Size",
"image_url": null,
"metadata": {},
"created_at": "2026-07-27T20:00:58.587Z",
"updated_at": "2026-07-27T20:00:58.587Z"
}
],
"digital_links": [],
"metadata": {},
"created_at": "2026-07-27T20:00:58.875Z",
"updated_at": "2026-07-27T20:00:59.177Z",
"cost_price": "17.0",
"tax_category_id": "taxcat_UkLWZg9DAJ"
}
