GET products/

Возвращает список всех продуктов либо указанных продуктов

Список параметров

ПараметрТипОписаниеОбязательный
fieldslist<int>список идентификаторов тех атрибутов, которые должны присутствовать в ответенет
with_metabooelanотдавать или нет блок meta, по умолчанию trueнет
with_attributesbooleanотдавать или нет блок attributes, по умолчанию trueнет
with_assetsbooleanотдавать или нет блок assets, по умолчанию trueнет
with_categoriesbooleanотдавать или нет блок categories, по умолчанию trueнет
with_relationsbooleanотдавать или нет блок relations, по умолчанию trueнет
use_attributes_idbooleanиспользовать как идентификаторы атрибутов id вместо именнет
category_idslist<int>список идентификаторов категорий, по который будет производиться поиск товаровнет
catalog_idslist<int>список идентификаторов каталогов, по которым будет производиться поиск товаровнет
relation_idslist<int>список идентификаторов категорий связанных товаров, по которым будет производиться поиск товаровнет
filterslist<string>список фильтровнет
last_tsintполучить товары, у которых значение timestamp больше чем last_tsнет

Структура поля filters

[
    {
        "type":[type_name],
        "exp":[equal|notequal|in|has_no_values|has_any_values|term|fulltext],
        "val": [value]
    }
]


Структура запроса должна быть валидным JSON типом данных, однако должна быть передана как строка.


Так как структура является списком, то возможна передача сразу несколько условий поиска. Но надо учитывать тот факт, что фильтрация будет нисходящей, т.е. каждый последующий фильтр будет применяться на результат предыдущего.


Список полей filters

ПолеОписаниеОсобые условия
typeуказатель на название типа, по которому будет производиться поискдля поиска по категориям указывать __category, для поиска по SKU _id
expлогическое условие, которое будет выполнятьсядля __category приемлемым будут только условия equal, in, notequal
valискомое значениене передается, если exp равно has_no_value или has_any_value

Список значений поля exp

ЗначениеОписание
inзначение равно
notinзначение не равно
in_listзначение содержится в списке
has_no_valueзначения отсутствуют вообще
has_any_valueесть любое значение
termзначение содержит
not_termзначение не содержит
countколичество

Пример запроса

curl -XGET "[endpoint]/products/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 3,
    "next": null,
    "previous": null,
    "results": [
        {
	        "meta": {
    	        "id": "1234567",
        	    "name": "Простой продукт",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "SKU": "1234567",
            	"Название": "Простой продукт",
	            "Цвет": "Черный"
    	    },
        	"assets": [],
	        "categories": [],
    	    "relations": []
	    },
		{
	        "meta": {
    	        "id": "124354",
        	    "name": "set",
            	"version": 1,
	            "type": "set",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "SKU": "124354",
            	"Название": "Продукт",
	            "Цвет": "Белый"
    	    },
        	"assets": [],
	        "categories": [],
    	    "relations": []
	    },
		{
	        "meta": {
    	        "id": "1243549",
        	    "name": "Продукт 3",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "SKU": "1243549",
            	"Название": "Продукт 3",
	            "Цвет": "Серый"
    	    },
        	"assets": [],
	        "categories": [
				{
                    "id": 1,
                    "name": "Категория",
                    "created_at": "2017-11-30T19:33:26.561567",
                    "parent": null,
                    "is_active": true
                }
			],
    	    "relations": []
	    }
	]
}

Пример запроса

