Update a product

PATCH /company/products/@id

Request

Authentication

This endpoint requires authentication.

Header Value
Authorization Set the value to Bearer + + access_token

URL parameters

Replace the @ keywords in the URL with their corresponding value.

A dictionary with fields

Field Type Description
id Int The ID of the product you want to update

Body

Pass the following properties via application/json or form encoding in the body of the request.

Field Type Description
name [Language: String] Name of the product
description [Language: String] Description of the product
specialty Bool Whether this product is a specialty. Specialties are also displayed in a seperate category and are highlighted with a star icon.
active Bool Inactive products are not visible in the webshop
only_order_in_store Bool Whether this product can only get ordered in the store with a seperate UI for the shop employees, and not in the public webshop.
price_type PriceType A product has a price type that defines the price calculations and the way consumers can order the product.
price UInt Price of the product (cents). Please note that this value is ignored when price_type is MULTIPLE_CHOICE.
target_price Bool Is true when it's not possible to provide an exact price of this product when ordering (e.g. not exact weight possible). This option might deactive online payments for orders with this product (shop settings).
url_type String String enumarion of 'none', 'recipe', 'website'
url URL? Nullable. An URL field starting with http:// or https://
min_max company.MinMaxSummary The allowed amounts a customer is allowed to order of a product for amount / weight / persons
option_set_ids [Int] ID's of the option sets you want to assign to this product. You can alter the order by switching the position of the ID's
allergen_ids [Int]? Nullable. ID's of the allergens of this product. Set to null if you don't want to specify allergens. Only use an empty array when the product has no allergens. It is a subtle difference but it has legal consequences if you set this to the wrong value. You can find all the available allergen ID's here.
category_id Int The category ID of the product
seo company.SeoData Optional. Product page SEO metatags
price_look_up_code String? Optional. Nullable. A String value
code String? Optional. Nullable. A custom code. You can set this to your own code and use this field to map your products to Bakeronline products

Example request 1 Update all product fields

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 1386
{
    "name": {
        "nl": "Brood",
        "en": "Bread",
        "fr": "Pain"
    },
    "description": {
        "nl": "Beschrijving",
        "en": "Description",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergen_ids": [
        1,
        4,
        6
    ],
    "price_look_up_code": "123",
    "price_type": "PER_UNIT",
    "price": 1200,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "nl": "testSeoTitle NL",
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr"
        },
        "description": {
            "nl": "testSeoDescr NL",
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr"
        },
        "url": {
            "nl": "product-nl",
            "en": "product-en",
            "fr": "product-fr"
        }
    }
}

Example request 2 Update price

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 54
{
    "price_type": "PER_PERSON",
    "price": 12345
}

Example request 3 Update option sets of a product

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 84
{
    "option_set_ids": [
        489,
        490,
        491,
        492
    ]
}

Example request 4 Update option sets of a product to invalid values

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 102
{
    "option_set_ids": [
        489,
        490,
        491,
        492,
        99951656
    ]
}

Example request 5 Update code

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 33
{
    "code": "testproductcode"
}

Example request 6 Update price type

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 32
{
    "price_type": "PER_UNIT"
}

Example request 7 Update price type

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 34
{
    "price_type": "PER_PERSON"
}

Example request 8 Move to a different category

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 26
{
    "category_id": 301
}

Example request 9 Move to an invalid category

PATCH /company/products/476 HTTP/1.1
Host: api.bakeronline.be
Authorization: Bearer 87772a7a0143c306929c2e61b0143d8cf11d4e5dedbe070a96d2b56bd44c97fcb13d183c56345943829512bcc3a45faedaef317beb67f03f1065c332ba57f82b6c9f086e2bd512f7e536e9f4fe99bdc992d54b59faa189a8c618bae9c55e6af65c4597e3
X-VERSION: 1.5.0
Accept-Language: en-US,en;q=0.5
Content-Type: application/json
Content-Length: 26
{
    "category_id": 302
}

Response

