curl --request POST \
--url https://api.fabric.inc/v3/location-zones \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"zoneName": "US_LOCATIONS",
"zoneType": "ABSOLUTE",
"description": "Specific zone for US Locations",
"locations": [
{
"priority": 1,
"locationNumber": 23
}
],
"tiers": [
{
"filters": [
{
"field": "location.locationNum",
"condition": "EQ",
"value": "<unknown>",
"group": "GroupA"
}
],
"sort": "+location.createdAt",
"tier": 123
}
]
}
'import requests
url = "https://api.fabric.inc/v3/location-zones"
payload = {
"zoneName": "US_LOCATIONS",
"zoneType": "ABSOLUTE",
"description": "Specific zone for US Locations",
"locations": [
{
"priority": 1,
"locationNumber": 23
}
],
"tiers": [
{
"filters": [
{
"field": "location.locationNum",
"condition": "EQ",
"value": "<unknown>",
"group": "GroupA"
}
],
"sort": "+location.createdAt",
"tier": 123
}
]
}
headers = {
"x-fabric-tenant-id": "<x-fabric-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-fabric-tenant-id': '<x-fabric-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
zoneName: 'US_LOCATIONS',
zoneType: 'ABSOLUTE',
description: 'Specific zone for US Locations',
locations: [{priority: 1, locationNumber: 23}],
tiers: [
{
filters: [
{
field: 'location.locationNum',
condition: 'EQ',
value: '<unknown>',
group: 'GroupA'
}
],
sort: '+location.createdAt',
tier: 123
}
]
})
};
fetch('https://api.fabric.inc/v3/location-zones', 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.fabric.inc/v3/location-zones",
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([
'zoneName' => 'US_LOCATIONS',
'zoneType' => 'ABSOLUTE',
'description' => 'Specific zone for US Locations',
'locations' => [
[
'priority' => 1,
'locationNumber' => 23
]
],
'tiers' => [
[
'filters' => [
[
'field' => 'location.locationNum',
'condition' => 'EQ',
'value' => '<unknown>',
'group' => 'GroupA'
]
],
'sort' => '+location.createdAt',
'tier' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-tenant-id: <x-fabric-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.fabric.inc/v3/location-zones"
payload := strings.NewReader("{\n \"zoneName\": \"US_LOCATIONS\",\n \"zoneType\": \"ABSOLUTE\",\n \"description\": \"Specific zone for US Locations\",\n \"locations\": [\n {\n \"priority\": 1,\n \"locationNumber\": 23\n }\n ],\n \"tiers\": [\n {\n \"filters\": [\n {\n \"field\": \"location.locationNum\",\n \"condition\": \"EQ\",\n \"value\": \"<unknown>\",\n \"group\": \"GroupA\"\n }\n ],\n \"sort\": \"+location.createdAt\",\n \"tier\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-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.fabric.inc/v3/location-zones")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"zoneName\": \"US_LOCATIONS\",\n \"zoneType\": \"ABSOLUTE\",\n \"description\": \"Specific zone for US Locations\",\n \"locations\": [\n {\n \"priority\": 1,\n \"locationNumber\": 23\n }\n ],\n \"tiers\": [\n {\n \"filters\": [\n {\n \"field\": \"location.locationNum\",\n \"condition\": \"EQ\",\n \"value\": \"<unknown>\",\n \"group\": \"GroupA\"\n }\n ],\n \"sort\": \"+location.createdAt\",\n \"tier\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/location-zones")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"zoneName\": \"US_LOCATIONS\",\n \"zoneType\": \"ABSOLUTE\",\n \"description\": \"Specific zone for US Locations\",\n \"locations\": [\n {\n \"priority\": 1,\n \"locationNumber\": 23\n }\n ],\n \"tiers\": [\n {\n \"filters\": [\n {\n \"field\": \"location.locationNum\",\n \"condition\": \"EQ\",\n \"value\": \"<unknown>\",\n \"group\": \"GroupA\"\n }\n ],\n \"sort\": \"+location.createdAt\",\n \"tier\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"zoneName": "US_LOCATIONS",
"zoneType": "ABSOLUTE",
"zoneId": "9372919a8219e8",
"description": "Specific zone for US Locations",
"locations": [
{
"priority": 1,
"locationNumber": 23
}
],
"tiers": [
{
"filters": [
{
"field": "location.locationNum",
"condition": "EQ",
"value": "<unknown>",
"group": "GroupA"
}
],
"sort": "+location.createdAt",
"tier": 123
}
],
"createdAt": "2022-05-12T09:30:31.198Z",
"updatedAt": "2022-05-12T09:30:31.198Z"
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory param(s): `requiredField1` is/are missing",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value(s) specified for 'requiredField.field3'",
"errors": []
}
],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders/OrderId_12345"
}
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "inventories",
"endpoint": "POST /v3/inventories/actions/find-by-geography"
}
}Create Zone
Creates a new location zone with associated metadata and geographies.
curl --request POST \
--url https://api.fabric.inc/v3/location-zones \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"zoneName": "US_LOCATIONS",
"zoneType": "ABSOLUTE",
"description": "Specific zone for US Locations",
"locations": [
{
"priority": 1,
"locationNumber": 23
}
],
"tiers": [
{
"filters": [
{
"field": "location.locationNum",
"condition": "EQ",
"value": "<unknown>",
"group": "GroupA"
}
],
"sort": "+location.createdAt",
"tier": 123
}
]
}
'import requests
url = "https://api.fabric.inc/v3/location-zones"
payload = {
"zoneName": "US_LOCATIONS",
"zoneType": "ABSOLUTE",
"description": "Specific zone for US Locations",
"locations": [
{
"priority": 1,
"locationNumber": 23
}
],
"tiers": [
{
"filters": [
{
"field": "location.locationNum",
"condition": "EQ",
"value": "<unknown>",
"group": "GroupA"
}
],
"sort": "+location.createdAt",
"tier": 123
}
]
}
headers = {
"x-fabric-tenant-id": "<x-fabric-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-fabric-tenant-id': '<x-fabric-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
zoneName: 'US_LOCATIONS',
zoneType: 'ABSOLUTE',
description: 'Specific zone for US Locations',
locations: [{priority: 1, locationNumber: 23}],
tiers: [
{
filters: [
{
field: 'location.locationNum',
condition: 'EQ',
value: '<unknown>',
group: 'GroupA'
}
],
sort: '+location.createdAt',
tier: 123
}
]
})
};
fetch('https://api.fabric.inc/v3/location-zones', 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.fabric.inc/v3/location-zones",
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([
'zoneName' => 'US_LOCATIONS',
'zoneType' => 'ABSOLUTE',
'description' => 'Specific zone for US Locations',
'locations' => [
[
'priority' => 1,
'locationNumber' => 23
]
],
'tiers' => [
[
'filters' => [
[
'field' => 'location.locationNum',
'condition' => 'EQ',
'value' => '<unknown>',
'group' => 'GroupA'
]
],
'sort' => '+location.createdAt',
'tier' => 123
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-tenant-id: <x-fabric-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.fabric.inc/v3/location-zones"
payload := strings.NewReader("{\n \"zoneName\": \"US_LOCATIONS\",\n \"zoneType\": \"ABSOLUTE\",\n \"description\": \"Specific zone for US Locations\",\n \"locations\": [\n {\n \"priority\": 1,\n \"locationNumber\": 23\n }\n ],\n \"tiers\": [\n {\n \"filters\": [\n {\n \"field\": \"location.locationNum\",\n \"condition\": \"EQ\",\n \"value\": \"<unknown>\",\n \"group\": \"GroupA\"\n }\n ],\n \"sort\": \"+location.createdAt\",\n \"tier\": 123\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-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.fabric.inc/v3/location-zones")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"zoneName\": \"US_LOCATIONS\",\n \"zoneType\": \"ABSOLUTE\",\n \"description\": \"Specific zone for US Locations\",\n \"locations\": [\n {\n \"priority\": 1,\n \"locationNumber\": 23\n }\n ],\n \"tiers\": [\n {\n \"filters\": [\n {\n \"field\": \"location.locationNum\",\n \"condition\": \"EQ\",\n \"value\": \"<unknown>\",\n \"group\": \"GroupA\"\n }\n ],\n \"sort\": \"+location.createdAt\",\n \"tier\": 123\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/location-zones")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"zoneName\": \"US_LOCATIONS\",\n \"zoneType\": \"ABSOLUTE\",\n \"description\": \"Specific zone for US Locations\",\n \"locations\": [\n {\n \"priority\": 1,\n \"locationNumber\": 23\n }\n ],\n \"tiers\": [\n {\n \"filters\": [\n {\n \"field\": \"location.locationNum\",\n \"condition\": \"EQ\",\n \"value\": \"<unknown>\",\n \"group\": \"GroupA\"\n }\n ],\n \"sort\": \"+location.createdAt\",\n \"tier\": 123\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"zoneName": "US_LOCATIONS",
"zoneType": "ABSOLUTE",
"zoneId": "9372919a8219e8",
"description": "Specific zone for US Locations",
"locations": [
{
"priority": 1,
"locationNumber": 23
}
],
"tiers": [
{
"filters": [
{
"field": "location.locationNum",
"condition": "EQ",
"value": "<unknown>",
"group": "GroupA"
}
],
"sort": "+location.createdAt",
"tier": 123
}
],
"createdAt": "2022-05-12T09:30:31.198Z",
"updatedAt": "2022-05-12T09:30:31.198Z"
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4003",
"message": "Mandatory param(s): `requiredField1` is/are missing",
"errors": [
{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4002",
"message": "Invalid value(s) specified for 'requiredField.field3'",
"errors": []
}
],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders"
}
}{
"type": "CLIENT_ERROR",
"errorCode": "SERVICE-4001",
"message": "Unauthorized request",
"errors": [],
"context": {
"service": "orders",
"endpoint": "POST /v3/orders/OrderId_12345"
}
}{
"type": "SERVER_ERROR",
"errorCode": "SERVICE-5000",
"message": "Internal server error",
"errors": [],
"context": {
"service": "inventories",
"endpoint": "POST /v3/inventories/actions/find-by-geography"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id , which is also called account id, from Copilot. This header is required.
Unique request ID
x-fabric-channel-id identifies the sales channel through which the API request is being made; primarily for multichannel use cases. It is an optional field. The default US channel is 12 while the default Canada channel is 13.
Body
Create zone request
Zone name
"US_LOCATIONS"
Zone type
ABSOLUTE, TIERED "ABSOLUTE"
Detailed description of the zone
"Specific zone for US Locations"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Created
Zone response
Zone name
"US_LOCATIONS"
Zone type
ABSOLUTE, TIERED "ABSOLUTE"
System-generated unique ID to identify the zone
"9372919a8219e8"
Detailed description of the zone
"Specific zone for US Locations"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Zone created date
"2022-05-12T09:30:31.198Z"
Time of last update to zone (UTC)
"2022-05-12T09:30:31.198Z"
Was this page helpful?
