У меня возникли сложности при работе с API. Бьюсь над этим уже неделю. Саппорт отвечает очень долго (от 0.5 до 1.5 суток), и ничего конкретного не говорит. Никак не могу разобраться в чем может быть проблема.
Цитата |
"Структура API реализована по архитектуре RESTODATA V4. Коммуникация осуществляется посредством СообщенийJSON" |
Цитата |
3. HttpmethodPatch - частичное изменение элемента Изменяемые параметры элемента должны содержаться в теле запроса URL: https://e-solution.pickpoint.ru/ae/odata/Goods(‘Sku’) ..... Пример2: Для обновления стоков необходимо передавать изменяемую характеристику в полном виде { "@odata.context": "https://e-solution.pickpoint.ru/ae/odata/$metadata#Goods/$entity", "Characteristics": [ { "Code": "107490", - IDхарактеристики "Stock": 10 - остатки } ] } |
Цитата |
PATCH-запрос (https://tools.ietf.org/html/rfc5789#section-2.1) изменяет товар, при PATCH-запросах необходимо указывать Id-товара, например https://e-solution.pickpoint.ru/ae/odata/Go...'1377') К сожалению, без дополнительной информации, например логов, включающих полные данные, которые вы передаете на наши сервера, записанных любым удобным вам способом, мы ничем вам помочь не сможем. |
Цитата |
[url] => https://e-solution.pickpoint.ru/ae/odata/Go...'1377') [post] => Array ( [@odata.context] => https://e-solution.pickpoint.ru/ae/odata/...ds/$entity [Characteristics] => Array ( [Code] => 10071561377 [Stock] => 0 ) ) |
Цитата |
{"error":{"code":"","message":"Authorization has been denied for this request."}} |
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_array) ); // json
// Заголовки
$this->headers[] = 'Authorization: '. $this->header_array['token_type']. ' ' .$this->header_array['access_token'];
$this->headers[] = 'Accept: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers);
[url] => https://e-solution.pickpoint.ru/ae/odata/Goods('1377')
[post] => Array
(
[@odata.context] => https://e-solution.pickpoint.ru/ae/odata/$metadata#Goods/$entity
[Characteristics] => Array
(
[Code] => 10071561377
[Stock] => 2
)
)
ВНИМАНИЕ!
Для всех запросов, требующих авторизации необходимо добавлять заголовок Authorization, с указанием действующего токена. При отсутствии, либо истечении срока годности, токена будет возвращаться ответ: HTTP/1.1 401 Unauthorized
В каждый запрос рекомендуется добавлять следующие заголовки:
• Content-Type: application/json
• Accept: application/json
Максимальное количество выдаваемых элементов на одну страницу: 100 штук. для заказов и 10 штук для товаров
Запрос общего количества существующих элементов в данный момент не реализован.
При работе с данными OData поддерживаются следующие http методы:
1. Get - получение существующего списка элементов (доступны стандартные OData-способы выборки и фильтрации данных)
2. Get - получение одного элемента по его идентификатору
3. Put - полная перезапись существующего элемента. Все элементы запросы должны быть помещены в Url, при отсутствии какого-либо элемента он заполняется данными по-умолчанию (при возможности).
4. Post - добавление нового элемента. Тело запроса должно содержать только один новый элемент в формате json. Пропущенные поля (при возможности) будут заполнены значениями по-умолчанию.
Следует добавить заголовок Content-Type: application/json
5. Patch/Merge - частичное изменение элемента. Изменяемые поля элемента следует поместить в Url запроса
3. Http method Patch - частичное изменение элемента
Изменяемые параметры элемента должны содержаться в теле запроса
URL: https://e-solution.pickpoint.ru/ae/odata/Goods(‘Sku’)
....
Пример2: Для обновления стоков необходимо передавать изменяемую характеристику в полном виде
{
"@odata.context": "https://e-solution.pickpoint.ru/ae/odata/$metadata#Goods/$entity",
"Characteristics": [
{
"Code": "107490", - ID характеристики
"Stock": 10 - остатки
}
]
}