Pricing
Update customiser pricing
deprecatedReplace all pricing configuration for a customiser. This is a full replacement: sizes and price-list rows omitted from the payload are deleted.
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
The customiser ID.
Example: 1
Request body
Request body example
{
"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
}
]
}
}
}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
}
]
}
}
}'{
"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": []
}
}{
"message": ""
}{
"message": "This action is unauthorized."
}{
"message": "No query results for model [App\\Models\\Customiser] 1"
}{
"message": "Cannot delete sizes that are still referenced by fonts."
}{
"message": "The pricing.sizes field must be present.",
"errors": {
"pricing.sizes": [
"The pricing.sizes field must be present."
]
}
}