curl -XGET "[endpoint]/products/?use_attributes_id=true" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 3,
    "next": null,
    "previous": null,
    "results": [
        {
	        "meta": {
    	        "id": "1234567",
        	    "name": "Простой продукт",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "1": "1234567",
            	"2": "Простой продукт",
	            "3": "Черный"
    	    },
        	"assets": [],
	        "categories": [],
    	    "relations": []
	    },
		{
	        "meta": {
    	        "id": "124354",
        	    "name": "set",
            	"version": 1,
	            "type": "set",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "1": "124354",
            	"2": "Продукт",
	            "3": "Белый"
    	    },
        	"assets": [],
	        "categories": [],
    	    "relations": []
	    },
		{
	        "meta": {
    	        "id": "1243549",
        	    "name": "Продукт 3",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "1": "1243549",
            	"2": "Продукт 3",
	            "3": "Серый"
    	    },
        	"assets": [],
	        "categories": [
				{
                    "id": 1,
                    "name": "Категория",
                    "created_at": "2017-11-30T19:33:26.561567",
                    "parent": null,
                    "is_active": true
                }
			],
    	    "relations": []
	    }
	]
}


Пример запроса

curl -XGET "[endpoint]products/?filters=[{"type":"__category","exp":"in","val": [1]}]" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
	        "meta": {
    	        "id": "1243549",
        	    "name": "Продукт 3",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "SKU": "1243549",
            	"Название": "Продукт 3",
	            "Цвет": "Серый"
    	    },
        	"assets": [],
	        "categories": [
				{
                    "id": 1,
                    "name": "Категория",
                    "created_at": "2017-11-30T19:33:26.561567",
                    "parent": null,
                    "is_active": true
                }
			],
    	    "relations": []
	    }
	]
}

POST products/

Создает продукт

Список параметров:

ПараметрТипОписаниеОбязательный
datastringстрока с данными в формате jsonда
rewritebooleanесли задан True, то товар с этим sku будет перезаписаннет
use_attributes_idbooleanиспользовать как идентификаторы атрибутов id вместо именнет


Пример запроса

curl -XPOST "[endpoint]/products/" -d '{"data": "{"SKU":"1234567", "Название":"Простой продукт", "Цвет": "Черный"}"}' -H "TOKEN: [your_token]" -H "APPID: [your_account_name]" -H "Content-Type: application/json"

Ответ:

[
    {
        "meta": {
   	        "id": "1234567",
       	    "name": "Простой продукт",
           	"version": 1,
            "type": "simple",
   	        "cover": null,
       	    "timestamp": 1513774235
        },
   	    "attributes": {
       	    "SKU": "1234567",
           	"Название": "Простой продукт",
            "Цвет": "Черный"
   	    },
       	"assets": [],
        "categories": [],
   	    "relations": []
    }
]


Пример запроса

curl -XPOST "[endpoint]/products/" -d '{"data": "{"1":"1234567", "2":"Простой продукт", "3": "Черный"}", "use_attributes_id": true}' -H "TOKEN: [your_token]" -H "APPID: [your_account_name]" -H "Content-Type: application/json"

Ответ:

[
    {
        "meta": {
   	        "id": "1234567",
       	    "name": "Простой продукт",
           	"version": 1,
            "type": "simple",
   	        "cover": null,
       	    "timestamp": 1513774235
        },
   	    "attributes": {
       	    "1": "1234567",
           	"2": "Простой продукт",
            "3": "Черный"
   	    },
       	"assets": [],
        "categories": [],
   	    "relations": []
    }
]

PATCH products/[sku]/

Изменяет продукт

Список параметров:

ПараметрТипОписаниеОбязательный
datastringстрока с данными в формате jsonда
use_attributes_idbooleanиспользовать как идентификаторы атрибутов id вместо именнет


Пример запроса

curl -XPATCH "[endpoint]/products/1234567/" -d '{"data": "{"Название":"Переименованный продукт", "Цвет": "Синий"}"}' -H "TOKEN: [your_token]" -H "APPID: [your_account_name]" -H "Content-Type: application/json"

Ответ:

[
    {
        "meta": {
   	        "id": "1234567",
       	    "name": "Переименованный продукт",
           	"version": 1,
            "type": "simple",
   	        "cover": null,
       	    "timestamp": 1513774235
        },
   	    "attributes": {
       	    "SKU": "1234567",
           	"Название": "Переименованный продукт",
            "Цвет": "Синий"
   	    },
       	"assets": [],
        "categories": [],
   	    "relations": []
    }
]

DELETE products/[sku]/

