Skip to content

Patch a product menu

PATCH
/api/tenant/{tenantId}/ProductMenus/{id}
curl --request PATCH \
--url https://api.nimles.com/pim/api/tenant/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/ProductMenus/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '[ { "op": "example", "path": "example", "from": "example", "value": "example" } ]'

Changes a product menu with RFC 6902 JSON Patch operations (add, remove, replace, move, copy and test) on the members the PUT can change. Paths use the model’s member names (for example /name or /nameLocalized/sv); identity, organization and accessibility cannot be patched. Unlike the other members, the organization can still be changed with the PUT, which sets it from the body: a patch of /organizationId answers 422, so moving a menu to another organization takes the PUT. Like the POST and PUT, the products, variants and product groups the patch adds must be tenant level or of the menu’s resource group (422 under /menuGroups or /productGroupIds).

id
required
string format: uuid

The id of the product menu.

tenantId
required
string format: uuid

Your tenant id.

The operations, applied in order: all of them or none.

Media typeapplication/json
Array<object>
object
op
required
string
>= 1 characters /^(add|remove|replace|move|copy|test)$/
path
required
string
>= 1 characters
from
string
nullable
value
nullable

Example generated

[
{
"op": "example",
"path": "example",
"from": "example",
"value": "example"
}
]

OK

Media typeapplication/json
object
fields
object
key
additional properties
string
data
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
relations
Array<object>
nullable
object
fields
object
key
additional properties
object
value
required
nullable
valueType
string
nullable
accessibility
string
nullable
id
string format: uuid
name
string
nullable
entityId
required
string format: uuid
entityType
required
string
>= 1 characters
relationType
required
string
>= 1 characters
tenantId
string format: uuid
nullable
resourceGroupId
string format: uuid
nullable
creatorId
string format: uuid
nullable
createdDate
string format: date-time
nullable
version
integer format: int32
nullable
lastModified
string format: date-time
nullable
organizationId
string format: uuid
nullable
publisherId
string format: uuid
imageIds
Array<string>
nullable
status
required
string
nullable
productMenuType
required
string
nullable
uniqueName
string
nullable
tags
string
nullable
weekNumber
integer format: int32
nullable
productGroupIds
Array<string>
nullable
name
string
nullable
description
string
nullable
menuGroups
Array<object>
nullable
object
id
string format: uuid
imageId
string format: uuid
nullable
uniqueName
string
nullable
name
string
nullable
description
string
nullable
menuItems
Array<object>
nullable
object
id
string format: uuid
productId
string format: uuid
variantId
string format: uuid
dayOfWeek
string
nullable
dayOfWeek
integer format: int32
nullable

Example generated

{
"data": {
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"relations": [
{
"fields": {
"additionalProperty": {
"value": "example",
"valueType": "example"
}
},
"accessibility": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"entityId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"entityType": "example",
"relationType": "example"
}
],
"tenantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"resourceGroupId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"creatorId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"createdDate": "2026-04-15T12:00:00Z",
"version": 1,
"lastModified": "2026-04-15T12:00:00Z",
"organizationId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"publisherId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"imageIds": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
],
"status": "example",
"productMenuType": "example",
"uniqueName": "example",
"tags": "example",
"weekNumber": 1,
"productGroupIds": [
"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
],
"name": "example",
"description": "example",
"menuGroups": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"imageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"uniqueName": "example",
"name": "example",
"description": "example",
"menuItems": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"variantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"dayOfWeek": "example"
}
],
"dayOfWeek": 1
}
]
}
}

No Content: done, with no item to return.

Unauthorized: no bearer token, or one that is expired or not for this API.

Forbidden: the caller holds no role that allows this action at this scope. The body is empty, or a problem whose detail names the action.

Media typeapplication/json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not found: no such item in the tenant.

Media typeapplication/problem+json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Conflict: the item kept changing under concurrent writes; read it again and retry.

Media typeapplication/problem+json

An RFC 9457 problem.

object
detail
string
nullable
instance
string
nullable
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Unprocessable: the body or the change is invalid. The errors are keyed by member.

Media typeapplication/problem+json

A validation problem: the messages by member (or by JSON Pointer for a patch).

object
errors
object
key
additional properties
Array<string>
status
integer format: int32
nullable
title
string
nullable
type
string
nullable
key
additional properties

Example generated

{
"errors": {
"additionalProperty": [
"example"
]
},
"status": 1,
"title": "example",
"type": "example"
}