Field Type Description
name [Language: String] Name of the product
description [Language: String] Description of the product
specialty Bool Whether this product is a specialty. Specialties are also displayed in a seperate category and are highlighted with a star icon.
active Bool Inactive products are not visible in the webshop
only_order_in_store Bool Whether this product can only get ordered in the store with a seperate UI for the shop employees, and not in the public webshop.
price_type PriceType A product has a price type that defines the price calculations and the way consumers can order the product.
price UInt Price of the product (cents). Please note that this value is ignored when price_type is MULTIPLE_CHOICE.
target_price Bool Is true when it's not possible to provide an exact price of this product when ordering (e.g. not exact weight possible). This option might deactive online payments for orders with this product (shop settings).
url_type String String enumarion of 'none', 'recipe', 'website'
url URL? Nullable. An URL field starting with http:// or https://
min_max company.MinMaxSummary The allowed amounts a customer is allowed to order of a product for amount / weight / persons
images [Image] Array of Image
product_prices [company.ProductPrice] Array of company.ProductPrice
option_sets [company.OptionSet.simple] Array of company.OptionSet.simple
id Int Id of the product
allergens [Allergen]? Nullable. The allergens of this product. An empty array means no allergens. Null means no allergens specified (= can have allergens, ask in shop).
category_id Int The category ID of the product
price_look_up_code String? Nullable. A String value
code String? Nullable. A custom code. You can set this to your own code and use this field to map your products to Bakeronline products
seo company.SeoData Optional. Product page SEO metatags

Example response 1 Update all product fields

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 2228

{
    "id": 476,
    "name": {
        "nl": "Brood",
        "en": "Bread",
        "fr": "Pain"
    },
    "description": {
        "nl": "Beschrijving",
        "en": "Description",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergens": [
        {
            "id": 1,
            "name": "1319"
        },
        {
            "id": 4,
            "name": "1322"
        },
        {
            "id": 6,
            "name": "1324"
        }
    ],
    "price_look_up_code": "123",
    "price_type": "PER_UNIT",
    "price": 1200,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "nl": "testSeoTitle NL",
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr"
        },
        "description": {
            "nl": "testSeoDescr NL",
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr"
        },
        "url": {
            "nl": "product-nl",
            "en": "product-en",
            "fr": "product-fr"
        }
    },
    "code": null,
    "category_id": 300,
    "images": [
        {
            "resolutions": [
                {
                    "src": "https://bakeronline.be/uploads/tests/250x200/product-klein-bruin-boerebrood.jpg",
                    "width": 300,
                    "height": 200
                },
                {
                    "src": "https://bakeronline.be/uploads/tests/1080x720/product-klein-bruin-boerebrood.jpg",
                    "width": 1080,
                    "height": 720
                }
            ],
            "white_background": true
        }
    ],
    "product_prices": [],
    "option_sets": []
}

Example response 2 Update price

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 2231

{
    "id": 476,
    "name": {
        "en": "Bread",
        "nl": "Brood",
        "fr": "Pain"
    },
    "description": {
        "en": "Description",
        "nl": "Beschrijving",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergens": [
        {
            "id": 1,
            "name": "1319"
        },
        {
            "id": 4,
            "name": "1322"
        },
        {
            "id": 6,
            "name": "1324"
        }
    ],
    "price_look_up_code": "123",
    "price_type": "PER_PERSON",
    "price": 12345,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr",
            "nl": "testSeoTitle NL"
        },
        "description": {
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr",
            "nl": "testSeoDescr NL"
        },
        "url": {
            "en": "product-en",
            "fr": "product-fr",
            "nl": "product-nl"
        }
    },
    "code": null,
    "category_id": 300,
    "images": [
        {
            "resolutions": [
                {
                    "src": "https://bakeronline.be/uploads/tests/250x200/product-klein-bruin-boerebrood.jpg",
                    "width": 300,
                    "height": 200
                },
                {
                    "src": "https://bakeronline.be/uploads/tests/1080x720/product-klein-bruin-boerebrood.jpg",
                    "width": 1080,
                    "height": 720
                }
            ],
            "white_background": true
        }
    ],
    "product_prices": [],
    "option_sets": []
}

Example response 3 Update option sets of a product

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 3045

