curl --request PATCH \
--url https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"stockManagement": {
"hasShelfLifeExpirationDate": true,
"hasBatch": true,
"allowNegativeStock": true,
"buffer": 123,
"globalMinimumStockLevel": 123,
"itemPlatformNegativeStocks": [
{
"platformId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"isNegativeStockAllowed": true
}
],
"itemSalesChannelNegativeStocks": [
{
"salesChannelId": "<string>",
"isNegativeStockAllowed": true
}
]
}
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management"
payload = { "stockManagement": {
"hasShelfLifeExpirationDate": True,
"hasBatch": True,
"allowNegativeStock": True,
"buffer": 123,
"globalMinimumStockLevel": 123,
"itemPlatformNegativeStocks": [
{
"platformId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"isNegativeStockAllowed": True
}
],
"itemSalesChannelNegativeStocks": [
{
"salesChannelId": "<string>",
"isNegativeStockAllowed": True
}
]
} }
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
stockManagement: {
hasShelfLifeExpirationDate: true,
hasBatch: true,
allowNegativeStock: true,
buffer: 123,
globalMinimumStockLevel: 123,
itemPlatformNegativeStocks: [
{
platformId: 'b45f6432-2462-4c6f-b00f-1d9d01000000',
isNegativeStockAllowed: true
}
],
itemSalesChannelNegativeStocks: [{salesChannelId: '<string>', isNegativeStockAllowed: true}]
}
})
};
fetch('https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'stockManagement' => [
'hasShelfLifeExpirationDate' => true,
'hasBatch' => true,
'allowNegativeStock' => true,
'buffer' => 123,
'globalMinimumStockLevel' => 123,
'itemPlatformNegativeStocks' => [
[
'platformId' => 'b45f6432-2462-4c6f-b00f-1d9d01000000',
'isNegativeStockAllowed' => true
]
],
'itemSalesChannelNegativeStocks' => [
[
'salesChannelId' => '<string>',
'isNegativeStockAllowed' => true
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-tenant-id: <x-tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management"
payload := strings.NewReader("{\n \"stockManagement\": {\n \"hasShelfLifeExpirationDate\": true,\n \"hasBatch\": true,\n \"allowNegativeStock\": true,\n \"buffer\": 123,\n \"globalMinimumStockLevel\": 123,\n \"itemPlatformNegativeStocks\": [\n {\n \"platformId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"isNegativeStockAllowed\": true\n }\n ],\n \"itemSalesChannelNegativeStocks\": [\n {\n \"salesChannelId\": \"<string>\",\n \"isNegativeStockAllowed\": true\n }\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-tenant-id", "<x-tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"stockManagement\": {\n \"hasShelfLifeExpirationDate\": true,\n \"hasBatch\": true,\n \"allowNegativeStock\": true,\n \"buffer\": 123,\n \"globalMinimumStockLevel\": 123,\n \"itemPlatformNegativeStocks\": [\n {\n \"platformId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"isNegativeStockAllowed\": true\n }\n ],\n \"itemSalesChannelNegativeStocks\": [\n {\n \"salesChannelId\": \"<string>\",\n \"isNegativeStockAllowed\": true\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"stockManagement\": {\n \"hasShelfLifeExpirationDate\": true,\n \"hasBatch\": true,\n \"allowNegativeStock\": true,\n \"buffer\": 123,\n \"globalMinimumStockLevel\": 123,\n \"itemPlatformNegativeStocks\": [\n {\n \"platformId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"isNegativeStockAllowed\": true\n }\n ],\n \"itemSalesChannelNegativeStocks\": [\n {\n \"salesChannelId\": \"<string>\",\n \"isNegativeStockAllowed\": true\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"itemId": "b45f6432-2462-4c6f-b00f-1d9d01000000"
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}Updates the stock management configuration of an existing stock item.
Updates the stock management configuration of an existing stock item. Every field is optional - omitted fields keep their current value, and a request that supplies no setting at all succeeds with 200 without changing anything. The item must already be a stock item; use POST /v2/items//stock-items/convert to turn a standard item into one first.
curl --request PATCH \
--url https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"stockManagement": {
"hasShelfLifeExpirationDate": true,
"hasBatch": true,
"allowNegativeStock": true,
"buffer": 123,
"globalMinimumStockLevel": 123,
"itemPlatformNegativeStocks": [
{
"platformId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"isNegativeStockAllowed": true
}
],
"itemSalesChannelNegativeStocks": [
{
"salesChannelId": "<string>",
"isNegativeStockAllowed": true
}
]
}
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management"
payload = { "stockManagement": {
"hasShelfLifeExpirationDate": True,
"hasBatch": True,
"allowNegativeStock": True,
"buffer": 123,
"globalMinimumStockLevel": 123,
"itemPlatformNegativeStocks": [
{
"platformId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"isNegativeStockAllowed": True
}
],
"itemSalesChannelNegativeStocks": [
{
"salesChannelId": "<string>",
"isNegativeStockAllowed": True
}
]
} }
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
stockManagement: {
hasShelfLifeExpirationDate: true,
hasBatch: true,
allowNegativeStock: true,
buffer: 123,
globalMinimumStockLevel: 123,
itemPlatformNegativeStocks: [
{
platformId: 'b45f6432-2462-4c6f-b00f-1d9d01000000',
isNegativeStockAllowed: true
}
],
itemSalesChannelNegativeStocks: [{salesChannelId: '<string>', isNegativeStockAllowed: true}]
}
})
};
fetch('https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'stockManagement' => [
'hasShelfLifeExpirationDate' => true,
'hasBatch' => true,
'allowNegativeStock' => true,
'buffer' => 123,
'globalMinimumStockLevel' => 123,
'itemPlatformNegativeStocks' => [
[
'platformId' => 'b45f6432-2462-4c6f-b00f-1d9d01000000',
'isNegativeStockAllowed' => true
]
],
'itemSalesChannelNegativeStocks' => [
[
'salesChannelId' => '<string>',
'isNegativeStockAllowed' => true
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-tenant-id: <x-tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management"
payload := strings.NewReader("{\n \"stockManagement\": {\n \"hasShelfLifeExpirationDate\": true,\n \"hasBatch\": true,\n \"allowNegativeStock\": true,\n \"buffer\": 123,\n \"globalMinimumStockLevel\": 123,\n \"itemPlatformNegativeStocks\": [\n {\n \"platformId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"isNegativeStockAllowed\": true\n }\n ],\n \"itemSalesChannelNegativeStocks\": [\n {\n \"salesChannelId\": \"<string>\",\n \"isNegativeStockAllowed\": true\n }\n ]\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-tenant-id", "<x-tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"stockManagement\": {\n \"hasShelfLifeExpirationDate\": true,\n \"hasBatch\": true,\n \"allowNegativeStock\": true,\n \"buffer\": 123,\n \"globalMinimumStockLevel\": 123,\n \"itemPlatformNegativeStocks\": [\n {\n \"platformId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"isNegativeStockAllowed\": true\n }\n ],\n \"itemSalesChannelNegativeStocks\": [\n {\n \"salesChannelId\": \"<string>\",\n \"isNegativeStockAllowed\": true\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-management")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"stockManagement\": {\n \"hasShelfLifeExpirationDate\": true,\n \"hasBatch\": true,\n \"allowNegativeStock\": true,\n \"buffer\": 123,\n \"globalMinimumStockLevel\": 123,\n \"itemPlatformNegativeStocks\": [\n {\n \"platformId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"isNegativeStockAllowed\": true\n }\n ],\n \"itemSalesChannelNegativeStocks\": [\n {\n \"salesChannelId\": \"<string>\",\n \"isNegativeStockAllowed\": true\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"itemId": "b45f6432-2462-4c6f-b00f-1d9d01000000"
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
Optional, client-generated key for deduplicating repeated write requests. A repeated request with the same key returns the originally recorded result instead of executing the effect again.
1 - 255The tenant ID for the target ERP instance.
Path Parameters
Unique ID of the stock item whose stock management configuration is updated.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Body
Request model for ChangeStockItem command endpoint. Route parameters bind from the route, query parameters from the query string, everything else from the body.
The stock management settings to change. Omitted settings keep their current value.
Show child attributes
Show child attributes
Response
The stock management configuration was successfully updated.
Updates the stock management configuration of an existing stock item. Every field is optional - omitted fields keep their current value, and a request that supplies no setting at all succeeds with 200 without changing anything. The item must already be a stock item; use POST /v2/items/{itemId}/stock-items/convert to turn a standard item into one first. - Response
Unique ID of the updated stock item.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Was this page helpful?