Документация по работе с API Uvygoda

Для доступа к API Вам необходимо иметь статус продавца (PRO аккаунт).

Все запросы отправляются на адрес
https://uvygoda.ru/local/api/api.php
Данные передаются в json формате POST запросом.

Загаловки:
Content-Type: application/json;charset=UTF-8
Token: token
method: МЕТОД

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  NO_AUTH',
	'method: getToken'
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

В ответ приходит структура JSON.
Обязательные поля ответа:
RESULT: boolean - результат запроса, в случае успешного запроса вернет true.
ERROR: string or false - в случае ошибки вернет строку с описанием ошибки иначе вернет false.

Список доступных методов:

Метод:
getToken

Парaметры:
LOGIN, PASS

Действия:
Запрос на получение бессрочного токена.
При повторном запросе токен обновится.

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  NO_AUTH',
	'method: getToken'
];
$arr = [
	"LOGIN"=>"test@test.ru",
	"PASS"=>"myOriginalPass"
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"TOKEN":"STRINGUSERTOKEN",
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"TOKEN":false,
	"ERROR":"Неверный логин или пароль"
}

Метод:
getStages

Действия:
Запрос на получение всех статусов отгрузок.

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: getStages'
];
$arr = [];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"STAGES":{
		"0":{
			"ID":123,
			"NAME":"Новый, не оплачен",
		},
		"1":{
			"ID":124,
			"NAME":"Оплачен",
		},
	},
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"STAGES":false,
	"ERROR":"Информация об ошибке"
}

Метод:
getOrderProperties

Действия:
Запрос на получение всех параметров заказа.

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: getOrderProperties'
];
$arr = [];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"PROPERTIES":{
		"0":{
			"ID":123,
			"NAME":"Имя",
		},
		"1":{
			"ID":124,
			"NAME":"Фамилия",
		},
	},
	"ERROR":false
}

Oтвет при ошибке:

{
	"RESULT":false,
	"PROPERTIES":false,
	"ERROR":"Информация об ошибке"
}

Метод:
setWebHook

Парaметры:
URL: "https://mydomain.ru/path-to-webhook"

Действия:
Установка адреса для получения событий.

События:
1. Обновление статусов товара
2. Новый заказа
3. Обновление статуса заказа
4. Новое сообщение в чате
5. Входящее сообщение в чате

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: setWebHook'
];
$arr = [
	"URL"=>$url
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"URL":"SUCCES",
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"URL":false,
	"ERROR":"Информация об ошибке"
}

Метод:
getSections

Парaметры:
FILTER: ALL,LVL_1,CHILDREN_123, PARENT_123,ID_123

Описание параметров:
FILTER - Предназначено для отбора разделов.

Возможные значения:
ALL - Весь список разделов.
LVL_[1-3] - Разделы [1-3]го уровня.
CHILDREN_123 - Подразделы раздела с идентификатором 123.
PARENT_123 - Родитель раздела с идентификатором 123.
ID_123 - Раздела с идентификатором 123.

Действия:
Запрос на получение разделов.

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: getSections'
];
$arr = [
	"FILTER"=>"ALL",
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"SECTIONS":{
		"1":{
			"ID":1,
			"NAME":"Имя",
			"LVL":1,
			"PARENT_ID":false,
		},
		"123":{
			"ID":123,
			"NAME":"Имя",
			"LVL":2,
			"PARENT_ID":1,
		},
		"124":{
			"ID":124,
			"NAME":"Имя",
			"LVL":3,
			"PARENT_ID":123,
		},
	},
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"SECTIONS":false,
	"ERROR":"Информация об ошибке"
}

Метод:
getSectionProperties

Парaметры:
SECTION_ID: 123

Описание параметров:
SECTION_ID - Идентификатор раздела 3го уровня для получения всех свойств товара.

Действия:
Запрос на получение свойств для заполнения карточек.

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: getSectionProperties'
];
$arr = [
	"SECTION_ID"=>123,
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"PROPERTIES":{
		"1":{
			"ID":1,
			"NAME":"Имя",
			"REQUIRED":true,
			"VALUES":false,
			"TYPE":"STRING",
		},
		"123":{
			"ID":123,
			"NAME":"Имя",
			"REQUIRED":false,
			"TYPE":"LIST",
			"VALUES":{
				"1":{
					"ID":1,
					"VALUE":"Имя",
				},
				"2":{
					"ID":2,
					"VALUE":"Имя",
				},
			},
		},
		"124":{
			"ID":124,
			"NAME":"Имя",
			"REQUIRED":true,
			"VALUES":false,
			"TYPE":"INTEGER",
		},
	},
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"PROPERTIES":false,
	"ERROR":"Информация об ошибке"
}

Метод:
getProductList

Парaметры:
FILTER: ALL,MODERATION,AWAITING,PUBLIC,END,DRAFT

Описание параметров:
FILTER - Предназначено для отбора товаров.

Возможные значения:
ALL - Весь список Ваших товаров.
MODERATION - Ожидает модерации.
PUBLIC - Продаются.
AWAITING - Ожидает публикации.
END - Снят с продажи.
DRAFT - Черновик.

Действия:
Запрос на получение Ваших товаров

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: getProductList'
];

$arr = [
	"FILTER"=>"ALL",
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"ITEMS":{
		"1":{
			"ID":1,
			"NAME":"Имя",
			"STAGE":"MODERATION",
			"VALUES":false,
			"SECTION_ID":123,
			"URL":"https://uvygoda.ru/catalog/path",
		}
	},
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"ITEMS":false,
	"ERROR":"Информация об ошибке"
}