Удаляет продукт с этим sku


Пример запроса

curl -XDELETE "[endpoint]/products/1243549/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

OPTIONS products/

Отображает, какие поля необходимы для создания валидного продукта


Пример запроса

curl -XOPTIONS "[endpoint]/products/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "name": "Products Instance",
    "description": "Обрабатывает товары",
    "renders": [
        "application/json",
        "text/html"
    ],
    "parses": [
        "application/json",
        "application/x-www-form-urlencoded",
        "multipart/form-data"
    ],
    "actions": {
        "POST": {
            "data": {
                "End result": {
                    "type": 6,
                    "required": false,
                    "read_only": false,
                    "id": 122,
                    "label": [
                        [
                            "End result  2"
                        ]
                    ]
                },
                "Бренд": {
                    "type": 2,
                    "required": false,
                    "read_only": false,
                    "id": 127,
                    "label": [
                        [
                            "Бренд = Essie"
                        ],
                        [
                            "Бренд есть значения"
                        ]
                    ]
                },
                "Тип волос": {
                    "type": 2,
                    "required": false,
                    "read_only": false,
                    "id": 141,
                    "label": []
                },
                "Пол": {
                    "type": 2,
                    "required": false,
                    "read_only": false,
                    "id": 143,
                    "label": []
                }
            },
            "required": true
        }
    }


Наименование поляОписание поля
dataСодержит в качестве ключей наименования доступных для редактирования атрибутов
typeСодержит идентификатор типа атрибута
requiredСодержит информацию, обязателен ли данный атрибут для сохранения продукта
read_onlyСодержит информацию можно ли перезаписывать значения данного атрибута
idСодержит идентификатор атрибута
labelСодержит информацию, каким должно быть значение атрибута, чтобы после создания товара к нему был доступ. Требования этого поля обязательны.


GET products/[sku]/categories/

Возвращает список категорий к которым привязан продукт


Пример запроса

curl -XGET "[endpoint]/products/1243549/categories/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results":  [
		{
        	"id": 1,
            "name": "Категория",
            "created_at": "2017-11-30T19:33:26.561567",
            "parent": null,
            "is_active": true
        }
	]
}

POST products/[sku]/categories/

Привязывает продукт c sku к категории

Список параметров:

ПараметрТипОписаниеОбязательный
categoryintидентификатор категории к которой будет привязан продуктда


Пример запроса

curl -XPOST "[endpoint]/products/1243549/categories/" -d {"category": 4} -H "TOKEN: [your_token]" -H "APPID: [your_account_name]" -H "Content-Type: application/json"

Ответ:

[
    {
        "id": 4,
        "name": "New node",
        "created_at": "2017-12-04T19:45:36.353663",
        "parent": 3,
        "is_active": true
    },
    {
        "id": 1,
        "name": "Another category",
        "created_at": "2017-11-30T19:33:26.561567",
        "parent": 3,
        "is_active": true
    }
]

DELETE products/[sku]/categories/[id]/

Удаляет привязку продукта id от категорий


Пример запроса

curl -XDELETE "[endpoint]products/1243549/categories/4/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

OPTIONS products/[sku]/categories/

Отображает, какие поля необходимы для создания валидной категории


Пример запроса
curl -XOPTIONS "[endpoint]/products/[sku]/categories/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "name": "Product Categories List",
    "description": "Обрабатывает категории к которым относится продукт",
    "renders": [
        "application/json",
        "text/html"
    ],
    "parses": [
        "application/json",
        "application/x-www-form-urlencoded",
        "multipart/form-data"
    ],
    "actions": {
        "POST": {
            "category": {
                "type": "id",
                "required": true,
                "read_only": false,
                "label": "Category id"
            }
        }
    }
}

GET products/[sku]/assets/

Возвращает список привязанных файлов


Пример запроса

