Sign Customiser

Replace all pricing configuration for a customiser. This is a full replacement: sizes and price-list rows omitted from the payload are deleted.

PUT/api/v2/customisers/{customiser}/pricing

Overview

A replacement that would delete size or price-list records still referenced by fonts or settings is rejected with a 409 and no changes are applied. The pricing_model value is the internal enum name for the customiser's pricing model. The current product names are: FIXED_WIDTH is the Simple Letter Model, MATERIAL_LENGTH is the Advanced Letter Model, and FRAME_FIT is the Frame Fit Model. This endpoint cannot switch a customiser to a different pricing model, and the deprecated FIXED_HEIGHT legacy model is rejected with a 422. Error responses always include a human-readable message field. Validation failures also include an errors object keyed by field path.

Authorisation

Bearer token required. Include it in theAuthorization header.

Path parameters

customiserstringpathrequired

The customiser ID.

Example: 1

Request body

pricingobjectbody

Request body example

application/json
{
  "pricing": {
    "pricing_model": "FIXED_WIDTH",
    "sizes": [
      {
        "size_id": 1,
        "client_key": "small",
        "name": "Small",
        "description": "Up to 50cm wide",
        "sort_order": 1,
        "char_limit": 20,
        "line_limit": 3,
        "min_char": 1,
        "width_cm": 50,
        "line_height_cm": 12,
        "height_strategy": "WIDTH",
        "height_measurement_mode": "LINE_HEIGHT"
      }
    ],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": [
        {
          "size_id": 1,
          "base_price": {
            "line_1": 1000,
            "line_2": 1200,
            "line_3": 1400
          },
          "width_limit_cm": 100,
          "height_limit_cm": 50,
          "price_per_sq_cm": 0.05,
          "width_modifier": 1,
          "height_modifier": 1,
          "length_modifier": 1
        }
      ]
    },
    "price_lists": [
      {
        "pricing_id": 10,
        "name": "Standard",
        "letter_pricing_mode": "EVERY_LETTER_COST",
        "letter_pricing_method": "material_length",
        "shipping": {
          "calculation": "physical",
          "add_weight_to_product": false
        },
        "rows": [
          {
            "size_id": 1,
            "base_price": {
              "line_1": 1000,
              "line_2": 1200,
              "line_3": 1400
            },
            "letter_price": {
              "line_1": 100,
              "line_2": 120,
              "line_3": 140
            },
            "letter_price_by_position": {
              "line_1": [
                0,
                100
              ],
              "line_2": [
                0,
                120
              ],
              "line_3": [
                0,
                140
              ]
            },
            "price_per_cm": 0.5,
            "price_per_letter_by_position": [
              0,
              100,
              125
            ],
            "max_price_multiplier": 3,
            "width_limit_cm": 100,
            "height_limit_cm": 50,
            "price_per_sq_cm": 0.05,
            "width_modifier": 1,
            "height_modifier": 1,
            "length_modifier": 1
          }
        ]
      }
    ],
    "sheet_pricing": {
      "pricings": [
        {
          "cmLimitWidth": 4326.41688,
          "cmLimitHeight": 4326.41688,
          "basePrice": 77,
          "pricePerSqCm": 8
        }
      ]
    }
  }
}
Update customiser pricing
curl https://web.signcustomiser.com/api/v2/customisers/1/pricing \
  --request PUT \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "pricing": {
    "pricing_model": "FIXED_WIDTH",
    "sizes": [
      {
        "size_id": 1,
        "client_key": "small",
        "name": "Small",
        "description": "Up to 50cm wide",
        "sort_order": 1,
        "char_limit": 20,
        "line_limit": 3,
        "min_char": 1,
        "width_cm": 50,
        "line_height_cm": 12,
        "height_strategy": "WIDTH",
        "height_measurement_mode": "LINE_HEIGHT"
      }
    ],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": [
        {
          "size_id": 1,
          "base_price": {
            "line_1": 1000,
            "line_2": 1200,
            "line_3": 1400
          },
          "width_limit_cm": 100,
          "height_limit_cm": 50,
          "price_per_sq_cm": 0.05,
          "width_modifier": 1,
          "height_modifier": 1,
          "length_modifier": 1
        }
      ]
    },
    "price_lists": [
      {
        "pricing_id": 10,
        "name": "Standard",
        "letter_pricing_mode": "EVERY_LETTER_COST",
        "letter_pricing_method": "material_length",
        "shipping": {
          "calculation": "physical",
          "add_weight_to_product": false
        },
        "rows": [
          {
            "size_id": 1,
            "base_price": {
              "line_1": 1000,
              "line_2": 1200,
              "line_3": 1400
            },
            "letter_price": {
              "line_1": 100,
              "line_2": 120,
              "line_3": 140
            },
            "letter_price_by_position": {
              "line_1": [
                0,
                100
              ],
              "line_2": [
                0,
                120
              ],
              "line_3": [
                0,
                140
              ]
            },
            "price_per_cm": 0.5,
            "price_per_letter_by_position": [
              0,
              100,
              125
            ],
            "max_price_multiplier": 3,
            "width_limit_cm": 100,
            "height_limit_cm": 50,
            "price_per_sq_cm": 0.05,
            "width_modifier": 1,
            "height_modifier": 1,
            "length_modifier": 1
          }
        ]
      }
    ],
    "sheet_pricing": {
      "pricings": [
        {
          "cmLimitWidth": 4326.41688,
          "cmLimitHeight": 4326.41688,
          "basePrice": 77,
          "pricePerSqCm": 8
        }
      ]
    }
  }
}'
Response
{
  "pricing": {
    "customiser_id": 1,
    "pricing_model": "FIXED_WIDTH",
    "value_units": {
      "base_price": "minor_currency_units",
      "letter_price": "minor_currency_units",
      "letter_price_by_position": "minor_currency_units",
      "price_per_letter": "minor_currency_units",
      "price_per_letter_by_position": "minor_currency_units",
      "price_per_cm": "currency_units_per_cm",
      "price_per_sq_cm": "currency_units_per_sq_cm_or_weight_unit"
    },
    "sizes": [],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": []
    },
    "price_lists": []
  }
}