Метод:
getProductInfo

Парaметры:
ID: 123

Действия:
Запрос на получение всей информации по товару

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: getProductInfo'
];
$arr = [
	"ID"=>123,
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"ITEM":{
		"1":{
			"ID":1,
			"NAME":"Имя",
			"STAGE":"MODERATION",
			"VALUES":false,
			"SECTION_ID":123,
			"URL":"https://uvygoda.ru/catalog/path",
			"PROPERTIES":{
				"1":{
					"ID":1,
					"NAME":"Имя",
					"REQUIRED":true,
					"VALUES":false,
					"TYPE":"STRING",
				},
				"123":{
					"ID":123,
					"NAME":"Имя",
					"REQUIRED":false,
					"TYPE":"LIST",
					"VALUES":{
						"1":{
							"ID":1,
							"VALUE":"Имя",
						},
						"2":{
							"ID":2,
							"VALUE":"Имя",
						},
					},
				},
				"124":{
					"ID":124,
					"NAME":"Имя",
					"REQUIRED":true,
					"VALUES":false,
					"TYPE":"INTEGER",
				},
			}
		}
	},
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"ITEM":false,
	"ERROR":"Информация об ошибке"
}

Метод:
addProduct

Парaметры:
SECTION_ID - Основной раздел
NAME - Наименование товара
PRICE - Минимальная стоимость товара
*Расчет итоговой стоимости товара производится по формуле:
150*1.18=177 где,
150 - Сумма, которую Вы хотите получить за 1 ед. товара;
1.18 - Процент на расходы маркетплейса и эквайринга;
177 - Итоговая стоимость товара, которую необходимо вписать в поле;
STOCK - Доступное кол-во к продаже
DESCRIPTION - описание товара
PROPERTIES - Массив свойств состоящий из пар иденитификатор свойства - значение
123:value or value id
PICTURES - Списко картинок (ссылки на картинки) (максимум 4шт)
PREVIEV_PICTURE - Картинка анонса

Действия:
Добавление карточки товара

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: addProduct'
];
$arr = [
"SECTION_ID"=>123, //Обязательный параметр
	"NAME"=>"Наименование",  //Обязательный параметр
	"PRICE"=>123,  //Обязательный параметр
	"STOCK"=>123,  //Обязательный параметр
	"DESCRIPTION"=>"<p>Описание HTML	</p>",  //Разрешены p,b,i,h1-h6  Обязательный параметр
	"PROPERTIES"=>[
		123:"tre",
		222:455
	], //Обязательный параметр
	"PICTURES"=>[
		"urlimg1",
		"urlimg2",
		"urlimg3",
		"urlimg4",
	], //Обязательный параметр
	"PREVIEV_PICTURE"=>"urlimganonce",  //Обязательный параметр
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"PRODUCT_ID":123,
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"PRODUCT_ID":false,
	"ERROR":"Информация об ошибке"
}

Метод:
sendProductPublish

Парaметры:
ID: 123

Действия:
Отправка товара на модерцию

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: sendProductPublish'
];
$arr = [
	"ID"=>123
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"MODERATION":"SUCCESS",
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"MODERATION":false,
	"ERROR":"Информация об ошибке"
}

Метод:
updateProduct

Парметры:
PRODUCT_ID - Идентификатор товара
SECTION_ID - Основной раздел
NAME - Наименование товара
PRICE - Минимальная стоимость товара
*Расчет итоговой стоимости товара производится по формуле:
150*1.18=177 где,
150 - Сумма, которую Вы хотите получить за 1 ед. товара;
1.18 - Процент на расходы маркетплейса и эквайринга;
177 - Итоговая стоимость товара, которую необходимо вписать в поле;
STOCK - Доступное кол-во к продаже
DESCRIPTION - описание товара
PROPERTIES - Массив свойств состоящий из пар иденитификатор свойства - значение
123:value or value id
PICTURES - Списко картинок (ссылки на картинки) (максимум 4шт)
PREVIEV_PICTURE - Картинка анонса

Действия:
Обновление карточки товара. При обновлении свойств или картинок обновляются ВСЕ свойства или картинки.

Пример:

$headers = [
	'Content-Type: application/json;charset=UTF-8',
	'Token:  myToken',
	'method: updateProduct'
];
$arr = [
"PRODUCT_ID"=>123,  //Обязательный параметр
	"SECTION_ID"=>123, 
	"NAME"=>"Наименование", 
	"PRICE"=>123, 
	"STOCK"=>123, 
	"DESCRIPTION"=>"<p>Описание HTML	</p>",  //Разрешены p,b,i,h1-h6
	"PROPERTIES"=>[
		123:"tre",
		222:455
	], 
	"PICTURES"=>[
		"urlimg1",
		"urlimg2",
		"urlimg3",
		"urlimg4",
	], 
	"PREVIEV_PICTURE"=>"urlimganonce", 
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://uvygoda.ru/local/api/api.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arr));
$response =  json_decode(curl_exec($curl),true);
curl_close($curl);

Ответ:

{
	"RESULT":true,
	"UPDATE":"SUCCESS",
	"ERROR":false
}

Ответ при ошибке:

{
	"RESULT":false,
	"UPDATE":false,
	"ERROR":"Информация об ошибке"
}