Product
This article provides comprehensive information and documentation on a set of API methods specifically designed to handle products. By leveraging these methods, users can retrieve, create, update, and search products, 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 API.
Get Products
Retrieves products from the system. For filtering the results, check the “Product Search” section.
Parameter
Data Type
In
Description
limit
integer
query
Amount of items per page that will be returned
page
string
query
Page number to return
If limit and page parameters are not sent, response returns 10 products by default.
Request GET
Retrieves all of the products in the system.
‘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: products/
import requests
url = "https://{customer_api_url}/api/i1/products/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token),
'Accept-language':'en-us'
}
params = {
'limit': '2',
'page': '1'
}
response = requests.get(url, headers=headers , params=params)
print(response.text)
Response
Response contains all product data. Resource properties are in Python format.
Property
Data Type
Description
name
string
Product name
base_code
dict
Product base code
sku
string
Stock keeping unit
is_active
boolean
Defines if the product is active or passive
attribute_set
id
ID of the related attribute set
attributes
dict
Attribute list
custom_attribute_set
integer
Additional attribute set ID
attributes_kwargs
dict
Details of the attributes attached to the product
key
dict
Attribute name attached to the product
value
string
Attribute value attached to the product
data_type
string
Attribute data type attached to the product
label
string
Attribute label attached to the product
extra_attributes
dict
Additional attributes
“count” shows how many products exist in the system.
“next” shows the next cursor url to retrieve the desired products.
“previous” shows the previous cursor url to retrieve the desired products.
“results” shows every product detail.
{
"count": 298501,
"next": "https://{customer_api_url}/api/i1/products/?limit=2&page=2",
"previous": null,
"results": [
{
"id": 3,
"name": "Guitar",
"base_code": "1020583",
"sku": "1020583031",
"product_type": "0",
"is_active": true,
"custom_attribute_set": 480,
"attribute_set": 151,
"attributes": {},
"attributes_kwargs": {},
"extra_attributes": {},
},
{
"id": 43,
"name": "Orchid Flower",
"base_code": "1184770",
"sku": "1184770001",
"product_type": "0",
"is_active": true,
"custom_attribute_set": null,
"attribute_set": 7,
"attributes": {
"varyant_size": "36",
"airway_volume": "1"
},
"attributes_kwargs": {
"varyant_size": {
"value": "36",
"data_type": "dropdown",
"label": "36"
}
},
"extra_attributes": {},
}
]
}
Get Product Detail
To be able to retrieve the product details, a user needs to know the SKU of the product.
Parameter
Data Type
In
Description
{"sku"}
integer
query
Product SKU
Request GET
Retrieves an instance detail of the product.
‘content_type’ header represents the response type.
‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.
Path:products/{sku}
import requests
url = "https://{customer_api_url}/api/i1/products/{sku}"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token)
}
response = requests.get(url, headers=headers)
print(response.text)
Response
Response contains all product details data.
The explanation of the fields in the response body is provided in the table below.
Resource properties are in Python format.
Property
Data Type
Description
name
string
Product name
base_code
dict
Product base code
sku
string
Stock keeping unit
is_active
boolean
Defines if the product is active or passive
attribute_set
id
ID of the related attribute set
attributes
dict
Attribute list
custom_attribute_set
integer
Additional attribute set ID
attributes_kwargs
dict
Details of the attributes attached to the product
{
"id": 49,
"name": "Orchid Flower 80 x 35 CM",
"base_code": "1185158",
"sku": "1185158001",
"product_type": "0",
"is_active": true,
"custom_attribute_set": null,
"attribute_set": 7,
"attributes": {
"erp_ProductDetailName": "Flower",
"integration_OriginalColor": "Colorless",
"integration_ProductionPlace": "China",
"erp_Size": "000",
"integration_Lenght": "35.0",
"integration_Description": "<p> </p><p>Width: 35</p><p>Size: 80</p><p>Hight: 0</p><p>Origin: China</p>",
"color": "colorless",
"erp_PrimaryColor": "X",
"integration_SizeHeight": "0.0",
"size_height": "0.0",
"erp_SizeWidth": "35.0",
"erp_SizeHeight": "80.0",
"erp_Season": "Continuous",
"integration_Gender": "General",
"erp_ProductClassName": "PLANT GROUP",
"erp_Msb": "False",
"erp_ProductGroupName": "CONCEPT",
"integration_ModelNo": "None",
"integration_MainProductType": "0",
"variant_color": "colorless",
"erp_ProductionPlace": "China",
"erp_Description": "<p> </p><p>Width: 35</p><p>Size: 80</p><p>Hight: 0</p><p>Origin: China</p>",
"size_weight": "0.0",
"integration_Outlet": "False",
"erp_ProductSubGroupName": "DECORATIVE",
"airway_volume": "1",
"integration_Year": "2017",
"integration_SizeWeight": "0.0",
"integration_Size": "000",
"erp_MainProductType": "0",
"adjust-attempt": "cms/2020/06/29/2086b0fe-1d47-4647-98f6-dcf886c93efc.jpg",
"integration_TechnicalDetail": "None",
"integration_Season": "Continuous",
"size": "Standart",
"erp_SizeHeight": "0.0",
"erp_VariantNo": "1185158-000",
"erp_SizeWeight": "0.0",
"size_width": "35.0",
"integration_ProductSubGroupName": "Flower Group",
"integration_PrimaryColor": "X",
"erp_Outlet": "False",
"integration_ProductDetailName": "POTTED FLOWERS",
"integration_Msb": "False",
"integration_ProductSubGroupName": "DECORATIVE",
"erp_PrimaryColor": "Colorless",
"integration_SizeHeight": "80.0",
"size_height": "80.0",
"erp_ProductSubGroupName": "Flower Group",
"gender": "General",
"erp_Gender": "General",
"integration_Product": "PLANT GROUP",
"integration_VariantNo": "1185158-000",
"integration_ProductGroupName": "CONCEPT",
"erp_Year": "2017"
},
"attributes_kwargs": {
"erp_ProductDetailName": {
"value": "POTTED FLOWERS",
"data_type": "dropdown",
"label": "POTTED FLOWERS"
},
"adjust-attempt": {
"url": "https://akinon.akinoncdn.com/cms/2020/06/29/2086b0fe-1d47-4647-98f6-dcf886c93efc.jpg",
"value": "cms/2020/06/29/2086b0fe-1d47-4647-98f6-dcf886c93efc.jpg",
"data_type": "image"
},
"erp_Msb": {
"value": "False",
"data_type": "dropdown",
"label": "False"
},
"erp_PrimaryColor": {
"value": "X",
"data_type": "dropdown",
"label": "X"
},
"erp_Size": {
"value": "000",
"data_type": "dropdown",
"label": "000"
},
"erp_MainProductType": {
"value": "0",
"data_type": "dropdown",
"label": "0"
},
"color": {
"value": "COLORLESS",
"data_type": "dropdown",
"label": "COLORLESS"
},
"variant_color": {
"value": "COLORLESS",
"data_type": "dropdown",
"label": "COLORLESS"
},
"size": {
"value": "Standard",
"data_type": "dropdown",
"label": "Standart"
},
"erp_ProductionPlace": {
"value": "CHINA",
"data_type": "dropdown",
"label": "CHINA"
},
"erp_Outlet": {
"value": "False",
"data_type": "dropdown",
"label": "False"
},
"gender": {
"value": "General",
"data_type": "dropdown",
"label": "General"
},
"erp_ProductSubClassName": {
"value": "FLOWER GROUP",
"data_type": "dropdown",
"label": "FLOWER GROUP"
},
"erp_Gender": {
"value": "General",
"data_type": "dropdown",
"label": "General"
},
"erp_ProductClassName": {
"value": "FLOWER GROUP",
"data_type": "dropdown",
"label": "FLOWER GROUP"
},
"erp_PrimaryColor": {
"value": "COLORLESS",
"data_type": "dropdown",
"label": "COLORLESS"
},
"erp_ProductGroupName": {
"value": "CONCEPT",
"data_type": "dropdown",
"label": "CONCEPT"
},
"erp_ProductSubGroupName": {
"value": "DECORATIVE",
"data_type": "dropdown",
"label": "DECORATIVE"
}
},
"extra_attributes": {}
}
Search Product
GET request is used to search the products based on the provided parameters. If you don't add parameters for the filter, all products in the system will be returned. The filtering options are listed in the table below.
Parameter
Data Type
In
Description
limit
integer
data
Amount of line items per page that will be returned
page
integer
data
Page number to return
name
string
data
Product name
product_type
integer
data
Product type (simple: 0, product_meta: 1, bundle: 2, grouped: 3, miscellaneous: 4)
is_active
boolean
body
True or False
sku
string
data
Stock keeping unit
Request GET
This sample request is for filtering products based on their SKU and name.
‘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: products/
import requests
url = "https://{customer_api_url}/api/i1/products/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token),
'Accept-language':'en-us'
}
params = {
#'sku':'1020170001'
'name': 'Sofa'
}
response = requests.get(url, headers=headers , params=params)
print(response.text)Response
Response contains all product data with search parameters. Response status is expected to be HTTP-200 Successful.
The table below shows the response properties in Python format. Every field has been explained in the description section of the table.
Property
Data Type
Description
name
string
Product name
base_code
dict
Product base code
sku
string
Stock keeping unit
is_active
boolean
Defines if the product is active or passive
attribute_set
id
ID of the related attribute set
attributes
dict
Attribute list
custom_attribute_set
integer
Additional attribute set ID
attributes_kwargs
dict
Details of the attributes attached to the product
key
dict
Attribute name attached to the product
value
string
Attribute value attached to the product
data_type
string
Attribute data type attached to the product
label
string
Attribute label attached to the product
extra_attributes
dict
Additional attributes
“count” shows how many products exist in the system.
“next” shows the next cursor url to retrieve the desired products.
“previous” shows the previous cursor url to retrieve the desired products.
“results” shows product’s every detail.
{
"count": 2,
"next": "{customer_api_url}/api/i1/products/?name=Sofa&page=2",
"previous": null,
"results": [
{
"id": 14249,
"name": "Example SOFA - 121x106 cm",
"base_code": "1020170",
"sku": "1020170001",
"product_type": "0",
"is_active": true,
"custom_attribute_set": null,
"attribute_set": 8,
"attributes": {
"erp_DetailName": "SOFA",
"erp_TechnichDetail": "%100 Ferforje",
"integration_Origin": "China",
"erp_Size": "000",
"integration_Width": "121.0",
"color": "Colorless",
"integration_Heighth": "106.0",
"size_height": "106.0",
"size_width": "121.0",
"erp_depth": "48.0",
"integration_gender": "General",
"erp_ModelNo": "157A027005",
"erp_groupname": "CONCEPT",
"integration_ModelNo": "157A027005",
"erp_Year": "2007"
},
"attributes_kwargs": {
"erp_MainColor": {
"value": "X",
"data_type": "dropdown",
"label": "X"
},
"erp_Size": {
"value": "000",
"data_type": "dropdown",
"label": "000"
},
"color": {
"value": "COLORLESS",
"data_type": "dropdown",
"label": "COLORLESS"
},
"size": {
"value": "Standart",
"data_type": "dropdown",
"label": "Standart"
},
"erp_Origin": {
"value": "China",
"data_type": "dropdown",
"label": "China"
},
"gender": {
"value": "General",
"data_type": "dropdown",
"label": "General"
},
"erp_groupname": {
"value": "CONCEPT",
"data_type": "dropdown",
"label": "CONCEPT"
}
},
"extra_attributes": {}
},
{
"id": 15081,
"name": "LOREM SOFA NATUREL 260X126X80CM",
"base_code": "1021564",
"sku": "1021564001",
"product_type": "0",
"is_active": false,
"custom_attribute_set": null,
"attribute_set": 8,
"attributes": {
"erp_DetailName": "SOFA",
"integration_Origin": "VİETNAM",
"erp_Size": "000",
"integration_Width": "0.0",
"color": "Colorless",
"integration_Heighth": "0.0",
"size_height": "0.0",
"size_width": "0.0",
"size_depth": "0.0",
"integration_gender": "Genel",
"erp_ModelNo": "029A028010",
"erp_MalGrupAdi": "CONCEPT",
"integration_ModelNo": "029A028010",
"gender": "General",
"erp_Cinsiyet": "General",
"erp_groupname": "CONCEPT",
"erp_Year": "2008"
},
"attributes_kwargs": {
"erp_Size": {
"value": "000",
"data_type": "dropdown",
"label": "000"
},
"color": {
"value": "COLORLESS",
"data_type": "dropdown",
"label": "COLORLESS"
},
"size": {
"value": "Standart",
"data_type": "dropdown",
"label": "Standart"
},
"erp_Origin": {
"value": "China",
"data_type": "dropdown",
"label": "China"
},
"gender": {
"value": "General",
"data_type": "dropdown",
"label": "General"
},
"erp_groupname": {
"value": "CONCEPT",
"data_type": "dropdown",
"label": "CONCEPT"
}
},
"extra_attributes": {}
}
]
}
Create Product
This service has upsert logic. If a given ‘product_sku’ exists in the system, the product will be updated with the given parameters. If there is no matching product_sku, a new product will be created.

