Карточка товара на витрине магазина
Карточка отдаёт один товар витрины со всеми полями: цену, наличие, пределы количества и параметры заказа, которые нужно спросить у покупателя. Метод — часть публичной витрины магазина: ИИ-агенты через MCP-сервер Инвойсбокс открывают карточку перед тем, как назвать цену и собрать ссылку на оформление.
- метод:
GET - ресурс:
/v3/marketplace/paymentgateway/shop/{alias}/good/{goodId}, где{alias}— алиас витрины (полеaliasточки продаж), а{goodId}—idтовара из поиска - авторизация: не нужна, заголовок
Authorizationне передаётся - тело ответа — товар Good в поле
data - возможные ошибки
Товар чужого магазина и товар, не прошедший модерацию, отвечают 404. Скоро: снятый с продажи
товар отдаётся с available: false — так «нет в наличии» отличается от «не существует», а цена
считается по публичным прайс-листам, как в поиске.
Примечание
Помеченное «скоро» появится в боевом контуре с ближайшим обновлением витрины. До него в ответе нет
полей available, orderMaxCount и orderFields: наличие определяйте по availabilityMode и
stock, а параметры заказа уточняйте у продавца.
Пример запроса и ответа
GET /v3/marketplace/paymentgateway/shop/1694158899/good/1234
Host: api.invoicebox.ru
Accept: application/json
User-Agent: MyApp 1.0
Ответ сокращён: показаны поля, по которым продают.
{
"data": {
"id": 1234,
"externalId": "7",
"title": "Бизнес",
"description": "Вагон бизнес-класса. Билет действует 30 календарных дней с даты начала действия.",
"type": "service",
"price": 1300,
"vatCode": "RUS_VAT0",
"unit": "шт",
"unitCode": 796,
"categoryId": 12,
"categoryIds": [12],
"availabilityMode": "always",
"available": true,
"orderMinCount": 1,
"orderMaxCount": 50,
"orderFields": [
{
"code": "departDate",
"type": "date",
"title": "Дата начала действия билета",
"description": "С этой даты билет действует 30 календарных дней.",
"required": true,
"daysFrom": 0,
"daysTo": 30,
"timezone": "Europe/Moscow",
"options": []
}
]
}
}
Поля товара те же, что в поиске, — таблица Good.
Параметры заказа
Скоро. orderFields — то, что нужно спросить у покупателя перед оформлением: дату поездки,
вариант, строку. Пустой массив — спрашивать нечего.
| Поле | Тип | Смысл |
|---|---|---|
code | string | Ключ параметра, уникален в товаре: буква, затем буквы и цифры, до 32 знаков. Он же подстановка {code} в шаблоне ссылки на оформление |
type | string | date — дата ГГГГ-ММ-ДД, string — строка, enum — одно из options[].value |
title | string(100) | Подпись для покупателя |
description | string(500) | Подсказка: что значит параметр |
required | bool | Обязателен ли параметр; по умолчанию false |
daysFrom, daysTo | int | Только date: дата не раньше «сегодня + daysFrom» и не позже «сегодня + daysTo» дней. Нет поля — без границы |
timezone | string | Только date: часовой пояс IANA, в котором считается «сегодня». По умолчанию Europe/Moscow |
maxLength | int | Только string: предел длины, от 1 до 1000 |
options | array | Только enum: от 1 до 50 вариантов { "value", "title" }, строки до 100 знаков |
Значение, которое ввёл покупатель, проверяет тот, кто оформляет заказ: витрина его не принимает. MCP-сервер Инвойсбокс проверяет дату — по окну и часовому поясу, вариант — по списку, строку — по длине — и только после этого собирает ссылку на оформление.
Читайте также
- Поиск товаров — откуда берётся
goodId - Витрина магазина — адрес, авторизация и ссылка на оформление