curl --request POST \
--url https://api.fabric.inc/v3/product-attribute-groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Dimensions",
"description": "Item dimensions",
"priority": 1,
"attributes": [
{
"attributeId": "5f328bf0b5f328bf0b5f328b",
"isReadOnly": true
}
]
}
'import requests
url = "https://api.fabric.inc/v3/product-attribute-groups"
payload = {
"name": "Dimensions",
"description": "Item dimensions",
"priority": 1,
"attributes": [
{
"attributeId": "5f328bf0b5f328bf0b5f328b",
"isReadOnly": True
}
]
}
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({
name: 'Dimensions',
description: 'Item dimensions',
priority: 1,
attributes: [{attributeId: '5f328bf0b5f328bf0b5f328b', isReadOnly: true}]
})
};
fetch('https://api.fabric.inc/v3/product-attribute-groups', 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/product-attribute-groups",
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' => 'Dimensions',
'description' => 'Item dimensions',
'priority' => 1,
'attributes' => [
[
'attributeId' => '5f328bf0b5f328bf0b5f328b',
'isReadOnly' => true
]
]
]),
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/product-attribute-groups"
payload := strings.NewReader("{\n \"name\": \"Dimensions\",\n \"description\": \"Item dimensions\",\n \"priority\": 1,\n \"attributes\": [\n {\n \"attributeId\": \"5f328bf0b5f328bf0b5f328b\",\n \"isReadOnly\": true\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/product-attribute-groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Dimensions\",\n \"description\": \"Item dimensions\",\n \"priority\": 1,\n \"attributes\": [\n {\n \"attributeId\": \"5f328bf0b5f328bf0b5f328b\",\n \"isReadOnly\": true\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/product-attribute-groups")
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 \"name\": \"Dimensions\",\n \"description\": \"Item dimensions\",\n \"priority\": 1,\n \"attributes\": [\n {\n \"attributeId\": \"5f328bf0b5f328bf0b5f328b\",\n \"isReadOnly\": true\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "59328bf0b5f328bf0b5f3288",
"name": "Dimensions",
"description": "Dimensions of a product",
"priority": 1,
"attributes": [
{
"attributeId": "33328bf0b5f328bf0b5f3288",
"name": "color",
"type": "TEXT",
"localizedProperties": {
"en-US": {
"name": "color"
},
"en-IN": {
"name": "colour"
}
},
"isLocalizable": true,
"isReadOnly": true
}
],
"attributeCount": 20,
"updatedBy": "test@email.com",
"createdAt": "2021-04-20T10:24:36.162Z",
"updatedAt": "2021-04-20T10:24:36.162Z"
}{
"message": "Request is invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Check your parameters or request body."
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"type": "SERVER_ERROR",
"message": "Internal Server Error"
}Create Product Attribute Group
An attribute group is a collection of attributes that can be assigned to products or categories. This endpoint creates an attribute group with associated attributes so that it’s easier to assign attributes to products and categories. At least one attribute must be specified.
curl --request POST \
--url https://api.fabric.inc/v3/product-attribute-groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Dimensions",
"description": "Item dimensions",
"priority": 1,
"attributes": [
{
"attributeId": "5f328bf0b5f328bf0b5f328b",
"isReadOnly": true
}
]
}
'import requests
url = "https://api.fabric.inc/v3/product-attribute-groups"
payload = {
"name": "Dimensions",
"description": "Item dimensions",
"priority": 1,
"attributes": [
{
"attributeId": "5f328bf0b5f328bf0b5f328b",
"isReadOnly": True
}
]
}
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({
name: 'Dimensions',
description: 'Item dimensions',
priority: 1,
attributes: [{attributeId: '5f328bf0b5f328bf0b5f328b', isReadOnly: true}]
})
};
fetch('https://api.fabric.inc/v3/product-attribute-groups', 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/product-attribute-groups",
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' => 'Dimensions',
'description' => 'Item dimensions',
'priority' => 1,
'attributes' => [
[
'attributeId' => '5f328bf0b5f328bf0b5f328b',
'isReadOnly' => true
]
]
]),
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/product-attribute-groups"
payload := strings.NewReader("{\n \"name\": \"Dimensions\",\n \"description\": \"Item dimensions\",\n \"priority\": 1,\n \"attributes\": [\n {\n \"attributeId\": \"5f328bf0b5f328bf0b5f328b\",\n \"isReadOnly\": true\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/product-attribute-groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Dimensions\",\n \"description\": \"Item dimensions\",\n \"priority\": 1,\n \"attributes\": [\n {\n \"attributeId\": \"5f328bf0b5f328bf0b5f328b\",\n \"isReadOnly\": true\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/product-attribute-groups")
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 \"name\": \"Dimensions\",\n \"description\": \"Item dimensions\",\n \"priority\": 1,\n \"attributes\": [\n {\n \"attributeId\": \"5f328bf0b5f328bf0b5f328b\",\n \"isReadOnly\": true\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "59328bf0b5f328bf0b5f3288",
"name": "Dimensions",
"description": "Dimensions of a product",
"priority": 1,
"attributes": [
{
"attributeId": "33328bf0b5f328bf0b5f3288",
"name": "color",
"type": "TEXT",
"localizedProperties": {
"en-US": {
"name": "color"
},
"en-IN": {
"name": "colour"
}
},
"isLocalizable": true,
"isReadOnly": true
}
],
"attributeCount": 20,
"updatedBy": "test@email.com",
"createdAt": "2021-04-20T10:24:36.162Z",
"updatedAt": "2021-04-20T10:24:36.162Z"
}{
"message": "Request is invalid",
"type": "Bad request",
"errors": [
{
"type": "CLIENT_ERROR",
"message": "Invalid request. Check your parameters or request body."
}
]
}{
"message": "The requester is unauthorized",
"type": "UNAUTHORIZED_ERROR"
}{
"type": "REQUEST_DENIED",
"message": "User doesn't have the required permission"
}{
"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
Request body to create attribute group
Response
OK
24-character system-generated attribute group ID
"59328bf0b5f328bf0b5f3288"
Attribute group name
"Dimensions"
Brief description of attribute group
"Dimensions of a product"
Determines attribute group's order of appearance in the UI
1
Show child attributes
Show child attributes
Number of attributes in the attribute group
20
Email of user who last updated Attribute Group
"test@email.com"
Attribute group creation time (UTC)
"2021-04-20T10:24:36.162Z"
Time of last update to attribute group (UTC)
"2021-04-20T10:24:36.162Z"
Was this page helpful?