curl -XGET "[endpoint]/products/1243549/assets/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 32,
            "sku": "1243549",
            "dam": {
                "id": 29,
                "name": "1243549.png",
                "mimetype": "image/png",
                "size": {
                    "width": 1007,
                    "height": 537
                },
                "url": "https://[your_domain].brandquad.ru/media/accounts_data/admc/DAM/CACHE/200x200xPNG/1243549.PNG"
            },
            "attribute": {
                "id": 121,
                "name": "Color"
            }
        }
	]
}

POST products/[sku]/assets/

Связывает файл с таким id с продуктом с таким sku

Список параметров:

ПараметрТипОписаниеОбязательный
attributeintидентификатор атрибута по которому произойдет связьда
damintидентификатор файла с которым будет продуктда


Пример запроса

curl -XPOST "[endpoint]products/1243549/assets/" -d {"attribute": 1, "dam": 32} -H "TOKEN: [your_token]" -H "APPID: [your_account_name]" -H "Content-Type: application/json"

Ответ:

{
    "id": 11,
    "sku": "1243549",
    "dam": {
        "id": 32,
        "name": "1243549.png",
        "mimetype": "image/png",
        "size": {
            "width": 638,
            "height": 1181
        },
        "url": "https://[your_domain].brandquad.ru/media/accounts_data/admc/DAM/CACHE/200x200xPNG/1243549.PNG"
    },
    "attribute": {
        "id": 1,
        "name": "Attribute"
    }
}

DELETE products/[sku]/assets/[id]/

удаляет привязку файла id от продукта sku


Пример запроса

curl -XDELETE "[endpoint]products/1243549/assets/11/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

OPTIONS products/[sku]/assets/

Отображает, какие поля необходимы для создания валидной связи файла с продуктом


Пример запроса

curl -XOPTIONS "[endpoint]/products/[sku]/assets/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "name": "Product Assets List",
    "description": "Обрабатывает привязанные к продуктам файлы",
    "renders": [
        "application/json",
        "text/html"
    ],
    "parses": [
        "application/json",
        "application/x-www-form-urlencoded",
        "multipart/form-data"
    ],
    "actions": {
        "POST": {
            "id": {
                "type": "integer",
                "required": false,
                "read_only": true,
                "label": "ID"
            },
            "sku": {
                "type": "string",
                "required": true,
                "read_only": false,
                "label": "Sku",
                "max_length": 300
            },
            "dam": {
                "type": "field",
                "required": false,
                "read_only": true,
                "label": "Dam"
            },
            "attribute": {
                "type": "field",
                "required": false,
                "read_only": true,
                "label": "Attribute"
            }
        }
    }
}

GET products/[sku]/relations/

получить связи этого товара


Пример запроса

curl -XGET "[endpoint]products/1243549/relations/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 1,
            "title": "С этим товаром покупают",
            "products": [
                "123445",
                "219993",
                "1110086"
            ]
        }
    ]
}

POST products/[sku]/relations/

добавить связь для этого товара

Список параметров:

ПараметрТипОписаниеОбязательный
titlestringНазвание новой группы связанных товаровда
filterslist<dict>Список фильтров по которым будут определены связанные товары

да

Параметры, передаваемые для каждого фильтра:

ПараметрТипОписаниеОбязательный
idintId аттрибута, по которому будет производится поискда
typestring

Указатель на название типа, по которому будет производиться поиск.

Для поиска по категориям указывать __category, для поиска по SKU _id.

да
expstring

Логическое условие, которое будет выполняться

да
vallistИскомое значениеда
namestringИмя атрибута, по которому будет произведен поискда

Примеры val при различных exp:

expТип valПример передачи val
inlist<string>"val": ["value1", "value2"]
notinlist<string>"val": ["value1", "value2"]
in_listlist<string>"val": ["value1", "value2"]
has_no_valueпустой list"val": []
has_any_valueпустой list"val": []
termlist<string>"val": ["value"]
not_termlist<string>"val": ["value"]
countlist<int>"val": [value1, value2]

Пример запроса

