Интеграция с Wordpress. Woocommerce rest api. Как установить категории товара
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."
Что я делаю не так, как надо правильно ?
Все было просто и понятно, пока надо было передавать простые параметры. Ну например установить цену:
Запрос = Новый 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."
Что я делаю не так, как надо правильно ?
По теме из базы знаний
- Интеграция 1С с сайтом (магазином) WordPress (WooCommerce) с помощью Rest API сайта. Часть 1. Авторизация
- Интеграция 1С и CMS WordPress посредством Rest API сайта. Первый шаг
- Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг второй, публикация картинок
- Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг третий, WooCommerce, публикация категорий товаров
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я бы предположил, что там что-то типа
curl -X PUThttps://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}]
}'
curl -X PUT
-u consumer_key:consumer_secret \
-H "Content-Type: application/json" \
-d '{
"categories": [{id:1}, {id:2}, {id:3}]
}'
(6) Спс, так правильнее.
Готовый пример, может кому пригодится.
Установка товару с ид 1534 - категории с ид 223
СтрКат=Новый Массив;
СтрКат.Добавить(Новый Структура("id", 223));
СтрЗапроса=Новый Структура;
СтрЗапроса.Вставить("categories", СтрКат);
ТекстЗапроса=ЗаписатьJSONОтвет(СтрЗапроса);
Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/1534", Заголовки);
Запрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Готовый пример, может кому пригодится.
Установка товару с ид 1534 - категории с ид 223
СтрКат=Новый Массив;
СтрКат.Добавить(Новый Структура("id", 223));
СтрЗапроса=Новый Структура;
СтрЗапроса.Вставить("categories", СтрКат);
ТекстЗапроса=ЗаписатьJSONОтвет(СтрЗапроса);
Запрос = Новый HTTPЗапрос("/wp-json/wc/v3/products/1534", Заголовки);
Запрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот