Sign Customiser

Navigation

Dark mode

Customiser length pricings

Update a length pricing

Copy page

Applies an RFC 7396 JSON Merge Patch to one length pricing: properties omitted from the body are unchanged, and the nested shipping object merges member by member. rows is an array, so sending it replaces every row wholesale. Read-only and unknown fields are rejected.

PATCH/api/v3/customisers/{customiser_id}/length-pricings/{length_pricing_id}
PATCHUpdate a length pricing
PATCH/api/v3/customisers/{customiser_id}/length-pricings/{length_pricing_id}

Update a length pricing

Applies an RFC 7396 JSON Merge Patch to one length pricing: properties omitted from the body are unchanged, and the nested `shipping` object merges member by member. `rows` is an array, so sending it replaces every row wholesale. Read-only and unknown fields are rejected. An empty object `{}` is a valid no-op. Requires `pricing:write`. One exception to wholesale replacement protects per-position pricing: a row resent without `price_per_letter_by_position` keeps the schedule it already had, because dropping a schedule by forgetting to echo it would silently reprice a sign. Send `price_per_letter_by_position: null` to clear one deliberately. The dimension limits, the volumetric divisor, and the rate each row owes its letter pricing method are judged against the state the patch would leave behind, so switching an existing price list to volumetric shipping, or to a different `letter_pricing_method`, is refused unless the rows it already has can carry it. An `Idempotency-Key` is optional here: sending one makes the update safe to retry (an exact repeat replays the original response; the same key with a different body is a 409). The update clears the customiser's cached storefront configuration and runs the advisory language sync, and never regenerates Shopify products, product images, or the product cache.

Authorisation

The Authorization header expects a Bearer token. Generate one on the API keys page in your dashboard.

Path

The customiser id.

The length pricing id, from the list length pricings operation.

Body
Update a length pricing

Overview

An empty object {} is a valid no-op. Requires pricing:write. One exception to wholesale replacement protects per-position pricing: a row resent without price_per_letter_by_position keeps the schedule it already had, because dropping a schedule by forgetting to echo it would silently reprice a sign. Send price_per_letter_by_position: null to clear one deliberately. The dimension limits, the volumetric divisor, and the rate each row owes its letter pricing method are judged against the state the patch would leave behind, so switching an existing price list to volumetric shipping, or to a different letter_pricing_method, is refused unless the rows it already has can carry it. An Idempotency-Key is optional here: sending one makes the update safe to retry (an exact repeat replays the original response; the same key with a different body is a 409). The update clears the customiser's cached storefront configuration and runs the advisory language sync, and never regenerates Shopify products, product images, or the product cache.

Authorisation

Bearer token required. Include it in the Authorization header.

Required scope: pricing:write

Path parameters

customiser_idstringpathrequired

The customiser id.

Example: 1

length_pricing_idstringpathrequired

The length pricing id.

Example: 1

Request body

namestringbody
shippingobjectbody
rowsarraybody

Request body example

application/json
{
  "name": "Standard",
  "shipping": {
    "calculation": "volumetric",
    "volumetric_divisor": 5000
  },
  "rows": [
    {
      "base_price": 4700,
      "width_limit_cm": 120,
      "height_limit_cm": 60,
      "price_per_letter": 600
    }
  ]
}
Update a length pricing
curl https://web.signcustomiser.com/api/v3/customisers/1/length-pricings/1 \
  --request PATCH \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Standard",
  "shipping": {
    "calculation": "volumetric",
    "volumetric_divisor": 5000
  },
  "rows": [
    {
      "base_price": 4700,
      "width_limit_cm": 120,
      "height_limit_cm": 60,
      "price_per_letter": 600
    }
  ]
}'
Response
{
  "data": {
    "object": "length_pricing",
    "id": 9,
    "customiser_id": 42,
    "name": "Standard",
    "letter_pricing_mode": "every_letter_cost",
    "letter_pricing_method": "fixed_letter",
    "shipping": {
      "calculation": "volumetric",
      "volumetric_divisor": 5000,
      "add_weight_to_product": false
    },
    "currency": "USD",
    "rows": [
      {
        "base_price": 4700,
        "width_limit_cm": 120,
        "height_limit_cm": 60,
        "length_limit_cm": null,
        "price_per_sq_cm": null,
        "price_per_sq_cm_basis": "per_kg_volumetric",
        "fixed_length_cm": null,
        "width_modifier": null,
        "height_modifier": null,
        "length_modifier": null,
        "max_price_multiplier": null,
        "price_per_cm": null,
        "price_per_letter": null,
        "price_per_letter_by_position": null
      }
    ],
    "created_at": "2026-08-13T00:00:00Z",
    "updated_at": "2026-08-13T00:05:00Z"
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/length-pricings/9",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}

Type a question and press Enter. Use the arrow keys to move between the results.