Skip to navigation

Update Product

Update a product’s catalog fields. Only the fields sent are changed. On-hand quantities are not part of this call; use the stock endpoints.

Path parameters

product_idstringRequired

Headers

xi-api-keystringOptional
xi-workspace-idstring or nullOptional
The customer workspace a reseller's API key acts on.

Request

This endpoint expects an object.
pricing_modeenumOptionalDefaults to fixed

‘fixed’ (default): the item has a known price the agent can quote, and customers can book or order it directly. ‘quote’: the price depends on the job (renovation, catering, custom work), so no price or slot is offered; the agent collects the intake_questions and files a quote request instead. Takes effect only while quotes are enabled for the business. Group services cannot use ‘quote’.

Allowed values:
intake_questionslist of objectsOptional

Questions the agent asks before booking or ordering this item. Required for a useful pricing_mode='quote' item — without them a quote request arrives with nothing to price — but also valid on fixed-price items that need extra detail (current hair color before a dye job, allergies before a treatment).

groupslist of objectsOptional

Group memberships for this item. Each entry carries the group label and the item’s 0-based rank within that group.

ungrouped_rankinteger or nullOptional

Display position among items with no group; null sorts last. Change it with the reorder endpoint.

namestringOptional
Name of the product.
descriptionstringOptional
Description of the product.
pricedouble or nullOptional>=0

Price of the product; null for no listed price.

is_activebooleanOptional
False hides the product without deleting it.
orderablebooleanOptional

False keeps the product listed (callers can ask about it) but not orderable.

allowed_fulfillment_typeslist of enumsOptional
Fulfillment options customers may choose when ordering this product.
Allowed values:
location_idslist of stringsOptional

Locations where this product is sold; empty list means all locations.

track_quantitybooleanOptional

Whether this product is counted. Switching it only changes the mode: turning it on keeps whatever is already on hand, turning it off drops the counts. Use the stock endpoints to change the amounts themselves.

Response

Successful Response
namestring
Name of the product.
_idstring
pricing_modeenumOptionalDefaults to fixed

‘fixed’ (default): the item has a known price the agent can quote, and customers can book or order it directly. ‘quote’: the price depends on the job (renovation, catering, custom work), so no price or slot is offered; the agent collects the intake_questions and files a quote request instead. Takes effect only while quotes are enabled for the business. Group services cannot use ‘quote’.

Allowed values:
intake_questionslist of objectsOptional

Questions the agent asks before booking or ordering this item. Required for a useful pricing_mode='quote' item — without them a quote request arrives with nothing to price — but also valid on fixed-price items that need extra detail (current hair color before a dye job, allergies before a treatment).

groupslist of objectsOptional

Group memberships for this item. Each entry carries the group label and the item’s 0-based rank within that group.

ungrouped_rankinteger or nullOptional>=0

Display position among items with no group; null sorts last. Change it with the reorder endpoint.

descriptionstringOptional
Description of the product.
pricedouble or nullOptional>=0

Price of the product; null for no listed price.

is_activebooleanOptionalDefaults to true
False hides the product without deleting it.
orderablebooleanOptionalDefaults to true

False keeps the product listed (callers can ask about it) but not orderable.

allowed_fulfillment_typeslist of enumsOptional
Fulfillment options customers may choose when ordering this product.
Allowed values:
location_idslist of stringsOptional

Locations where this product is sold; empty list means all locations.

stockmap from strings to integers or nullOptional

On-hand quantity by location. None means unlimited. A missing location key means zero.

created_at_unixintegerOptional

Unix timestamp (seconds since epoch)

updated_at_unixintegerOptional

Unix timestamp (seconds since epoch)

Errors

422
Unprocessable Entity Error