Note: Before a product is created, the required attribute values for color and size must be created.
Parameter
Data Type
In
Required
Description
name
string
body
YES
Product name
base_code
dict
body
YES
Product base code
sku
string
body
YES
Stock keeping unit
product_type
enum
body
YES
Product type (simple: 0, product_meta: 1, bundle: 2, grouped: 3, miscellaneous: 4)
is_active
boolean
body
Defines if the product is active or passive. If the parameter is False, the product is removed from all sales channels.
attribute_set
id
body
YES
ID of the related attribute set
attributes
dict
body
Attribute list
custom_attribute_set
integer
body
Additional attribute set ID
attributes_kwargs
dict
body
Details of the attributes attached to the product
extra_attributes
dict
body
YES
This parameter is used neither in the backend (Omnitron) nor on the website. It can be used as an additional attribute note such as attribute ID in the ERP side.
If Attribute type is ‘text’ or ‘text_area’ and the attribute will be used in a different language, ‘is_localizable’ parameter should be True. In order to send language translation for an attribute, the Accept-Language parameter needs to be added to the header. Accept-Language parameter is an optional parameter. If it is not sent, Omnitron's default language will be defined.
Note: Before sending language translation for a product, the product must be first created in Omnitron's default language.
Request POST
POST request is used to create a new product.
‘content_type’ header represents the response type.
‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.
In this example, the product will be created in Turkish ("tr-tr"), which is Omnitron's default language.
Path: products/
import requests
import json
url = "https://{customer_api_url}/api/i1/products/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token),
}
data = {
'base_code': '1020583001',
'sku': '102058302219001',
'product_type': '0',
'name': 'Sofa Adi',
'is_active': True,
'attribute_set': 644,
'attributes': {
'akinon_filterable_size':'L',
'brand':'Adidas',
},
'extra_attributes': {}
}
response = requests.post(url, headers=headers,data=json.dumps(data))
print(response.text)
Response
Returns the created product data. Response status is expected to be HTTP-201 Created.
Resource properties are in Python format.
Property
Data Type
Description
id
int
Product ID
name
string
Product name
base_code
dict
Product base code
sku
string
Stock keeping unit
is_active
boolean
Defines whether the product is active or passive
attribute_set
id
ID of the related attribute set
attributes
dict
Attribute list
custom_attribute_set
integer
Additional attribute set ID
attributes_kwargs
dict
Details of the attributes attached to the product
extra_attributes
dict
Additional attributes
{
"id": 357467,
"name": "Sofa Adi",
"base_code": "1020583001",
"sku": "102058302219001",
"product_type": "0",
"is_active": true,
"custom_attribute_set": null,
"attribute_set": 644,
"attributes": {
"brand": "Adidas",
"akinon_filterable_size": "L"
},
"attributes_kwargs": {
"akinon_filterable_size": {
"value": "L",
"data_type": "dropdown",
"label": "L"
}
},
"extra_attributes": {}
}
Request POST
POST request is used to create a new product.
‘content_type’ header represents the response type.
‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.
In this example, the product will be updated with the second language - English ("en-us"), therefore we need to use the django_language field or the Accept-Language header.
Path: products/
import requests
import json
url = "https://{customer_api_url}/api/i1/products/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token),
}
cookies = {
'django_language':'en-us'
}
data = {
'base_code': '1020583',
'sku': '102058302219',
'product_type': '0',
'name': 'Sofa EN',
'is_active': True,
'attribute_set': 151,
'language':'en-us',
'attributes': {
'color': '0001',
'description':'cotton sofa',
'attribute_set': "151",
'erp_color': "22",
'erp_define': "single sofa",
'erp_pattern': "009",
'erp_brand': "096",
},
'extra_attributes': {}
}
response = requests.post(url, headers=headers, cookies=cookies , data=json.dumps(data))
print(response.text)
Response
Returns the created product data. Response status is expected to be HTTP-201 Created. Resource properties are in Python format.
Property
Data Type
Description
id
int
Product ID
name
string
Product name
base_code
dict
Product base code
sku
string
Stock keeping unit
is_active
boolean
Defines if the product is active or passive
attribute_set
id
ID of the related attribute set
attributes
dict
Attribute list
custom_attribute_set
integer
Additional attribute set ID
attributes_kwargs
dict
Details of the attributes attached to the product
extra_attributes
dict
Additional attributes
{
"id": 357170,
"name": "Sofa EN",
"base_code": "1020583",
"sku": "102058302219",
"product_type": "0",
"is_active": true,
"custom_attribute_set": null,
"attribute_set": 151,
"attributes": {
"l_name": "Sofa EN"
},
"attributes_kwargs": {},
"extra_attributes": {}
}
Language Support
To create products with translations, you need to add an Accept-Language header. The given language in the header determines the translatable fields behavior. ‘Name’ and ‘attributes’ that have is_localizable parameter True (Check the Attributes section for more info) are translatable. Users can add other language behavior by updating products with a desirable language.
Request POST
Below request creates a product and their translatable fields in the English language.
‘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:products/
import requests
import json
url = "https://{customer_api_url}/api/i1/products/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token)
'Accept-Language': 'en-us'
}
data = {
'base_code': '1020583',
'sku': '1020583099',
'product_type': '0',
'name': 'Test Rock Guitar',
'is_active': True,
'attribute_set': 151,
'attributes': {
'color': 'blue',
},
'extra_attributes': {}
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
Response
Response contains all product data. Response status is expected to be HTTP-201 Created.
{
"id": 357103,
"name": "Test Rock Guitar",
"base_code": "1020583",
"sku": "1020583099",
"product_type": "0",
"is_active": true,
"custom_attribute_set": null,
"attribute_set": 151,
"attributes": {},
"attributes_kwargs": {},
"extra_attributes": {}
}
Update Product
Updates the existing product based on its SKU by setting updated values of the parameters. How to get an SKU and other details are explained under Search Product section.
Property
Data Type
In
Description
name
string
body
Product name
base_code
dict
body
Product base code
sku
string
body
Stock keeping unit
product_type
enum
body
Product type (simple: 0, product_meta: 1, bundle: 2, grouped: 3, miscellaneous: 4)
is_active
boolean
body
Defines if the product is active or passive. If it is passive, the product is removed from all sales channels.
attribute_set
id
body
ID of the related attribute set
attributes
dict
body
Attribute list
custom_attribute_set
integer
body
Additional attribute set ID
attributes_kwargs
dict
body
Details of the attributes attached to the product
extra_attributes
dict
body
Additional attributes
Request POST
Sample POST request for updating a product is shown below. It is an update request since the given SKU already exists in the system.
‘content_type’ header represents the response type.
‘Authorization’ header is a required header for authentication. You can retrieve api_token with login.
Path:products/
import requests
import json
url = "https://{customer_api_url}/api/i1/products/"
api_token = "f532eXXXXXXXXXXXXXXXXX201XXXXX9332d"
headers = {
'content-type': 'application/json',
'Authorization': 'Token {}'.format(api_token)
}
data = {
'base_code': '1020583',
'sku': '1020583099',
'product_type': '0',
'name': 'Test Rock Guitar',
'is_active': True,
'attribute_set': 151,
'attributes': {
'color': 'blue',
},
'extra_attributes': {}
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)
Response
Returns the updated product fields. The table below shows the response properties in Python format. Every field has been explained in the description section of the table.
Property
Data Type
Description
id
int
Product ID
name
string
Product name
base_code
dict
Product base code
sku
string
Stock keeping unit
is_active
boolean
Defines if the product is active or passive
attribute_set
id
ID of the related attribute set
attributes
dict
Attribute list
custom_attribute_set
integer
Additional attribute set ID
attributes_kwargs
dict
Details of the attributes attached to the product
extra_attributes
dict
Additional attributes
{
"id": 357103,
"name": "Test Rock Guitar",
"base_code": "1020583",
"sku": "1020583099",
"product_type": "0",
"is_active": true,
"custom_attribute_set": null,
"attribute_set": 151,
"attributes": {},
"attributes_kwargs": {},
"extra_attributes": {}
}
Last updated
Was this helpful?

