Skip to main content
PATCH
/
api
/
v3
/
admin
/
products
/
{product_id}
/
custom_fields
/
{id}
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'

const client = createAdminClient({
  baseUrl: 'https://your-store.com',
  secretKey: 'sk_xxx',
})

const customField = await client.products.customFields.update('prod_UkLWZg9DAJ', 'cf_AbC123XyZ', {
  value: 'cotton',
})
{
  "id": "cf_UkLWZg9DAJ",
  "label": "Title",
  "type": "Spree::Metafields::ShortText",
  "field_type": "short_text",
  "key": "custom.title",
  "value": "cotton",
  "created_at": "2026-06-17T13:37:40.389Z",
  "updated_at": "2026-06-17T13:37:40.671Z",
  "storefront_visible": true,
  "custom_field_definition_id": "cfdef_UkLWZg9DAJ"
}

Authorizations

x-spree-api-key
string
header
required

Secret API key for admin access

Authorization
string
header
required

JWT token for admin user authentication

Headers

x-spree-api-key
string
required
Authorization
string
required

Path Parameters

product_id
string
required
id
string
required

Body

application/json
value
any
required

New value

Response

200 - application/json

custom field updated