curl --request PUT \
--url https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"maxFilesPerArchive": 123,
"quickSyncArticleCount": 123,
"maxImagesPerArchive": 123,
"orderTransferCount": 123,
"maxArchiveSizeInKilobytes": 123,
"maxImageArchiveSizeInKilobytes": 123
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters"
payload = {
"maxFilesPerArchive": 123,
"quickSyncArticleCount": 123,
"maxImagesPerArchive": 123,
"orderTransferCount": 123,
"maxArchiveSizeInKilobytes": 123,
"maxImageArchiveSizeInKilobytes": 123
}
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
maxFilesPerArchive: 123,
quickSyncArticleCount: 123,
maxImagesPerArchive: 123,
orderTransferCount: 123,
maxArchiveSizeInKilobytes: 123,
maxImageArchiveSizeInKilobytes: 123
})
};
fetch('https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters', 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/sales-channels/{salesChannelId}/shop/transfer-parameters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'maxFilesPerArchive' => 123,
'quickSyncArticleCount' => 123,
'maxImagesPerArchive' => 123,
'orderTransferCount' => 123,
'maxArchiveSizeInKilobytes' => 123,
'maxImageArchiveSizeInKilobytes' => 123
]),
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/sales-channels/{salesChannelId}/shop/transfer-parameters"
payload := strings.NewReader("{\n \"maxFilesPerArchive\": 123,\n \"quickSyncArticleCount\": 123,\n \"maxImagesPerArchive\": 123,\n \"orderTransferCount\": 123,\n \"maxArchiveSizeInKilobytes\": 123,\n \"maxImageArchiveSizeInKilobytes\": 123\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"maxFilesPerArchive\": 123,\n \"quickSyncArticleCount\": 123,\n \"maxImagesPerArchive\": 123,\n \"orderTransferCount\": 123,\n \"maxArchiveSizeInKilobytes\": 123,\n \"maxImageArchiveSizeInKilobytes\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"maxFilesPerArchive\": 123,\n \"quickSyncArticleCount\": 123,\n \"maxImagesPerArchive\": 123,\n \"orderTransferCount\": 123,\n \"maxArchiveSizeInKilobytes\": 123,\n \"maxImageArchiveSizeInKilobytes\": 123\n}"
response = http.request(request)
puts response.read_body{
"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>"
}
]
}Save Shop Transfer Parameters
Saves the transfer parameters for JTL-Shop synchronization (archive sizes, quick-sync and order transfer batch sizes). Important: these parameters are global; they apply to every JTL-Shop instance of the tenant, not only to the shop in the route. The sales channel id must identify an existing JTL-Wawi-managed online shop (otherwise it is reported as not found), but does not limit the scope of the change. The saved values can be read with “GET /v2/sales-channels//shop/transfer-parameters” or “GetShopTransferParameters”.
curl --request PUT \
--url https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"maxFilesPerArchive": 123,
"quickSyncArticleCount": 123,
"maxImagesPerArchive": 123,
"orderTransferCount": 123,
"maxArchiveSizeInKilobytes": 123,
"maxImageArchiveSizeInKilobytes": 123
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters"
payload = {
"maxFilesPerArchive": 123,
"quickSyncArticleCount": 123,
"maxImagesPerArchive": 123,
"orderTransferCount": 123,
"maxArchiveSizeInKilobytes": 123,
"maxImageArchiveSizeInKilobytes": 123
}
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
maxFilesPerArchive: 123,
quickSyncArticleCount: 123,
maxImagesPerArchive: 123,
orderTransferCount: 123,
maxArchiveSizeInKilobytes: 123,
maxImageArchiveSizeInKilobytes: 123
})
};
fetch('https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters', 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/sales-channels/{salesChannelId}/shop/transfer-parameters",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'maxFilesPerArchive' => 123,
'quickSyncArticleCount' => 123,
'maxImagesPerArchive' => 123,
'orderTransferCount' => 123,
'maxArchiveSizeInKilobytes' => 123,
'maxImageArchiveSizeInKilobytes' => 123
]),
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/sales-channels/{salesChannelId}/shop/transfer-parameters"
payload := strings.NewReader("{\n \"maxFilesPerArchive\": 123,\n \"quickSyncArticleCount\": 123,\n \"maxImagesPerArchive\": 123,\n \"orderTransferCount\": 123,\n \"maxArchiveSizeInKilobytes\": 123,\n \"maxImageArchiveSizeInKilobytes\": 123\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"maxFilesPerArchive\": 123,\n \"quickSyncArticleCount\": 123,\n \"maxImagesPerArchive\": 123,\n \"orderTransferCount\": 123,\n \"maxArchiveSizeInKilobytes\": 123,\n \"maxImageArchiveSizeInKilobytes\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/sales-channels/{salesChannelId}/shop/transfer-parameters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"maxFilesPerArchive\": 123,\n \"quickSyncArticleCount\": 123,\n \"maxImagesPerArchive\": 123,\n \"orderTransferCount\": 123,\n \"maxArchiveSizeInKilobytes\": 123,\n \"maxImageArchiveSizeInKilobytes\": 123\n}"
response = http.request(request)
puts response.read_body{
"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
The tenant ID for the target ERP instance.
Path Parameters
Sales channel id of the shop, used only to validate that an existing JTL-Wawi-managed online shop is addressed. Opaque, tenant-local composite identifier (not a UUID); use the value returned by a sales channel listing. Does not scope which shop's transfer parameters are written; see the command description.
Body
Request model for SaveShopTransferParameters command endpoint. Route parameters bind from the route, query parameters from the query string, everything else from the body.
Threshold for the number of files in an item export archive that triggers sending it to the JTL-Shop, before its target size (MaxArchiveSizeInKilobytes) is reached. Must be at least 1. No upper limit.
Number of items transferred per quick-sync run. Must be at least 1. No upper limit.
Threshold for the number of images in an image export archive that triggers sending it to the JTL-Shop, before its target size (MaxImageArchiveSizeInKilobytes) is reached. Must be at least 1. No upper limit.
Number of orders transferred per order transfer run. Must be between 1 and 50.
Target size, in kilobytes, of an item export archive that triggers sending it to the JTL-Shop, before its file-count threshold (MaxFilesPerArchive) is reached. Must be at least 1. No upper limit.
Target size, in kilobytes, of an image export archive that triggers sending it to the JTL-Shop, before its file-count threshold (MaxImagesPerArchive) is reached. Must be at least 1. No upper limit.
Response
The shop transfer parameters were saved.
Was this page helpful?