Sign Customiser

Applies an RFC 7396 JSON Merge Patch to one customiser's metadata: properties omitted from the body are unchanged and an empty object {} is a valid no-op. Two properties are patchable — name, and selection_mode, which decides whether the shopper styles the whole sign as one unit (single_style) or each word separately (per_word).

PATCH/api/v3/customisers/{customiser_id}

Overview

Everything else a read publishes is read-only here: active moves only through the activate and deactivate operations, and the prototype's choices (pricing_model, sign_category, product_family) are fixed once the customiser exists. Naming one is a 422 with a pointer rather than a silent no-op. The pricing model in particular is deliberately not changeable: it would strand the price lists and sizes the customiser already holds. Switching to per_word also turns on multiple fonts and multiple colours, exactly as the merchant admin does, because per-word styling is what those settings serve. It is refused with a 422 selection_mode_not_available when the sign is cut as one piece (a lightbox, a metal cut-out, or a stencil) or the store's plan does not include per-word styling; reason says which. A successful update clears the customiser's cached storefront configuration and resynchronises translated content. It never regenerates your Shopify products, product images, or product cache. An Idempotency-Key is optional here, as on the option families' update operations: sending one makes the update safe to retry. Requires customisers:write.

Authorisation

Bearer token required. Include it in theAuthorization header.

Required scope: customisers:write

Path parameters

customiser_idstringpathrequired

The customiser id, from the list operation.

Example: 1

Request body

namestringbody
selection_modestringbody

Request body example

application/json
{
  "name": "Neon sign builder",
  "selection_mode": "per_word"
}
Update a customiser
curl https://web.signcustomiser.com/api/v3/customisers/1 \
  --request PATCH \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Neon sign builder",
  "selection_mode": "per_word"
}'
Response
{
  "data": {
    "object": "customiser",
    "id": 42,
    "name": "Neon sign builder",
    "active": true,
    "pricing_model": "frame_fit",
    "pricing_model_display_name": "Frame Fit",
    "sign_category": "neon",
    "product_family": "neon",
    "selection_mode": "per_word",
    "created_at": "2026-08-14T00:00:00Z",
    "updated_at": "2026-08-14T00:05:00Z"
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}