curl --request POST \
--url https://api.fabric.inc/v3/collections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"parentCollectionId": "600f1f77bcf86cd799439011",
"name": "Color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isRoot": true,
"isLeaf": false,
"attributes": [
{
"id": "78184766610c0e32a86d8757",
"value": "blue"
}
],
"categoryIdsIncluded": [
"917329dfd5288b0011332300, 637329dfd5288b0011332387"
],
"categoryIdsExcluded": [
"637329dfd5288b0011332300",
"74184766610c0e32a86d8758"
],
"productAttributeFilters": [
{
"attributeId": "78184766610c0e32a86d8757",
"condition": "EQUALS",
"value": 2
}
]
}
'import requests
url = "https://api.fabric.inc/v3/collections"
payload = {
"parentCollectionId": "600f1f77bcf86cd799439011",
"name": "Color",
"localizedProperties": {
"en-US": { "name": "Color" },
"en-IN": { "name": "Colour" }
},
"isLocalizable": True,
"isRoot": True,
"isLeaf": False,
"attributes": [
{
"id": "78184766610c0e32a86d8757",
"value": "blue"
}
],
"categoryIdsIncluded": ["917329dfd5288b0011332300, 637329dfd5288b0011332387"],
"categoryIdsExcluded": ["637329dfd5288b0011332300", "74184766610c0e32a86d8758"],
"productAttributeFilters": [
{
"attributeId": "78184766610c0e32a86d8757",
"condition": "EQUALS",
"value": 2
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
parentCollectionId: '600f1f77bcf86cd799439011',
name: 'Color',
localizedProperties: {'en-US': {name: 'Color'}, 'en-IN': {name: 'Colour'}},
isLocalizable: true,
isRoot: true,
isLeaf: false,
attributes: [{id: '78184766610c0e32a86d8757', value: 'blue'}],
categoryIdsIncluded: ['917329dfd5288b0011332300, 637329dfd5288b0011332387'],
categoryIdsExcluded: ['637329dfd5288b0011332300', '74184766610c0e32a86d8758'],
productAttributeFilters: [{attributeId: '78184766610c0e32a86d8757', condition: 'EQUALS', value: 2}]
})
};
fetch('https://api.fabric.inc/v3/collections', 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/collections",
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([
'parentCollectionId' => '600f1f77bcf86cd799439011',
'name' => 'Color',
'localizedProperties' => [
'en-US' => [
'name' => 'Color'
],
'en-IN' => [
'name' => 'Colour'
]
],
'isLocalizable' => true,
'isRoot' => true,
'isLeaf' => false,
'attributes' => [
[
'id' => '78184766610c0e32a86d8757',
'value' => 'blue'
]
],
'categoryIdsIncluded' => [
'917329dfd5288b0011332300, 637329dfd5288b0011332387'
],
'categoryIdsExcluded' => [
'637329dfd5288b0011332300',
'74184766610c0e32a86d8758'
],
'productAttributeFilters' => [
[
'attributeId' => '78184766610c0e32a86d8757',
'condition' => 'EQUALS',
'value' => 2
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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/collections"
payload := strings.NewReader("{\n \"parentCollectionId\": \"600f1f77bcf86cd799439011\",\n \"name\": \"Color\",\n \"localizedProperties\": {\n \"en-US\": {\n \"name\": \"Color\"\n },\n \"en-IN\": {\n \"name\": \"Colour\"\n }\n },\n \"isLocalizable\": true,\n \"isRoot\": true,\n \"isLeaf\": false,\n \"attributes\": [\n {\n \"id\": \"78184766610c0e32a86d8757\",\n \"value\": \"blue\"\n }\n ],\n \"categoryIdsIncluded\": [\n \"917329dfd5288b0011332300, 637329dfd5288b0011332387\"\n ],\n \"categoryIdsExcluded\": [\n \"637329dfd5288b0011332300\",\n \"74184766610c0e32a86d8758\"\n ],\n \"productAttributeFilters\": [\n {\n \"attributeId\": \"78184766610c0e32a86d8757\",\n \"condition\": \"EQUALS\",\n \"value\": 2\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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/collections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"parentCollectionId\": \"600f1f77bcf86cd799439011\",\n \"name\": \"Color\",\n \"localizedProperties\": {\n \"en-US\": {\n \"name\": \"Color\"\n },\n \"en-IN\": {\n \"name\": \"Colour\"\n }\n },\n \"isLocalizable\": true,\n \"isRoot\": true,\n \"isLeaf\": false,\n \"attributes\": [\n {\n \"id\": \"78184766610c0e32a86d8757\",\n \"value\": \"blue\"\n }\n ],\n \"categoryIdsIncluded\": [\n \"917329dfd5288b0011332300, 637329dfd5288b0011332387\"\n ],\n \"categoryIdsExcluded\": [\n \"637329dfd5288b0011332300\",\n \"74184766610c0e32a86d8758\"\n ],\n \"productAttributeFilters\": [\n {\n \"attributeId\": \"78184766610c0e32a86d8757\",\n \"condition\": \"EQUALS\",\n \"value\": 2\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/collections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"parentCollectionId\": \"600f1f77bcf86cd799439011\",\n \"name\": \"Color\",\n \"localizedProperties\": {\n \"en-US\": {\n \"name\": \"Color\"\n },\n \"en-IN\": {\n \"name\": \"Colour\"\n }\n },\n \"isLocalizable\": true,\n \"isRoot\": true,\n \"isLeaf\": false,\n \"attributes\": [\n {\n \"id\": \"78184766610c0e32a86d8757\",\n \"value\": \"blue\"\n }\n ],\n \"categoryIdsIncluded\": [\n \"917329dfd5288b0011332300, 637329dfd5288b0011332387\"\n ],\n \"categoryIdsExcluded\": [\n \"637329dfd5288b0011332300\",\n \"74184766610c0e32a86d8758\"\n ],\n \"productAttributeFilters\": [\n {\n \"attributeId\": \"78184766610c0e32a86d8757\",\n \"condition\": \"EQUALS\",\n \"value\": 2\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "55184766610c0e32a86d8759",
"name": "Color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isRoot": true,
"isActive": false,
"attributes": [
{
"id": "64184766610c0e32a86d8758",
"name": "color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isInherited": true,
"type": "TEXT",
"validation": {
"dateFormat": "MM-DD-YYYY"
},
"value": "blue"
}
],
"categoriesIncluded": [
{
"id": "64184766610c0e32a86d8758",
"name": "Chairs",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true
}
],
"categoriesExcluded": [
{
"id": "64184766610c0e32a86d8758",
"name": "Chairs",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true
}
],
"productAttributeFilters": [
{
"attributeId": "53184766610c0e32a86d875",
"name": "Mobile name",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"condition": "EQUALS",
"value": 2
}
],
"children": [
{
"id": "78184766610c0e32a86d8757",
"name": "Chairs",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isLeaf": false
}
],
"updatedBy": "test@eamil.com",
"updatedAt": "2023-04-20T10:24:36.162Z",
"createdAt": "2021-04-20T10:24:36.162Z"
}{
"message": "Request was invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request"
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "The payload exceeds maximum configured size"
}{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}Create Collection
Collection is an alternative way to organize products compared to the Category system, which is the original organization of items. Because the Category system isn’t granular enough to meet all the requirements of Storefronts, collections are used to organize products as per the merchant’s requirements. This endpoint is used to create a new collection within the alternative organization so that it can be adapted to support various use-cases of Storefronts.
curl --request POST \
--url https://api.fabric.inc/v3/collections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"parentCollectionId": "600f1f77bcf86cd799439011",
"name": "Color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isRoot": true,
"isLeaf": false,
"attributes": [
{
"id": "78184766610c0e32a86d8757",
"value": "blue"
}
],
"categoryIdsIncluded": [
"917329dfd5288b0011332300, 637329dfd5288b0011332387"
],
"categoryIdsExcluded": [
"637329dfd5288b0011332300",
"74184766610c0e32a86d8758"
],
"productAttributeFilters": [
{
"attributeId": "78184766610c0e32a86d8757",
"condition": "EQUALS",
"value": 2
}
]
}
'import requests
url = "https://api.fabric.inc/v3/collections"
payload = {
"parentCollectionId": "600f1f77bcf86cd799439011",
"name": "Color",
"localizedProperties": {
"en-US": { "name": "Color" },
"en-IN": { "name": "Colour" }
},
"isLocalizable": True,
"isRoot": True,
"isLeaf": False,
"attributes": [
{
"id": "78184766610c0e32a86d8757",
"value": "blue"
}
],
"categoryIdsIncluded": ["917329dfd5288b0011332300, 637329dfd5288b0011332387"],
"categoryIdsExcluded": ["637329dfd5288b0011332300", "74184766610c0e32a86d8758"],
"productAttributeFilters": [
{
"attributeId": "78184766610c0e32a86d8757",
"condition": "EQUALS",
"value": 2
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
parentCollectionId: '600f1f77bcf86cd799439011',
name: 'Color',
localizedProperties: {'en-US': {name: 'Color'}, 'en-IN': {name: 'Colour'}},
isLocalizable: true,
isRoot: true,
isLeaf: false,
attributes: [{id: '78184766610c0e32a86d8757', value: 'blue'}],
categoryIdsIncluded: ['917329dfd5288b0011332300, 637329dfd5288b0011332387'],
categoryIdsExcluded: ['637329dfd5288b0011332300', '74184766610c0e32a86d8758'],
productAttributeFilters: [{attributeId: '78184766610c0e32a86d8757', condition: 'EQUALS', value: 2}]
})
};
fetch('https://api.fabric.inc/v3/collections', 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/collections",
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([
'parentCollectionId' => '600f1f77bcf86cd799439011',
'name' => 'Color',
'localizedProperties' => [
'en-US' => [
'name' => 'Color'
],
'en-IN' => [
'name' => 'Colour'
]
],
'isLocalizable' => true,
'isRoot' => true,
'isLeaf' => false,
'attributes' => [
[
'id' => '78184766610c0e32a86d8757',
'value' => 'blue'
]
],
'categoryIdsIncluded' => [
'917329dfd5288b0011332300, 637329dfd5288b0011332387'
],
'categoryIdsExcluded' => [
'637329dfd5288b0011332300',
'74184766610c0e32a86d8758'
],
'productAttributeFilters' => [
[
'attributeId' => '78184766610c0e32a86d8757',
'condition' => 'EQUALS',
'value' => 2
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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/collections"
payload := strings.NewReader("{\n \"parentCollectionId\": \"600f1f77bcf86cd799439011\",\n \"name\": \"Color\",\n \"localizedProperties\": {\n \"en-US\": {\n \"name\": \"Color\"\n },\n \"en-IN\": {\n \"name\": \"Colour\"\n }\n },\n \"isLocalizable\": true,\n \"isRoot\": true,\n \"isLeaf\": false,\n \"attributes\": [\n {\n \"id\": \"78184766610c0e32a86d8757\",\n \"value\": \"blue\"\n }\n ],\n \"categoryIdsIncluded\": [\n \"917329dfd5288b0011332300, 637329dfd5288b0011332387\"\n ],\n \"categoryIdsExcluded\": [\n \"637329dfd5288b0011332300\",\n \"74184766610c0e32a86d8758\"\n ],\n \"productAttributeFilters\": [\n {\n \"attributeId\": \"78184766610c0e32a86d8757\",\n \"condition\": \"EQUALS\",\n \"value\": 2\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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/collections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"parentCollectionId\": \"600f1f77bcf86cd799439011\",\n \"name\": \"Color\",\n \"localizedProperties\": {\n \"en-US\": {\n \"name\": \"Color\"\n },\n \"en-IN\": {\n \"name\": \"Colour\"\n }\n },\n \"isLocalizable\": true,\n \"isRoot\": true,\n \"isLeaf\": false,\n \"attributes\": [\n {\n \"id\": \"78184766610c0e32a86d8757\",\n \"value\": \"blue\"\n }\n ],\n \"categoryIdsIncluded\": [\n \"917329dfd5288b0011332300, 637329dfd5288b0011332387\"\n ],\n \"categoryIdsExcluded\": [\n \"637329dfd5288b0011332300\",\n \"74184766610c0e32a86d8758\"\n ],\n \"productAttributeFilters\": [\n {\n \"attributeId\": \"78184766610c0e32a86d8757\",\n \"condition\": \"EQUALS\",\n \"value\": 2\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/collections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"parentCollectionId\": \"600f1f77bcf86cd799439011\",\n \"name\": \"Color\",\n \"localizedProperties\": {\n \"en-US\": {\n \"name\": \"Color\"\n },\n \"en-IN\": {\n \"name\": \"Colour\"\n }\n },\n \"isLocalizable\": true,\n \"isRoot\": true,\n \"isLeaf\": false,\n \"attributes\": [\n {\n \"id\": \"78184766610c0e32a86d8757\",\n \"value\": \"blue\"\n }\n ],\n \"categoryIdsIncluded\": [\n \"917329dfd5288b0011332300, 637329dfd5288b0011332387\"\n ],\n \"categoryIdsExcluded\": [\n \"637329dfd5288b0011332300\",\n \"74184766610c0e32a86d8758\"\n ],\n \"productAttributeFilters\": [\n {\n \"attributeId\": \"78184766610c0e32a86d8757\",\n \"condition\": \"EQUALS\",\n \"value\": 2\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "55184766610c0e32a86d8759",
"name": "Color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isRoot": true,
"isActive": false,
"attributes": [
{
"id": "64184766610c0e32a86d8758",
"name": "color",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isInherited": true,
"type": "TEXT",
"validation": {
"dateFormat": "MM-DD-YYYY"
},
"value": "blue"
}
],
"categoriesIncluded": [
{
"id": "64184766610c0e32a86d8758",
"name": "Chairs",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true
}
],
"categoriesExcluded": [
{
"id": "64184766610c0e32a86d8758",
"name": "Chairs",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true
}
],
"productAttributeFilters": [
{
"attributeId": "53184766610c0e32a86d875",
"name": "Mobile name",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"condition": "EQUALS",
"value": 2
}
],
"children": [
{
"id": "78184766610c0e32a86d8757",
"name": "Chairs",
"localizedProperties": {
"en-US": {
"name": "Color"
},
"en-IN": {
"name": "Colour"
}
},
"isLocalizable": true,
"isLeaf": false
}
],
"updatedBy": "test@eamil.com",
"updatedAt": "2023-04-20T10:24:36.162Z",
"createdAt": "2021-04-20T10:24:36.162Z"
}{
"message": "Request was invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request"
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"type": "PAYLOAD_LIMIT_EXCEEDED_ERROR",
"message": "The payload exceeds maximum configured size"
}{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}Authorizations
S2S access token (JWT) from fabric Identity service (during Login)
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.
"517fa9dfd42d8b00g1o3k312"
Unique request ID
"263e731c-45c8-11ed-b878-0242ac120002"
Body
Details to create a collection
Collection details
24-character system-generated parent collection ID
"600f1f77bcf86cd799439011"
Non-localized collection name
"Color"
localized properties of collection
Show child attributes
Show child attributes
{
"en-US": { "name": "Color" },
"en-IN": { "name": "Colour" }
}
true: Collection name is translated into different languages or localized for different regions
false: Collection name isn't localized. Note: Refer to localizedProperties to get relevant details based on locale
true
true: This collection is the root branch
false: This collection isn't the root branch
true
true: This is the last collection of the branch with no further children collections
false: This isn't the last collection of the branch and has children collections
false
Collection attributes
Show child attributes
Show child attributes
List of included category IDs
List of excluded category IDs
[
"637329dfd5288b0011332300",
"74184766610c0e32a86d8758"
]
Details of attribute filters applied. In the Create collection endpoint, it's also used to create collection based on attribute values. For example, create collection for mobile phones, where price is greater than 25000
Show child attributes
Show child attributes
Response
OK
Collection details
24-character system-generated collection ID
"55184766610c0e32a86d8759"
Non-localized collection name
"Color"
Localized details
Show child attributes
Show child attributes
{
"en-US": { "name": "Color" },
"en-IN": { "name": "Colour" }
}
true: Collection name is translated into different languages or localized for different regions
false: Collection name isn't localized Note: Refer to localizedProperties to get relevant details based on locale
true
true: Collection is root category.
false: Collection isn't a root category.
true
true: Collection is active
false: Collection is inactive
false
Collection attributes
Show child attributes
Show child attributes
List of categories included
Show child attributes
Show child attributes
List of categories excluded
Show child attributes
Show child attributes
Attribute filters applied to the category
Show child attributes
Show child attributes
Immediate children of the specified collection
Show child attributes
Show child attributes
Email of user who last updated the category
"test@eamil.com"
Time of last updated to category (UTC)
"2023-04-20T10:24:36.162Z"
Time of category creation (UTC)
"2021-04-20T10:24:36.162Z"
Was this page helpful?
