curl --request POST \
--url https://api.jtl-cloud.com/erp/categories \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"Name": "Binoculars",
"Description": "Best Binoculars",
"ParentCategoryId": 123,
"SortNumber": 1,
"ActiveSalesChannels": "1-1-1"
}
'import requests
url = "https://api.jtl-cloud.com/erp/categories"
payload = {
"Name": "Binoculars",
"Description": "Best Binoculars",
"ParentCategoryId": 123,
"SortNumber": 1,
"ActiveSalesChannels": "1-1-1"
}
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({
Name: 'Binoculars',
Description: 'Best Binoculars',
ParentCategoryId: 123,
SortNumber: 1,
ActiveSalesChannels: '1-1-1'
})
};
fetch('https://api.jtl-cloud.com/erp/categories', 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/categories",
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([
'Name' => 'Binoculars',
'Description' => 'Best Binoculars',
'ParentCategoryId' => 123,
'SortNumber' => 1,
'ActiveSalesChannels' => '1-1-1'
]),
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/categories"
payload := strings.NewReader("{\n \"Name\": \"Binoculars\",\n \"Description\": \"Best Binoculars\",\n \"ParentCategoryId\": 123,\n \"SortNumber\": 1,\n \"ActiveSalesChannels\": \"1-1-1\"\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/categories")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"Binoculars\",\n \"Description\": \"Best Binoculars\",\n \"ParentCategoryId\": 123,\n \"SortNumber\": 1,\n \"ActiveSalesChannels\": \"1-1-1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/categories")
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 \"Name\": \"Binoculars\",\n \"Description\": \"Best Binoculars\",\n \"ParentCategoryId\": 123,\n \"SortNumber\": 1,\n \"ActiveSalesChannels\": \"1-1-1\"\n}"
response = http.request(request)
puts response.read_body{
"Id": 123,
"Name": "Binoculars",
"Description": "Best Binoculars",
"ParentCategoryId": 123,
"Level": 2,
"SortNumber": 1,
"ActiveSalesChannels": "1-1-1"
}{
"ErrorCode": "<string>",
"ValidationErrors": {},
"Errors": {},
"ErrorMessage": "<string>",
"Stacktrace": "<string>"
}Create Category
Create a new category
curl --request POST \
--url https://api.jtl-cloud.com/erp/categories \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"Name": "Binoculars",
"Description": "Best Binoculars",
"ParentCategoryId": 123,
"SortNumber": 1,
"ActiveSalesChannels": "1-1-1"
}
'import requests
url = "https://api.jtl-cloud.com/erp/categories"
payload = {
"Name": "Binoculars",
"Description": "Best Binoculars",
"ParentCategoryId": 123,
"SortNumber": 1,
"ActiveSalesChannels": "1-1-1"
}
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({
Name: 'Binoculars',
Description: 'Best Binoculars',
ParentCategoryId: 123,
SortNumber: 1,
ActiveSalesChannels: '1-1-1'
})
};
fetch('https://api.jtl-cloud.com/erp/categories', 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/categories",
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([
'Name' => 'Binoculars',
'Description' => 'Best Binoculars',
'ParentCategoryId' => 123,
'SortNumber' => 1,
'ActiveSalesChannels' => '1-1-1'
]),
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/categories"
payload := strings.NewReader("{\n \"Name\": \"Binoculars\",\n \"Description\": \"Best Binoculars\",\n \"ParentCategoryId\": 123,\n \"SortNumber\": 1,\n \"ActiveSalesChannels\": \"1-1-1\"\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/categories")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"Name\": \"Binoculars\",\n \"Description\": \"Best Binoculars\",\n \"ParentCategoryId\": 123,\n \"SortNumber\": 1,\n \"ActiveSalesChannels\": \"1-1-1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/categories")
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 \"Name\": \"Binoculars\",\n \"Description\": \"Best Binoculars\",\n \"ParentCategoryId\": 123,\n \"SortNumber\": 1,\n \"ActiveSalesChannels\": \"1-1-1\"\n}"
response = http.request(request)
puts response.read_body{
"Id": 123,
"Name": "Binoculars",
"Description": "Best Binoculars",
"ParentCategoryId": 123,
"Level": 2,
"SortNumber": 1,
"ActiveSalesChannels": "1-1-1"
}{
"ErrorCode": "<string>",
"ValidationErrors": {},
"Errors": {},
"ErrorMessage": "<string>",
"Stacktrace": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
The User-Id (int or uuid) on whose behalf the request is executed. Requires scope 'Application.RunAs'.
The tenant ID for the target ERP instance.
Body
The category to create.
Response
The created category.
Model Class: Category
Name of the category in the default language of JTL-Wawi.
"Binoculars"
Category description in the default language of JTL-Wawi.
"Best Binoculars"
Returns the category level number within its category tree. A root category without a parent has a level 1.
2
The category sort number used in some sales channels for arranging the categories.
1
The list of active sales channels for this category. The items must be activated individually. Only online shops and JTL-POS are allowed. Sales channels removed from this list will be deactivated for this category.
"1-1-1"
Was this page helpful?