API товаров (режим "с ссылками")
Используйте эти эндпоинты, если к каналу привязан набор товаров в режиме "с ссылками", а карточками вы управляете из внешней CMS.
Токен должен иметь scope products.
Базовый URL: https://api.apx.chat/api
Перед началом
- В разделе Настройки -> Ресурсы AI -> Товары (с ссылками) создайте набор товаров.
- В настройках канала включите AI оператора и выберите этот набор.
- Выпустите API токен со scope
products. - Убедитесь, что каждый товар имеет уникальный
idи валидныйhref.
Где взять channelId
const url = "https://api.apx.chat/api/external/channels";
const response = await fetch(url, {
method: "GET",
headers: {
"X-Api-Token": "tok_xxxxx",
},
});
const data = await response.json();
console.log(data);Подробно: /docs/channels
Структура товара
Минимальный JSON:
JSON
{
"id": "sku-1001",
"href": "https://shop.example.com/products/sku-1001",
"title": "Название товара",
"description": "Короткое описание",
"price": 1990,
"priceOld": 2490,
"images": ["https://cdn.example.com/images/sku-1001-main.jpg"],
"tags": ["кроссовки", "мужские"],
"payload": {
"brand": "Acme",
"inventory": 42
}
}id и href обязательны. Остальные поля передаются как метаданные.
Получение списка товаров
GET /api/ai-operator/external/channels/{channelId}/products
Параметры:
page(по умолчанию1)limit(по умолчанию20)
const url = "https://api.apx.chat/api/ai-operator/external/channels/{channelId}/products?page=1&limit=20";
const response = await fetch(url, {
method: "GET",
headers: {
"X-Api-Token": "tok_xxxxx",
},
});
const data = await response.json();
console.log(data);Создание товара
POST /api/ai-operator/external/channels/{channelId}/products
const url = "https://api.apx.chat/api/ai-operator/external/channels/{channelId}/products";
const payload = {
"id": "sku-1001",
"href": "https://shop.example.com/products/sku-1001",
"title": "Название товара"
};
const response = await fetch(url, {
method: "POST",
headers: {
"X-Api-Token": "tok_xxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
const data = await response.json();
console.log(data);Обновление товара
PUT /api/ai-operator/external/channels/{channelId}/products/{productId}
При обновлении поле id можно не передавать в теле, оно берется из URL.
Удаление товара
DELETE /api/ai-operator/external/channels/{channelId}/products/{productId}
После удаления карточка и связанные эмбеддинги стираются.
Коды ответов
200- успех400- невалидный JSON или отсутствуют обязательные поля401- невалидный токен или недостаточный scope