Catalog
Update a catalog item
Updates the given fields. Setting unit_price_per_person without pricing_mode sets the mode from it. Changing the vat of an item brings the vat of the packages that contain it in line.
Package:
- components replaces the whole composition (resend every item to keep) and derives the price and the tax rate again, as on creation; pricing_mode may go with it. Sent with is_package: true on a plain item, it turns the item into a package (409 package_component when a package already contains that item).
- Without components, the price fields (unit_price, unit_price_per_person, pricing_mode) and the tax rate of a package are refused (400 package_price_read_only), like next to components; the other fields can be changed (min_price up to its price).
- is_package: false turns a package back into a plain item: its composition is removed and a price is required (unit_price or unit_price_per_person, 400 price_required otherwise). Quote lines already made of it keep their articles.
Role permission: quotes.manage (and a venue the member can see).
patch/catalog-items/{id}
Request
- Base URL: https://joinways.app/api/v1
- URL: https://joinways.app/api/v1/catalog-items/{id}
- Auth: one of:
- HTTP bearer
- OAuth 2 (authorization code, authorization URL https://joinways.app/oauth/authorize, token URL https://joinways.app/api/oauth/token, scopes: mcp.write)
Headers
Idempotency-Keystring
Optional client-generated key (1 to 255 characters, e.g. a UUID v4) that makes the request idempotent for 24 hours: a retry with the same key replays the recorded response (marked Idempotency-Replayed: true) instead of executing the operation again. Same key with another body: 422 idempotency_key_reuse; while the first request runs: 409 idempotency_conflict. See the Idempotency section.
Request body
Example request
{
"components": [
{
"quantity": 1,
"unit_price": 25
}
]
}Response
The updated item.
Example response
{
"name": "Plated dinner, 3 courses",
"category": "Catering",
"type": "Catering",
"unit_label": "per person",
"unit_price": 95,
"vat": 20,
"vat_rate": 20,
"components": [
{
"name": "Meeting room",
"quantity": 1,
"unit_price": 25,
"vat": 20
}
],
"applied_price_rule": {
"label": "High season"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.