Интеграция с Wordpress. Woocommerce rest api. Как установить категории товара

1. user1022955 01.09.24 11:22 Сейчас в теме
Woocommerce rest api
Все было просто и понятно, пока надо было передавать простые параметры. Ну например установить цену:
Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/2716/?regular_price=1155", Заголовки);
Результат = Соединение.Записать(Запрос);

Грустно стало когда дело дошло до установки категорий товара.
Как написано в документации, категории - это Array. Т.е. передавать надо как-то так:

Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/1534/?categories=[{"id":223}]");
а может так:
Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/1534/?categories=[{223}]");
а может вообще так:
Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/1534/?categories[223]");
или даже так:
Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/1534/?categories[0]=223");

Печаль в том, что ни один из этих вариантов не проходит. На все эти попытки ответ один:
"categories[0] не принадлежит к типу object."

Что я делаю не так, как надо правильно ?
По теме из базы знаний
Найденные решения
6. black_ziber 02.09.24 09:44 Сейчас в теме
(5)
Подсказка из СП)
HTTPЗапрос (HTTPRequest)
УстановитьТелоИзСтроки (SetBodyFromString)
Синтаксис:
УстановитьТелоИзСтроки(<ТелоКакСтрока>, <Кодировка>, <ИспользоватьBOM>)...
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 01.09.24 21:43 Сейчас в теме
Я бы предположил, что там что-то типа

curl -X PUT https://example.com/wp-json/wc/v3/products/794 \
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
"categories": [{id:1}, {id:2}, {id:3}]
}'
3. user1022955 02.09.24 07:43 Сейчас в теме
(2) я это тоже предполагаю, т.к. это в документации так написано.
Но как это будет выглядеть в http запросе 1C - это и есть вопрос.
4. user1880116 02.09.24 08:38 Сейчас в теме
А, так у тебя с 1С проблемы, а не с концепцией...

Ну ты хотя бы адрес от заголовка и от тела запроса отличаешь? Что такое метод http, знаешь?
5. user1022955 02.09.24 09:12 Сейчас в теме
Да, отличаю.
Объясни, как в теле запроса правильно передать массив категорий.
Так, чтобы это правильно понял Woocommerce rest api
7. user1880116 02.09.24 09:48 Сейчас в теме
(5)
как
"Content-Type: application/json" никаких мыслей не навевает?
6. black_ziber 02.09.24 09:44 Сейчас в теме
(5)
Подсказка из СП)
HTTPЗапрос (HTTPRequest)
УстановитьТелоИзСтроки (SetBodyFromString)
Синтаксис:
УстановитьТелоИзСтроки(<ТелоКакСтрока>, <Кодировка>, <ИспользоватьBOM>)...
8. user1022955 03.09.24 17:47 Сейчас в теме
(6) Спс, так правильнее.

Готовый пример, может кому пригодится.
Установка товару с ид 1534 - категории с ид 223

СтрКат=Новый Массив;
СтрКат.Добавить(Новый Структура("id", 223));

СтрЗапроса=Новый Структура;
СтрЗапроса.Вставить("categories", СтрКат);

ТекстЗапроса=ЗаписатьJSONОтвет(СтрЗапроса);
Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/1534", Заголовки);
Запрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот