Product Attribute

Manage product attributes

Create attribute

POST ‎‎ https://<domain>/<api prefix>/<version>/commerce/product/create/attribute/

This endpoint will help to create a new attribute to the system

Headers

NameTypeDescription

apikey*

string

apikey

Authorization*

string

Bearer access token

Request Body

NameTypeDescription

name*

dict

Attribute name, eg: {"en":"<name>"}

description*

dict

Attribute description, eg:{"en":"<description>"}

data_type*

string

Data type, possible values are String, Integer, Float, and Boolean.

widget*

string

Supported widgets are select_box, radio_button, color_box, textfield, textarea, and datepicker.

options*

array

contains at least one dict with the following keys

{"status": <boolean>,"label":"<string>","value":"<string>","weight":<integer>}

is_unique

boolean

is_display

boolean

is_required

boolean

attribute_for

string

general or varients

{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': '‎ https://<domain>/<api prefix>/<version>/commerce/product/create/attribute/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>'
  },
  body: JSON.stringify({"name":{"en":"<name in english>","de":"<name in german>"},"data_type":"<attribute data type>","attribute_for":"<attribute for>","widget":"<widget type>","description":{"en":"<description in english>","de":"<description in german>"},"is_unique":"<is unique value>","is_required":"<is required>","is_display":"<need to display>","options":[{"status":"<attribute option status>","label":"<attribute option label>","value":"<attirbute option value>","weight":"<attirbute option weight>"},{"status":"<attribute option status>","label":"<attribute option label>","value":"<attirbute option value>","weight":"<attirbute option weight>"}]})

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://<domain>/<api prefix>/<version>/commerce/product/create/attribute/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>"{\"name\":{\"en\":\"<name in english>\",\"de\":\"<name in german>\"},\"data_type\":\"<attribute data type>\",\"attribute_for\":\"<attribute for>\",\"widget\":\"<widget type>\",\"description\":{\"en\":\"<description in english>\",\"de\":\"<description in german>\"},\"is_unique\":\"<is unique value>\",\"is_required\":\"<is required>\",\"is_display\":\"<need to display>\",\"options\":[{\"status\":\"<attribute option status>\",\"label\":\"<attribute option label>\",\"value\":\"<attirbute option value>\",\"weight\":\"<attirbute option weight>\"},{\"status\":\"<attribute option status\",\"label\":\"<attribute option label>\",\"value\":\"<attirbute option value>\",\"weight\":\"<attirbute option weight>\"}]}",
  CURLOPT_HTTPHEADER => array(
    "apikey: <apikey>",
    "Authorization: Bearer <access token>"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

Field

Description

400

Validation Error

name

Name for {language code} language is required.

400

Validation Error

description

Description for {language code} langauge is required.

400

Validation Error

widget

{widget name} is not a valid choice. Supported widgets are {widgets}.

400

Validation Error

widget

{widget name} is not a valid choice. Supported widgets for data type {data type} is/are {widget/widgets}.

400

Validation Error

data_type

{data_type} is not a valid choice. Supported data types are {data}.

400

Validation Error

widget

{widget} widget can't be selected for an {data_type} data type.

400

Validation Error

options

The selected widget-data_type attribute doesn't support any options. leave it as empty or no need to mention.

400

Validation Error

options

This field is required.

400

Validation Error

name

All languages of names must have a description of the corresponding language.

List Attributes

GET ‎‎ https://<domain>/<api prefix>/<version>/commerce/product/list/attributes/

This endpoint will return list of available product attributes

Query Parameters

NameTypeDescription

en_name

string

English name

Headers

NameTypeDescription

apikey*

string

apikey

Authorization*

string

Bearer access token

{
    "status_code": 200,
    "errors": {},
    "data": {
        "results": [
            {
                "id": <id>,
                "name": {
                    "en": "<name in english>",
                    "de": "<name in german>"
                },
                "description": {
                    "en": "<description in english>",
                    "de": "<description in german>"
                },
                "widget": "<widget type>",
                "attribute_for": "<attribute for>",
                "is_unique": <is unique value>,
                "is_required": <is required>,
                "is_display": <need to display>,
                "options": [
                    {
                        "label": "<attribute option label>",
                        "value": "<attirbute option value>",
                        "status": <attribute option status>,
                        "weight": <attirbute option weight>
                    },
                    {
                        "label": "<attribute option label>",
                        "value": "<attirbute option value>",
                        "status": <attribute option status>,
                        "weight": <attirbute option weight>
                    }
                ],
                "data_type": "<attribute data type>",
                "status": 1
            }
        ],
        "count": <total attibutes count>,
        "previous": <previous url>,
        "next": <next url>
    }
}

Sample Node

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': '‎ https://<domain>/<api prefix>/<version>/commerce/product/list/attributes/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://<domain>/<api prefix>/<version>/commerce/product/list/attributes/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "apikey: <apikey>",
    "Authorization: Bearer <access token>"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Get A Attribute

GET ‎https://<domain>/<api prefix>/<version>/commerce/product/get/attribute/<attribute id>/

This endpoint will return a single attribute details

Headers

NameTypeDescription

apikey*

string

apikey

Aurthorization*

string

Bearer access token

{
    "status_code": 200,
    "errors": {},
    "data": {
        "id": <id>,
        "name": {
            "en": "<name in english>",
            "de": "<name in german>"
        },
        "description": {
            "en": "<description in english>",
            "de": "<description in german>"
        },
        "widget": "<widget type>",
        "attribute_for": "<attribute for>",
        "is_unique": <is unique value>,
        "is_required": <is required>,
        "is_display": <need to display>,
        "options": [
            {
                "label": "<attribute option label>",
                "value": "<attirbute option value>",
                "status": <attribute option status>,
                "weight": <attirbute option weight>
            },
            {
                "label": "<attribute option label>",
                "value": "<attirbute option value>",
                "status": <attribute option status>,
                "weight": <attirbute option weight>
            }
        ],
        "data_type": "<attribute data type>",
        "status": 1
    }
}

Sample code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': '‎https://<domain>/<api prefix>/<version>/commerce/product/get/attribute/<attribute id>/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://<domain>/<api prefix>/<version>/commerce/product/get/attribute/<attribute_id>/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "apikey: <apikey>",
    "Authorization: Bearer <access token"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Delete Attribute

DELETE ‎https://<domain>/<api prefix>/<version>/commerce/product/delete/attribute/<attribute id>/

This endpoint will help to delete a product attribute from the system.

Headers

NameTypeDescription

apikey*

string

apikey

Authorization*

string

Bearer access token

{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample code

Node

var request = require('request');
var options = {
  'method': 'DELETE',
  'url': 'https://<domain>/<api prefix>/<version>/commerce/product/delete/attribute/<attribute_id>/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/commerce/product/delete/attribute/<attribute_id>/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'DELETE',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Update Attribute

POST ‎https://<domain>/<api prefix>/<version>/commerce/product/update/attribute/<attribute id>/

This endpoint will help to edit a product attribute details.

Headers

NameTypeDescription

apikey*

string

apikey

Authorization*

string

Bearer access token

Request Body

NameTypeDescription

String

Same as create attribute

{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://<domain>/<api prefix>/<version>/commerce/product/update/attribute/<attribute_id>/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  body: JSON.stringify({"name":{"en":"<name in english>","de":"<name in german>"},"data_type":"<attribute data type>","attribute_for":"<attribute for>","widget":"<widget type>","description":{"en":"<description in english>","de":"<description in german>"},"is_unique":"<is unique value>","is_required":"<is required>","is_display":"<need to display>","options":[{"status":"<attribute option status>","label":"<attribute option label>","value":"<attirbute option value>","weight":"<attirbute option weight>"},{"status":"<attribute option status>","label":"<attribute option label>","value":"<attirbute option value>","weight":"<attirbute option weight>"}]})

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/commerce/product/update/attribute/<attribute_id>/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "name":{"en":"<name>"},
    "description":{"en":"<description>"},
    "data_type":"<data_type>",
    "widget":"<widget>",
    "options":[{"status": <status>,"label":"<attribute_option_label>","value":"<value>","weight":<weight>}]
}',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Last updated