{
    "id": 476,
    "name": {
        "en": "Bread",
        "nl": "Brood",
        "fr": "Pain"
    },
    "description": {
        "en": "Description",
        "nl": "Beschrijving",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergens": [
        {
            "id": 1,
            "name": "1319"
        },
        {
            "id": 4,
            "name": "1322"
        },
        {
            "id": 6,
            "name": "1324"
        }
    ],
    "price_look_up_code": "123",
    "price_type": "PER_PERSON",
    "price": 12345,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr",
            "nl": "testSeoTitle NL"
        },
        "description": {
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr",
            "nl": "testSeoDescr NL"
        },
        "url": {
            "en": "product-en",
            "fr": "product-fr",
            "nl": "product-nl"
        }
    },
    "code": null,
    "category_id": 300,
    "images": [
        {
            "resolutions": [
                {
                    "src": "https://bakeronline.be/uploads/tests/250x200/product-klein-bruin-boerebrood.jpg",
                    "width": 300,
                    "height": 200
                },
                {
                    "src": "https://bakeronline.be/uploads/tests/1080x720/product-klein-bruin-boerebrood.jpg",
                    "width": 1080,
                    "height": 720
                }
            ],
            "white_background": true
        }
    ],
    "product_prices": [],
    "option_sets": [
        {
            "id": 489,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 490,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 491,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 492,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        }
    ]
}

Example response 4 Update option sets of a product to invalid values

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
Content-Length: 172

{
    "code": "invalid_field",
    "message": "The provided option_set_id does not belong to the company of the product or doesn't exist",
    "field": "option_set_ids.4"
}

Example response 5 Update code

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 3058

{
    "id": 476,
    "name": {
        "en": "Bread",
        "nl": "Brood",
        "fr": "Pain"
    },
    "description": {
        "en": "Description",
        "nl": "Beschrijving",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergens": [
        {
            "id": 1,
            "name": "1319"
        },
        {
            "id": 4,
            "name": "1322"
        },
        {
            "id": 6,
            "name": "1324"
        }
    ],
    "price_look_up_code": "123",
    "price_type": "PER_PERSON",
    "price": 12345,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr",
            "nl": "testSeoTitle NL"
        },
        "description": {
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr",
            "nl": "testSeoDescr NL"
        },
        "url": {
            "en": "product-en",
            "fr": "product-fr",
            "nl": "product-nl"
        }
    },
    "code": "testproductcode",
    "category_id": 300,
    "images": [
        {
            "resolutions": [
                {
                    "src": "https://bakeronline.be/uploads/tests/250x200/product-klein-bruin-boerebrood.jpg",
                    "width": 300,
                    "height": 200
                },
                {
                    "src": "https://bakeronline.be/uploads/tests/1080x720/product-klein-bruin-boerebrood.jpg",
                    "width": 1080,
                    "height": 720
                }
            ],
            "white_background": true
        }
    ],
    "product_prices": [],
    "option_sets": [
        {
            "id": 489,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 490,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 491,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 492,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        }
    ]
}

Example response 6 Update price type

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 3056

{
    "id": 476,
    "name": {
        "en": "Bread",
        "nl": "Brood",
        "fr": "Pain"
    },
    "description": {
        "en": "Description",
        "nl": "Beschrijving",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergens": [
        {
            "id": 1,
            "name": "1319"
        },
        {
            "id": 4,
            "name": "1322"
        },
        {
            "id": 6,
            "name": "1324"
        }
    ],
    "price_look_up_code": "123",
    "price_type": "PER_UNIT",
    "price": 12345,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr",
            "nl": "testSeoTitle NL"
        },
        "description": {
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr",
            "nl": "testSeoDescr NL"
        },
        "url": {
            "en": "product-en",
            "fr": "product-fr",
            "nl": "product-nl"
        }
    },
    "code": "testproductcode",
    "category_id": 300,
    "images": [
        {
            "resolutions": [
                {
                    "src": "https://bakeronline.be/uploads/tests/250x200/product-klein-bruin-boerebrood.jpg",
                    "width": 300,
                    "height": 200
                },
                {
                    "src": "https://bakeronline.be/uploads/tests/1080x720/product-klein-bruin-boerebrood.jpg",
                    "width": 1080,
                    "height": 720
                }
            ],
            "white_background": true
        }
    ],
    "product_prices": [],
    "option_sets": [
        {
            "id": 489,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 490,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 491,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 492,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        }
    ]
}

