curl --request POST \
--url https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-items/convert \
--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-items/convert"
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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
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-items/convert', 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-items/convert",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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-items/convert"
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("POST", 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.post("https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-items/convert")
.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-items/convert")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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>"
}
]
}Converts an existing standard item into a stock item, so that its stock is managed in warehouses from then on.
Converts an existing standard item into a stock item, so that its stock is managed in warehouses from then on. The full stock management configuration is mandatory, because the item has no such configuration to fall back on yet. Use POST /v2/items//standard-items/convert for the opposite direction.
curl --request POST \
--url https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-items/convert \
--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-items/convert"
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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
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-items/convert', 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-items/convert",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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-items/convert"
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("POST", 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.post("https://api.jtl-cloud.com/erp/v2/items/{itemId}/stock-items/convert")
.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-items/convert")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.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 item that is converted into a stock item.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Body
Request model for ConvertStandardItemToStockItem command endpoint. Route parameters bind from the route, query parameters from the query string, everything else from the body.
The stock management configuration the item receives. All mandatory settings must be supplied.
Show child attributes
Show child attributes
Response
The item was successfully converted into a stock item.
Converts an existing standard item into a stock item, so that its stock is managed in warehouses from then on. The full stock management configuration is mandatory, because the item has no such configuration to fall back on yet. Use POST /v2/items/{itemId}/standard-items/convert for the opposite direction. - Response
Unique ID of the converted item. Unchanged - a stock item keeps the ID it had as a standard item.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Was this page helpful?