Публикация

подписчиков: 2 Подписаться
0
Avatar

Изменение данных товара

Пытаюсь изменить данные товара. В ответ приходит json с данными товара, как и описано в документации, никаких error не возвращается. Из этого делаю вывод что запрос обрабатывается верно. При этом свойство товара не изменяется. Делал запрос средствами php curl и postman, результат идентичен.

Настройки curl 

$queryData=array('name'=>'test name');

curl_setopt($ch, CURLOPT_URL,'https://online.moysklad.ru/api/remap/1.1/entity/product/'.$productID );
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query((json_encode($queryData))));

 

 

Webmaster

Войдите в службу, чтобы оставить комментарий.

Комментариев: 5

0
Avatar

Добрый день.

Какое поле пытаетесь изменить?
Можете ли привести в виде curl запроса или скриншот postman?

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Меняю поле name. Также пробовал менять другие поля, результат тот же

 На скриншоте выше удалил токен авторизации, при отправке запроса он присутствует

Webmaster 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Похоже, вы используете id товара из адресной строки web интерфейса. При запросе по этому id вы получаете 308 Permanent Redirect на другой id, который используется в JSON API. В результате вы получаете в ответ не измененный товар.

Для изменения товара выполните запрос, используя id, который приходит в редиректе.

Такое разделение id существует для товаров (услуг, комплектов, модификаций) и связано с внутренней реализацией. Для документов такого разделения нет.

Получить id, используемые в API можно либо выполняя GET запросы с id из web интерфейса - в этом случае возвращаются редиректы. Либо запрашивая список товаров непосредственно через API.

Dtrufanov 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Для товара 

https://online.moysklad.ru/api/remap/1.1/entity/product/bddd01a9-b5a8-11e8-9109-f8fc0004b477

Редирект урл 

https://online.moysklad.ru/api/remap/1.1/entity/product/bddd12f0-b5a8-11e8-9109-f8fc0004b479

При запросе с айди bddd12f0-b5a8-11e8-9109-f8fc0004b479, который уже не возвращает редирект урл, все ранво не изменяется товар

 

Webmaster 0 проголосовали
Действия с комментариями Постоянная ссылка