Example response 7 Update price type

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 3058

{
    "id": 476,
    "name": {
        "en": "Bread",
        "nl": "Brood",
        "fr": "Pain"
    },
    "description": {
        "en": "Description",
        "nl": "Beschrijving",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergens": [
        {
            "id": 1,
            "name": "1319"
        },
        {
            "id": 4,
            "name": "1322"
        },
        {
            "id": 6,
            "name": "1324"
        }
    ],
    "price_look_up_code": "123",
    "price_type": "PER_PERSON",
    "price": 12345,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr",
            "nl": "testSeoTitle NL"
        },
        "description": {
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr",
            "nl": "testSeoDescr NL"
        },
        "url": {
            "en": "product-en",
            "fr": "product-fr",
            "nl": "product-nl"
        }
    },
    "code": "testproductcode",
    "category_id": 300,
    "images": [
        {
            "resolutions": [
                {
                    "src": "https://bakeronline.be/uploads/tests/250x200/product-klein-bruin-boerebrood.jpg",
                    "width": 300,
                    "height": 200
                },
                {
                    "src": "https://bakeronline.be/uploads/tests/1080x720/product-klein-bruin-boerebrood.jpg",
                    "width": 1080,
                    "height": 720
                }
            ],
            "white_background": true
        }
    ],
    "product_prices": [],
    "option_sets": [
        {
            "id": 489,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 490,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 491,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 492,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        }
    ]
}

Example response 8 Move to a different category

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 3058

{
    "id": 476,
    "name": {
        "en": "Bread",
        "nl": "Brood",
        "fr": "Pain"
    },
    "description": {
        "en": "Description",
        "nl": "Beschrijving",
        "fr": "Description"
    },
    "specialty": false,
    "active": true,
    "only_order_in_store": false,
    "allergens": [
        {
            "id": 1,
            "name": "1319"
        },
        {
            "id": 4,
            "name": "1322"
        },
        {
            "id": 6,
            "name": "1324"
        }
    ],
    "price_look_up_code": "123",
    "price_type": "PER_PERSON",
    "price": 12345,
    "target_price": false,
    "url_type": "recipe",
    "url": "https://www.google.be",
    "min_max": {
        "amount": {
            "minimum": 1,
            "maximum": 100,
            "maximum_day": 200,
            "maximum_week": 400
        },
        "weight": {
            "minimum": 100,
            "maximum": 2012,
            "maximum_day": 10000,
            "maximum_week": 20000,
            "suggested": 200
        },
        "persons": {
            "minimum": 1,
            "maximum": 101
        }
    },
    "seo": {
        "title": {
            "en": "testSeoTitle en",
            "fr": "testSeoTitle fr",
            "nl": "testSeoTitle NL"
        },
        "description": {
            "en": "testSeoDescr en",
            "fr": "testSeoDescr fr",
            "nl": "testSeoDescr NL"
        },
        "url": {
            "en": "product-en",
            "fr": "product-fr",
            "nl": "product-nl"
        }
    },
    "code": "testproductcode",
    "category_id": 301,
    "images": [
        {
            "resolutions": [
                {
                    "src": "https://bakeronline.be/uploads/tests/250x200/product-klein-bruin-boerebrood.jpg",
                    "width": 300,
                    "height": 200
                },
                {
                    "src": "https://bakeronline.be/uploads/tests/1080x720/product-klein-bruin-boerebrood.jpg",
                    "width": 1080,
                    "height": 720
                }
            ],
            "white_background": true
        }
    ],
    "product_prices": [],
    "option_sets": [
        {
            "id": 489,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 490,
            "name": {
                "fr": "Do you want your bread sliced?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 491,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        },
        {
            "id": 492,
            "name": {
                "fr": "Do you want a picture on your cake?"
            },
            "allow_attachment": false,
            "code": null
        }
    ]
}

Example response 9 Move to an invalid category

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8
Content-Length: 165

{
    "code": "invalid_field",
    "message": "The provided category_id does not belong to the company of the product or doesn't exist",
    "field": "category_id"
}
1.5.0 stable