Имя: Пароль:
1C
1С v8
Перестал работать PUT запрос на изменение статуса заказа в Яндекс-Маркете
0 eddy_n
 
05.04.23
10:42
Как выяснилось, уже 1,5 месяца примерно. Сразу могу сказать тело запроса - присутствует, зная о том, что PUT запрос без тела платформа 1С считает ошибочным и заменяет метод на HEAD.

Заг = Новый Соответствие;
СтрЗаголовков = "OAuth oauth_token=""Зн_oauth_token"", oauth_client_id=""Зн_oauth_client_id""";
СтрЗаголовков = СтрЗаменить(СтрЗаголовков,"Зн_oauth_token", oauth_token);
СтрЗаголовков = СтрЗаменить(СтрЗаголовков,"Зн_oauth_client_id", oauth_client_id);
Заг.Вставить("Authorization", СтрЗаголовков);
Заг.Вставить("Content-type", "application/json");
Запрос = Новый HTTPЗапрос(Запр + Заказ.market_order_id + "/status.json", Заг);
Запрос.УстановитьТелоИзСтроки(СтрЗапроса, КодировкаТекста.UTF8);


Запрос возвращает код состояния 400.
Может substatus заказа (его в запросе нет) стал обязателен для абсолютно всех статусов заказа?
1 eddy_n
 
05.04.23
10:40
Или стали обязательными Диапазон дат доставки и Реальная дата доставки?
2 eddy_n
 
05.04.23
10:55
А может перестало работать потому, что Запрос в 1с явно не определен как PUT?
3 НафНаф
 
05.04.23
10:58
(0) ну а где выполнение запроса?
4 eddy_n
 
05.04.23
11:03
(3) BAD REQUEST
5 eddy_n
 
05.04.23
12:50
Может ещё от схемы работы зависит: FBS, DBS?
6 eddy_n
 
05.04.23
12:51
И типа субстатус в зависимости от схемы - обязателен?
7 timurhv
 
05.04.23
13:03
Это?
https://yandex.ru/dev/market/partner-api/doc/ru/reference/orders/updateOrderStatus#request

В ответе есть причина отказа
8 eddy_n
 
05.04.23
13:19
Это я видел. А если статус DELIVERY, DELIVERED?
9 eddy_n
 
05.04.23
13:28
Я уже и метод явно определил: PUT. Не помогло. Может даты?
10 eklmn
 
05.04.23
14:39
не надо гадать, ответ будет в message
{
    "status": "OK",
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}
11 eddy_n
 
05.04.23
14:41
Кажется понял. Раньше запрос шёл через "v2...". Теперь скорее всего это не прокатывает. И надо явно прописывать "https://partner.market.yandex.ru..."
12 eddy_n
 
05.04.23
14:42
(10) Про месседж я писал: Bad Request.
13 eddy_n
 
05.04.23
17:11
Кажется, понял. Нельзя было включать в запрос пустой substatus. Субстатус должен включаться только в случае статусов PROCESSING и CANCELLED.
14 FirstLine Support
 
05.04.23
20:37
(13) в Постмане сначала попробуй, быстрее разберешься
15 eddy_n
 
05.04.23
20:49
(14) Всё уже разобрался. Не принимает Яндекс маркет статусы с пустым субстатусом.
16 timurhv
 
05.04.23
21:19
(15) У Я.Маркета заявлено свое расширение для 1С конфигураций, оно не работает или вы свою самописку используете?
17 FirstLine Support
 
05.04.23
21:30
(16) в том расширении используется процентов 30 от всей функциональности api, управление статусами я сам допиливал
18 eddy_n
 
05.04.23
21:55
(16) Свою. Она исторически раньше возникла. А вот Synchrozon похоже возьмём на вооружение.
19 eddy_n
 
07.04.23
06:00
В общем, кому интересно: у Яндекс-Маркета субстатус не должен быть пустым (пока во всяком случае) у статусов "DELIVERY" и "DELIVERED".
20 eddy_n
 
07.04.23
06:02
В моём случае - при отправке с используемой схемой DBS.