Attribute Set
This article provides comprehensive information and documentation on a set of API methods specifically designed to handle product attribute sets. By leveraging these methods, users can retrieve, create, and search product attribute sets, allowing for seamless integration and management of product data within the system.
The article includes detailed explanations, parameter descriptions, and usage examples for each API method, empowering developers to effectively utilize the capabilities provided by the product attribute set API.
Get Attribute Sets
Attribute sets are created by grouping attributes via attribute configs. Television, mobile phone, sneakers, t-shirt, and sofa can have different attribute(s) sets.
Note: Before creating a product, the "attribute set" that the product will have should be decided.
Parameter
Data Type
In
Description
limit
integer
body
Amount of line items per page that will be returned
page
string
body
Page number to return
Request GET
Retrieves the entire attribute sets in the database. To filter the results check the Attribute Sets Search section.
Path:i1/attribute_set/
import requests
url = "https://{customer_api_url}/api/i1/attribute_set/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token)
}
params = {
'limit': '1',
'page': '3'
}
response = requests.get(url, headers=headers , params=params)
print(response.text)
Response
Response contains all attribute sets data with search parameters. Response status is expected to be HTTP-200 Successful.
Resource Properties are in Python format.
Parameter
Data Type
Description
name
string
Set's name
attribute_set_type
dict
Type of the attribute set. It could be simple or group
value
string
Attribute set's value
label
string
Attribute set's label. It is used in the backend and frontend
attributeconfig_set
array
List of attributes included in the attribute set
“count” shows how many attribute sets exist in the system.
“next” shows the next cursor url to retrieve the desired attribute sets.
“previous” shows the previous cursor url to retrieve the desired attribute sets.
“results” shows every attribute sets detail.
{
"count": 56,
"next": "https://{customer_api_url}/api/i1/attribute_set/?limit=1&page=4",
"previous": "https://{customer_api_url}/api/i1/attribute_set/?limit=1&page=2",
"results": [
{
"id": 116,
"name": "Beden-Renk",
"attribute_set_type": {
"value": "simple",
"label": "Simple"
},
"attributeconfig_set": [
{
"pk": 2620,
"attribute": {
"pk": 1061,
"key": "oms_excluded",
"data_type": "dropdown",
"default_value": null,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": false,
"is_variant_listable": false,
"name": "Lorem Ipsum",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "oms_excluded",
"pre_attribute": false,
"description": "",
},
"attribute_set": 116,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 0,
"is_form_required": false,
"is_form_field_required": false,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z",
},
{
"pk": 2587,
"attribute": {
"pk": 206,
"key": "akinon_filterable_size",
"data_type": "dropdown",
"default_value": null,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"name": "Size",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "filterable_size",
"pre_attribute": false,
"description": null
},
"attribute_set": 116,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 1,
"is_form_required": false,
"is_form_field_required": false,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z",
},
{
"pk": 2191,
"attribute": {
"pk": 167,
"key": "top_category",
"data_type": "text",
"default_value": null,
"is_required": false,
"is_visible": false,
"is_searchable": false,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": false,
"name": "top_category",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "top_category",
"pre_attribute": false,
"description": null
},
"attribute_set": 116,
"is_required": false,
"is_visible": false,
"is_searchable": false,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": false,
"default_fields": [
"is_localizable"
],
"order": 4,
"is_form_required": false,
"is_form_field_required": false,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z",
},
{
"pk": 1898,
"attribute": {
"pk": 160,
"key": "Variant-Product1",
"data_type": "price",
"default_value": null,
"is_required": true,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": true,
"name": "Variant Product1",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "Variant Product",
"pre_attribute": false,
"description": null
},
"attribute_set": 116,
"is_required": true,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": true,
"default_fields": [
"is_localizable"
],
"order": 7,
"is_form_required": false,
"is_form_field_required": false,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z",
},
{
"pk": 1897,
"attribute": {
"pk": 269,
"key": "Forbidden",
"data_type": "bool",
"default_value": null,
"is_required": false,
"is_visible": false,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"name": "forbidden",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "forbidden",
"pre_attribute": false,
"description": null
},
"attribute_set": 116,
"is_required": false,
"is_visible": false,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_localizable"
],
"order": 8,
"is_form_required": false,
"is_form_field_required": false,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z",
},
{
"pk": 1896,
"attribute": {
"pk": 599,
"key": "density",
"data_type": "text",
"default_value": null,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"name": "density",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "density",
"pre_attribute": false,
"description": "Density"
},
"attribute_set": 116,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_localizable"
],
"order": 9,
"is_form_required": false,
"is_form_field_required": false,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z",
}
]
}
]
}
Search Atrribute Set
To get attribute set from the system, you can send the GET request. To filter, you can add parameters name
and attribute_set_type
as in QueryString. If you don't add parameter for filter, all attribute sets in the system will be returned.
limit
integer
body
Amount of line items per page that will be returned
page
integer
body
Page number to return
name
string
body
Attribute set's name.
attribute_set_type
string
body
simple or group
Request GET
GET
Path: attribute_set/
import requests
url = "https://{customer_api_url}/api/i1/attribute_set/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token)
}
params = {
'name':'size',
'attribute_set_type' : 'simple',
'limit': 3,
'page': 1
}
response = requests.get(url, headers=headers , params=params)
print(response.text)
Response
Resource properties in Python format
name
string
Set's name
attribute_set_type
dict
It could be simple or group
value
string
Attribute set's value
label
string
Attribute set's label. It is used on the backoffice frontend.
attributeconfig_set
array
List of attributes included in the attribute set
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 512,
"name": "MPColorSize",
"attribute_set_type": {
"value": "simple",
"label": "Simple"
},
"attributeconfig_set": [
{
"pk": 1873,
"attribute": {
"pk": 665,
"key": "mp_color",
"data_type": "valuelabel",
"default_value": null,
"is_required": true,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": true,
"name": "MP Color",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "mp_color",
"pre_attribute": false,
"description": null
},
"attribute_set": 512,
"is_required": true,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": true,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 0,
"is_form_required": false,
"is_form_field_required": false
},
{
"pk": 1874,
"attribute": {
"pk": 666,
"key": "mp_size",
"data_type": "valuelabel",
"default_value": null,
"is_required": true,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": false,
"name": "MP Size",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "mp_size",
"pre_attribute": false,
"description": null
},
"attribute_set": 512,
"is_required": true,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": true,
"is_variant_listable": false,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 1,
"is_form_required": false,
"is_form_field_required": false
},
{
"pk": 1875,
"attribute": {
"pk": 667,
"key": "mp_filterable_color",
"data_type": "dropdown",
"default_value": 4035,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"name": "MP Filtrable Color",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "mp_filterable_color",
"pre_attribute": false,
"description": null
},
"attribute_set": 512,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 2,
"is_form_required": false,
"is_form_field_required": false
},
{
"pk": 1876,
"attribute": {
"pk": 668,
"key": "mp_filterable_size",
"data_type": "dropdown",
"default_value": 4042,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"name": "MP Filtrable Size",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "mp_filterable_size",
"pre_attribute": false,
"description": null
},
"attribute_set": 512,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": true,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 3,
"is_form_required": false,
"is_form_field_required": false
},
{
"pk": 1877,
"attribute": {
"pk": 669,
"key": "mp_description",
"data_type": "text",
"default_value": null,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": false,
"is_variant_listable": false,
"name": "MP Description",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "mp_description",
"pre_attribute": false,
"description": null
},
"attribute_set": 512,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 4,
"is_form_required": false,
"is_form_field_required": false
},
{
"pk": 1878,
"attribute": {
"pk": 670,
"key": "mp_gender",
"data_type": "dropdown",
"default_value": null,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": false,
"is_variant_listable": true,
"name": "MP Gender",
"is_form_required": false,
"is_form_field_required": false,
"erp_code": "mp_gender",
"pre_attribute": false,
"description": null
},
"attribute_set": 512,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": false,
"is_variant_listable": true,
"default_fields": [
"is_required",
"is_visible",
"is_searchable",
"is_filterable",
"is_variant",
"is_variant_listable",
"is_localizable",
"is_form_required",
"is_form_field_required"
],
"order": 5,
"is_form_required": false,
"is_form_field_required": false
}
]
}
]
}
Create Attribute Set
To add an attribute to an attribute set, the attribute set must first be created. After creating an attribute set, attributes can be added to the attribute set. Attribute set is used by grouping attributes. This way you can manage the same type of products with attribute sets, such as Phones, Televisions, etc.
Parameter
Data Type
In
Description
name
string
body
Set's name.
attribute_set_type
string
body
It could be simple or group
Request POST
POST
request is used to create a new attribute set object.
‘content_type’ header represents the response type.
‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.
‘Accept-language’ header determines translatable fields responses.
Path:/v1/attribute_set/
import requests
import json
url = "https://{customer_api_url}/api/v1/attribute_set/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token),
'Accept-Language': 'en-us'
}
data = {
"attribute_set_type": "simple",
"name": "test_shirt_attribute_set"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
Response
Returns the created attribute set. Successful response status is expected to be HTTP-201 Created.
Resource properties are in Python format.
{
"pk": 1108,
"name": "test_shirt_attribute_set",
"attribute_set_type": "simple",
"attributeconfig_set": [],
"description": null,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z,
}
Bad Request Responses
When the requested action cannot be executed, API gives an explanation about the request.
“name” is a unique field and cannot accept duplicate data.
{
"non_field_errors": "(name:test) already exists",
"error_code": "attribute_set_202_1"
}
Create Attribute Config
Attribute Configs are used for adding an attribute to the attribute set. You can configure attribute properties via AttributeConfig. For example, an attribute’s property ‘is_filterable’ is True, and in an attribute set you want to make it False. You can do it by changing ‘is_filterable’ filter value while creating Attribute Config.
Parameter
Data Type
In
Required
Description
attribute
id
body
YES
Attribute ID
attribute_set
id
body
YES
Attribute set ID
is_filterable
boolean
body
YES
(default False) If the parameter is True, this attribute can be viewed in filters
is_required
boolean
body
YES
(default False). It determines whether the attribute value can be left blank when creating or updating the product. If this parameter is True in the attribute set, this attribute must be required in the product
is_searchable
boolean
body
YES
(default True) If the parameter is True, the customer can search with the value of the attribute on the website
is_variant
boolean
body
YES
(default False) If the parameter is True for the size attribute, it is possible to make variants such as X size sweater, L size sweater among child products connected to the same parent product.
is_variant_listable
boolean
body
YES
(default False) Determines whether different variants of the same product will appear on the product listing page
is_visible
boolean
body
YES
(default True) Determines whether the attribute will appear on the website. "_False” could be selected for attributes that will be used at the back office (Omnitron) and not used on the website. For example, ERP color code, ERP SKU, etc.
is_form_required
boolean
body
YES
(default False) The customer needs to fill out a form when adding a product whose is_form_required value is True to the cart. Such as the name and note to be written on the jewelry, watches, wallets, flowers.
is_form_field_required
boolean
body
YES
(default False) It determines whether the fields in the form (associated with "is_form_required”) shown to the customer are required
order
integer
body
Attribute's order in the attribute set
Request POST
Attribute Configs are used for attributes in the Attribute Set. With Attribute Config attribute settings can be adjustable.
Path:/v1/attribute_config/
import requests
import json
url = "https://{customer_api_url}/api/v1/attribute_config/`"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token),
'Accept-Language': 'en-us'
}
data = {
"attribute": 668,
"attribute_set": 1108,
"is_filterable": False,
"is_required": False,
"is_searchable": True,
"is_variant": False,
"is_variant_listable": False,
"is_visible": True,
"is_form_required": False,
"is_form_field_required": False,
"order": 0
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
Response
Returns the created attribute config details.
{
"pk": 3383,
"attribute": 668,
"attribute_set": 1108,
"is_required": false,
"is_visible": true,
"is_searchable": true,
"is_filterable": false,
"is_variant": false,
"is_variant_listable": false,
"default_fields": [
"is_localizable"
],
"order": 0,
"is_form_required": false,
"is_form_field_required": false,
"modified_date": "2022-02-21T08:13:40.424413Z",
"created_date": "2016-12-14T14:56:02.160001Z,
}
Bad Request Responses
When the requested action cannot be executed, API gives an explanation about the request.
“attribute-attribute_set” is a unique field.
{
"non_field_errors": "(attribute:test) (attribute_set:test) already exists",
"error_code": "attribute_set_203_1"
}
If an attribute is a variant attribute, it cannot be in a custom attribute set.
{
"non_field_errors": "Attribute config custom attribute set validation error. Custom attribute set doesn't accept variant attribute",
"error_code": "attribute_set_203_3"
}
An attribute cannot be in both a custom attribute set and an attribute set.
{
"non_field_errors": "This attribute cannot exist in custom attribute set and attribute set",
"error_code": "attribute_set_203_4"
}
Last updated
Was this helpful?