curl -XPOST "[endpoint]products/[product_sku]/relations/" -d 'title=title_name&filters=[{"id": attr_id, "exp": "filter_expr", "val": ["value"], "name" : "attr_name", "type": "attr_type"}]' -H "TOKEN: [Api_token]" -H "APPID: [App_with_api_token]"

Ответ:

{
    "id": 8,
    "title": "123",
    "products": [
        "1254325",
        "2124325"
    ]
}

DELETE products/[sku]/relations/[id]/

Удаление связи


Пример запроса

curl -XDELETE "[endpoint]products/1243549/relations/8/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"


OPTIONS products/[sku]/relations/

Отображает, какие поля необходимы для создания валидной связи


Пример запроса

curl -XOPTIONS "[endpoint]/products/[sku]/relations/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "name": "Product Relations List",
    "description": "Обрабатывает связанные товары продуктов",
    "renders": [
        "application/json",
        "text/html"
    ],
    "parses": [
        "application/json",
        "application/x-www-form-urlencoded",
        "multipart/form-data"
    ],
    "actions": {
        "POST": {
            "id": {
                "type": "integer",
                "required": false,
                "read_only": true,
                "label": "ID"
            },
            "title": {
                "type": "string",
                "required": true,
                "read_only": false,
                "label": "Title",
                "max_length": 300
            },
            "products": {
                "type": "field",
                "required": false,
                "read_only": true,
                "label": "Products"
            }
        }
    }
}

GET products/[sku]/set/

Возвращает список продуктов в наборе


Пример запроса

curl -XGET "[endpoint]/products/124354/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
	        "meta": {
    	        "id": "1234567",
        	    "name": "Простой продукт",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "SKU": "1234567",
            	"Название": "Простой продукт",
	            "Цвет": "Черный"
    	    },
        	"assets": [],
	        "categories": [],
    	    "relations": []
	    }
	]
}


POST products/[set_sku]/set/

Добавляет продукт c sku в сет c set_sku

Список параметров:

ПараметрТипОписаниеОбязательный
skustringидентификатор продукта который необходимо добавить в наборда

Пример запроса

curl -XPOST "[endpoint]/products/124354/set/" -d '{"sku": "1243549"}' -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "count": 2,
    "next": null,
    "previous": null,
    "results": [
        {
	        "meta": {
    	        "id": "1234567",
        	    "name": "Простой продукт",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "SKU": "1234567",
            	"Название": "Простой продукт",
	            "Цвет": "Черный"
    	    },
        	"assets": [],
	        "categories": [],
    	    "relations": []
	    },
		{
	        "meta": {
    	        "id": "1243549",
        	    "name": "Продукт 3",
            	"version": 1,
	            "type": "simple",
    	        "cover": null,
        	    "timestamp": 1513774235
	        },
    	    "attributes": {
        	    "SKU": "1243549",
            	"Название": "Продукт 3",
	            "Цвет": "Серый"
    	    },
        	"assets": [],
	        "categories": [
				{
                    "id": 1,
                    "name": "Категория",
                    "created_at": "2017-11-30T19:33:26.561567",
                    "parent": null,
                    "is_active": true
                }
			],
    	    "relations": []
	    }
	]
}

DELETE products/[set_sku]/set/[sku]/

Удаляет продукт c sku из сет c set_sku


Пример запроса

curl -XDELETE "[endpoint]/products/124354/set/1243549/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"


OPTIONS products/[sku]/set/

Отображает, какие поля необходимы для добавления продукта в сет


Пример запроса

curl -XOPTIONS "[endpoint]/products/[sku]/set/" -H "TOKEN: [your_token]" -H "APPID: [your_account_name]"

Ответ:

{
    "name": "Product Set List",
    "description": "Обрабатывает сеты продуктов",
    "renders": [
        "application/json",
        "text/html"
    ],
    "parses": [
        "application/json",
        "application/x-www-form-urlencoded",
        "multipart/form-data"
    ],
    "actions": {
        "POST": {
            "sku": {
                "type": "string",
                "required": true,
                "read_only": false,
                "label": "Product's SKU"
            }
        }
    }
}