Документация и поддержка по API
Как настроить интеграцию магазина с API Flowwow
API Flowwow — инструмент, который помогает автоматизировать работу магазина на Flowwow и связать его с вашей системой учета.
С помощью API можно:
получать список магазинов (например, если у вас холдинг и нужно выбрать, для какого из филиалов совершать дальнейшие действия);
управлять ассортиментом, ценами и остатками;
обрабатывать входящие заказы, невыкупы и возвраты.
Использование API позволяет сократить ручную работу, избежать ошибок при обновлении данных, а также управлять всей информацией о продажах и товарах в одном месте.
В статье описаны методы и параметры, которые нужны для настройки интеграции вашего магазина с API Flowwow. Покажите ее техническому специалисту, который будет этим заниматься.
Создание и использование API-Key-токена Ping Проверка API Shop Просмотр списка магазинов Products Получение информации о товарах магазина Связывание с товарами из магазина продавца Stocks Просмотр остатков по товарам Изменение остатков по товарам
Создание и использование API-Key-токена
API для продавцов находится в стадии закрытого бета-тестирования. Когда API станет доступен для публичного использования, информация обновится.
Ping
Методы проверки состояния API. Предназначены для проверки доступности API и обработки различных типов ответов сервера.
Проверка API
Возвращает тип ответа сервера в зависимости от значения query-параметра say
Запрос
Метод проверки доступности API: GET/apiseller/ping/check.
Параметр
Тип
Обязательность
Описание
say
string
да
Определяет, какой тип ответа вернёт сервер.
Пример: say=Hello
Допустимые значения say: hello, error400, error401, error403, error404, error429, error500.
Значение параметра
Описание
Действие
hello
Кампания активна
Обычный ответ сервера (200)
error400
Ошибка клиента 400
Имитация ошибки клиента 400
error401
Ошибка клиента 401
Имитация ошибки клиента 401
error403
Ошибка клиента 403
Имитация ошибки клиента 403
error404
Ошибка клиента 404
Имитация ошибки клиента 404
error429
Ошибка клиента 429
Имитация ошибки клиента 429
error500
Ошибка сервера 500
Имитация ошибки сервера 500
Ответы
Типы ответов сервера: 200 Success, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Формат: application/json.
Статус
Поле
Тип
Обязательность
Описание
Пример ответа
200 Success
say
string
да
Ответ сервера
{ "say": "hello" }
400 Bad Request
message
string
да
Общее описание ошибки
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле, в котором произошла ошибка
fields[].messages
array of string
да
Список сообщений об ошибках поля
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
401 Unauthorized
message
string
да
Общее описание ошибки
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
403 Forbidden
message
string
да
Общее описание ошибки
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
404 Not Found
message
string
да
Общее описание ошибки
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
нет
Через сколько секунд повторить запрос
{ "message": "Too Many Requests", "fields": [] }
message
string
да
Общее описание ошибки
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
500 Internal Server Error
message
string
да
Общее описание ошибки
{ "message": "Internal server error" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
Shop
Информация о складах или магазинах холдинга.
Просмотр списка магазинов
Возвращает список магазинов для холдинга или один магазин – для остальных случаев.
Для работы с API необходимо авторизироваться с помощью bearerToken, который позволяет серверу идентифицировать продавца.
HTTP:
bearerToken.Схема авторизации:
bearer.Формат токена:
JWT.
Запрос
Метод запроса к API: POST /apiseller/shops.
Формат: application/json.
Ниже представлена схема запроса:
Поле
Тип
Обязательность
Описание
Пример запроса
status
string (ShopStatus)
да
Статус магазина. Допустимые значения: "moderation", "active", "disabled".
moderation – на модерации
active – активен
disabled – деактивирован
{ "status": "moderation", "shopIds": [ 101 ], "page": 0, "limit": 10 }
shopIds
array of integers (ShopId) [ 1 .. 1000 ] items [ items ]
нет
Список идентификаторов магазинов
page
integer ≥ 0
нет
Номер страницы. Нумерация начинается с 0. Default: 0
limit
integer [1..50]
нет
Количество элементов в ответе. Максимум – 50, минимум – 1. Default: 10
Ответы
Типы ответов сервера: 200 Success, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Формат: application/json.
Статус
Поле
Тип
Обязательность
Описание
Пример ответа
200 Success
shops
array of objects (ShopItem)
да
Список магазинов
{ "shops": [ { "shopId": 101, "name": "Мой магазин", "status": "moderation", "address": "г. Москва, ул. Ленина, д. 1", "currency": "RUB", "isVerified": true, "workingDays": [ "1", "2", "3", "4", "5" ] } ], "total": 0 }
shops[].shopId
integer <int32>(ShopId)
да
Идентификатор магазина платформы Flowwow
shops[].name
string
да
Название магазина на платформе Flowwow
shops[].status
string (ShopStatus)
да
Статус магазина: "moderation" – на модерации, "active" – активен, "disabled" –деактивирован
shops[].address
string
нет
Адрес Магазина на платформе Flowwow
shops[].currency
string
нет
Валюта магазина в формате ISO 4217
shops[].isVerified
boolean
нет
Магазин верифицирован на платформе Flowwow?
shops[].workingDays
array of string
нет
Рабочие дни (Доступные значения: "1".."7"). Если источник не задан – пустой массив
total
integer
нет
Общее количество магазинов
400 Bad Request
message
string
да
Общее описание ошибки
{ "message": "Query param 'say' is empty", "fields": [ { "path":
"say", "messages":
[ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле, в котором произошла ошибка
fields[].messages
array of string
да
Список сообщений об ошибках поля
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
401 Unauthorized
message
string
да
Общее описание ошибки
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
403 Forbidden
message
string
да
Общее описание ошибки
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
404 Not Found
message
string
да
Общее описание ошибки
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
нет
Через сколько секунд повторить запрос
{ "message": "Too Many Requests", "fields": [] }
message
string
да
Общее описание ошибки
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
500 Internal Server Error
message
string
да
Общее описание ошибки
{ "message": "Internal server error" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
Products
Добавление, просмотр, изменение отображения товара и управление им.
Для работы с API необходимо авторизоваться с помощью bearerToken — он позволяет серверу идентифицировать продавца.
HTTP:
bearerToken.Схема авторизации:
bearer.Формат токена:
JWT.
Список товаров зависит от значения query-параметра shopId. Также shopId доступен в кабинете продавца Flowwow.
Параметр
Тип
Обязательность
Описание
shopId
integer <int32> [1 .. 4294967295]
да
Идентификатор склада или магазина
Пример: shopId=123456
Получение информации о товарах магазина
Возвращает список товаров магазина с возможностью фильтрации. Поддерживается пагинация.
Запрос
Метод запроса к API: POST /apiseller/products.
Схема запроса в формате application/json:
Поле
Тип
Обязательность
Описание
Пример
offerIds
array of strings or null (OfferId) [1 .. 1000], items ≤ 50 символов
нет
Список идентификаторов товаров в системе магазина
{ "offerIds": [ "FLOW-001", "FLOW-002" ], "productIds": [ 123, 456 ], "categoryIds": [ 1, 2 ], "type": 1, "page": 0, "limit": 20 }
productIds
array of integers or null <int32> (ProductId) [1 .. 1000], items ≥ 1
нет
Идентификаторы товаров в системе Flowwow
categoryIds
array of integers <int64> (CategoryId) [1 .. 1000]
нет
Идентификаторы категорий в системе Flowwow
type
integer
нет
Тип товара в системе Flowwow
page
integer ≥ 0
нет
Номер страницы. Нумерация начинается с 0. Default: 0
limit
integer [1 .. 1000]
нет
Количество элементов в ответе. Минимум — 1, максимум — 1000. Default: 10
Ответы
Типы ответов сервера: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Формат: application/json.
Статус
Поле
Тип
Обязательность
Описание
Пример ответа
200 OK
items
array of objects (ProductItem)
да
Список товаров
{ "items": [ { "offerId": "FLOW-0001", "productId": 123, "isActive": true, "type": 1, "categoryId": 1002001, "subCategoryId": 100200101, "name": "Букет роз «Классика»", "description": "Классический букет из 21 красной розы", "url": "https://flowwow.com/product/buket-roz-klassika", "available": 99999, "stock": 100, "minOrder": 1, "price": "1990.00", "discount": "10", "currencyCode": "RUB", "images": [ "https://cdn.example.com/images/flow-0001-1.png" ], "productionTime": 60, "shipmentTime": 120, "canRent": 0, "originalId": 0, "isDeliveryPost": false, "isStarred": true, "vat": "20" } ], "total": 150 }
items[].offerId
string or null (OfferId) ≤ 50 characters
да
Идентификатор товара в системе продавца
items[].productId
integer or null <int32> ≥ 1
да
Идентификатор товара в системе Flowwow
items[].isActive
boolean
да
Активен ли товар? Default: true
items[].type
integer <int32> ≥ 0
да
Тип товара. Доступные значения: 1–3. 1 — обычный товар, 2 — готовый товар, который не требует сборки, 3 — дополнительный товар, который может идти в комбинации с другим товаром
items[].categoryId
integer <int64> (CategoryId)
да
Идентификатор категории товаров
items[].subCategoryId
integer <int64> (SubCategoryId)
нет
Идентификатор подкатегории товаров
items[].name
string ≤ 500 characters
да
Название товара
items[].description
string or null ≤ 20000 characters
да
Подробное описание товара
items[].url
string ≤ 20000 characters
нет
URL страницы товара на Flowwow со стороны покупателей
items[].available
integer ≥ 0
нет
Доступность товара
items[].stock
integer ≥ 0
нет
Количество товара на складе
items[].minOrder
integer ≥ 0
нет
Минимальный заказ
items[].price
string (PriceString) ^[0-9]+(.[0-9]{1,2})?$
да
Цена без учета скидок, дробная часть через точку
items[].discount
string (DiscountString) ^[0-9]+$
нет
Процент скидки к цене
items[].currencyCode
string (CurrencyCode)
нет
Код валюты магазина (ISO 4217). Доступные значения: "AED" "AFN" "ALL" "AMD" "ANG" "AOA" "ARS" "AUD" "AWG" "AZN" "BAM" "BBD" "BDT" "BGN" "BHD" "BIF" "BMD" "BND" "BOB" "BRL" "BSD" "BTC" "BTN" "BWP" "BYN" "BYR" "BZD" "CAD" "CDF" "CHF" "CLF" "CLP" "CNY" "COP" "CRC" "CUC" "CUP" "CVE" "CZK" "DJF" "DKK" "DOP" "DZD" "EEK" "EGP" "ERN" "ETB" "EUR" "FJD" "FKP" "GBP" "GEL" "GGP" "GHS" "GIP" "GMD" "GNF" "GTQ" "GYD" "HKD" "HNL" "HRK" "HTG" "HUF" "IDR" "ILS" "IMP" "INR" "IQD" "IRR" "ISK" "JEP" "JMD" "JOD" "JPY" "KES" "KGS" "KHR" "KMF" "KPW" "KRW" "KWD" "KYD" "KZT" "LAK" "LBP" "LKR" "LRD" "LSL" "LTL" "LVL" "LYD" "MAD" "MDL" "MGA" "MKD" "MMK" "MNT" "MOP" "MRO" "MTL" "MUR" "MVR" "MWK" "MXN" "MYR" "MZN" "NAD" "NGN" "NIO" "NOK" "NPR" "NZD" "OMR" "PAB" "PEN" "PGK" "PHP" "PKR" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "RWF" "SAR" "SBD" "SCR" "SDG" "SEK" "SGD" "SHP" "SLL" "SOS" "SRD" "STD" "SVC" "SYP" "SZL" "THB" "TJS" "TMT" "TND" "TOP" "TRY" "TTD" "TWD" "TZS" "UAH" "UGX" "USD" "UYU" "UZS" "VEF" "VND" "VUV" "WST" "XAF" "XAG" "XAU" "XCD" "XDR" "XOF" "XPD" "XPF" "XPT" "YER" "ZAR" "ZMK" "ZMW" "ZWL"
items[].images
array of strings <uri> [ items <uri > ]
нет
Ссылки на изображения
items[].productionTime
integer ≥ 0
нет
Время производства товара в минутах
items[].shipmentTime
integer ≥ 0
нет
Время доставки товара в минутах
items[].canRent
integer <int32> ≥ 0
нет
Данные об аренде товара. Доступные значения: 0–2. 0 — владелец запретил аренду (значение по умолчанию), 1 — владелец разрешил аренду, 2 — Flowwow запретил аренду
items[].originalId
integer <int32> ≥ 0
нет
ID товара оригинала. Если ≠ 0 — текущий товар арендован
items[].isDeliveryPost
boolean
нет
Доставляем по почте? Default: false
items[].isStarred
boolean
нет
Товар со звездочкой? Default: false
items[].vat
string
нет
Процентная ставка НДС у товара. Default: 0
total
integer
нет
Общее количество товаров (без учета пагинации)
400 Bad Request
message
string
да
Общее описание ошибки
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле, в котором произошла ошибка
fields[].messages
array of string
да
Список сообщений об ошибках поля
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
401 Unauthorized
message
string
да
Общее описание ошибки
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
403 Forbidden
message
string
да
Общее описание ошибки
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
404 Not Found
message
string
да
Общее описание ошибки
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
нет
Через сколько секунд повторить запрос
{ "message": "Too Many Requests", "fields": [] }
message
string
да
Общее описание ошибки
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
500 Internal Server Error
message
string
да
Общее описание ошибки
{ "message": "Internal server error" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
Связывание с товарами из магазина продавца
Импортирует товары из магазина продавца на маркетплейс Flowwow и связывает их с существующими товарами по идентификаторам.
Если товара с указанным
productIdне существует у магазина в системе Flowwow, для него будет возвращена ошибка.Если в одном запросе встречаются повторяющиеся пары
offerIdилиproductId, все такие пары считаются некорректными и не обрабатываются. Частичная обработка для конфликтующих пар не выполняется — каждая пара возвращается в массивеerrors.Если присланы пары ID, которые ранее уже были привязаны, они не будут обработаны.
Запрос
Метод запроса к API: POST /apiseller/products/offersMappings.
Схема запроса в формате application/json:
Поле
Тип
Обязательность
Описание
Пример запроса
offers
array of objects [0 .. 1000]
да
Связи товара магазина с товаром Flowwow
{ "offers": [ { "offerId": "FLOW-0001", "productId": 83418243 } ] }
offers[].offerId
string or null (OfferId) ≤ 50 characters
да
Идентификатор товара в системе продавца
offers[].productId
integer or null <int32> (ProductId) ≥ 1
да
Идентификатор товара в системе Flowwow
Ответы
Типы ответов сервера: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Формат: application/json.
Статус
Поле
Тип
Обязательность
Описание
Пример ответа
200 OK
shopId
integer
да
ID запрошенного магазина. Работа с парами offerId и productId производится только в рамках данного магазина
{ "shopId": 0, "summary": { "total": 13, "success": 8, "failed": 5, "created": 4, "updated": 0, "relinked": 2, "unchanged": 2 }, "data": [ { "offerId": "FLOW-0001", "productId": 83418243, "isActive": true, "type": 1, "categoryId": 54, "subCategoryId": 112, "name": "Букет из роз", "description": "Красивый букет из свежих роз.", "url": "https://flowwow.com/product/12345", "available": 1, "stock": 10, "minOrder": 1, "price": "1990.00", "discount": "20", "currencyCode": "RUB", "images": [ "http://example.com " ], "productionTime": 0, "shipmentTime": 0, "canRent": 1, "originalId": 7123456, "isDeliveryPost": true, "isStarred": true, "vat": "10" } ], "errors": [ { "offerId": "FLOW-0001", "productId": 83418243, "message": "У данной пары есть дубль с другим productId или offerId в запросе" } ] }
summary
object
да
Сводная статистика обработанных записей
summary[].total
integer
да
Общее количество обработанных записей (success + failed)
summary[].success
integer
да
Количество успешно обработанных записей (created + updated + relinked + unchanged)
summary[].failed
integer
да
Количество записей с ошибками при обработке
summary[].created
integer
да
Количество созданных связей
summary[].updated
integer
да
Количество измененных записей без изменения связи пар
summary[].relinked
integer
да
Количество измененных связей пар
summary[].unchanged
integer
да
Количество неизмененных записей и связей
data
array of objects (ProductItem)
да
Набор товаров с сокращенной информацией
data[].offerId
string or null (OfferId) ≤ 50 characters
да
Идентификатор товара в системе продавца
data[].productId
integer or null ≥ 1
да
Идентификатор товара в системе Flowwow
data[].isActive
boolean
да
Активен ли товар? Default: true
data[].type
integer ≥ 0
да
Тип товара. Доступные значения: 1–3. 1 — обычный товар, 2 — готовый товар, который не требует сборки, 3 — дополнительный товар, который может идти в комбинации с другим товаром
data[].categoryId
integer <int64> (CategoryId)
да
Идентификатор категории товаров
data[].subCategoryId
integer <int64> (SubCategoryId)
нет
Идентификатор подкатегории товаров
data[].name
string ≤ 500 characters
да
Название товара
data[].description
string or null ≤ 20000 characters
да
Подробное описание товара
data[].url
string ≤ 20000 characters
нет
URL страницы товара на Flowwow со стороны покупателей
data[].available
integer ≥ 0
нет
Доступность товара
data[].stock
integer ≥ 0
нет
Количество товара на складе
data[].minOrder
integer ≥ 0
нет
Минимальный заказ
data[].price
string (PriceString) ^[0-9]+(\.[0-9]{1,2})?$
да
Цена без учета скидок, дробная часть через точку
data[].discount
string (DiscountString) ^[0-9]+$
нет
Процент скидки к цене, целое число
data[].currencyCode
string (CurrencyCode)
нет
Код валюты магазина (ISO 4217). Доступные значения: "AED" "AFN" "ALL" "AMD" "ANG" "AOA" "ARS" "AUD" "AWG" "AZN" "BAM" "BBD" "BDT" "BGN" "BHD" "BIF" "BMD" "BND" "BOB" "BRL" "BSD" "BTC" "BTN" "BWP" "BYN" "BYR" "BZD" "CAD" "CDF" "CHF" "CLF" "CLP" "CNY" "COP" "CRC" "CUC" "CUP" "CVE" "CZK" "DJF" "DKK" "DOP" "DZD" "EEK" "EGP" "ERN" "ETB" "EUR" "FJD" "FKP" "GBP" "GEL" "GGP" "GHS" "GIP" "GMD" "GNF" "GTQ" "GYD" "HKD" "HNL" "HRK" "HTG" "HUF" "IDR" "ILS" "IMP" "INR" "IQD" "IRR" "ISK" "JEP" "JMD" "JOD" "JPY" "KES" "KGS" "KHR" "KMF" "KPW" "KRW" "KWD" "KYD" "KZT" "LAK" "LBP" "LKR" "LRD" "LSL" "LTL" "LVL" "LYD" "MAD" "MDL" "MGA" "MKD" "MMK" "MNT" "MOP" "MRO" "MTL" "MUR" "MVR" "MWK" "MXN" "MYR" "MZN" "NAD" "NGN" "NIO" "NOK" "NPR" "NZD" "OMR" "PAB" "PEN" "PGK" "PHP" "PKR" "PLN" "PYG" "QAR" "RON" "RSD" "RUB" "RWF" "SAR" "SBD" "SCR" "SDG" "SEK" "SGD" "SHP" "SLL" "SOS" "SRD" "STD" "SVC" "SYP" "SZL" "THB" "TJS" "TMT" "TND" "TOP" "TRY" "TTD" "TWD" "TZS" "UAH" "UGX" "USD" "UYU" "UZS" "VEF" "VND" "VUV" "WST" "XAF" "XAG" "XAU" "XCD" "XDR" "XOF" "XPD" "XPF" "XPT" "YER" "ZAR" "ZMK" "ZMW" "ZWL"
data[].images
Array of strings <uri> [ items <uri > ]
нет
Ссылки на изображения
data[].productionTime
integer ≥ 0
нет
Время производства товара в минутах
data[].shipmentTime
integer ≥ 0
нет
Время доставки товара в минутах
data[].canRent
integer ≥ 0
нет
Данные об аренде товара. Доступные значения: 0–2. 0 — владелец запретил аренду (значение по умолчанию), 1 — владелец разрешил аренду, 2 — Flowwow запретил аренду
data[].originalId
integer ≥ 0
нет
ID товара-оригинала. Если ≠ 0 — товар арендован
data[].isDeliveryPost
boolean
нет
Доставка по почте. Default: false
data[].isStarred
boolean
нет
Товар со звездочкой. Активнее продвигается
data[].vat
string
нет
Процентная ставка НДС. Default: "0"
errors
array of objects
нет
Набор товаров с сокращенной информацией
400 Bad Request
message
string
да
Общее описание ошибки
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле, в котором произошла ошибка
fields[].messages
array of string
да
Список сообщений об ошибках поля
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
401 Unauthorized
message
string
да
Общее описание ошибки
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
403 Forbidden
message
string
да
Общее описание ошибки
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
404 Not Found
message
string
да
Общее описание ошибки
{ "message": "Resource not found","fields": [ ] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
нет
Через сколько секунд повторить запрос
{ "message": "Too Many Requests", "fields": [] }
message
string
да
Общее описание ошибки
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
500 Internal Server Error
message
string
да
Общее описание ошибки
{ "message": "Internal server error" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
Stocks
Остатки товаров на складах магазина.
Для работы с API необходимо авторизироваться с помощью bearerToken, который позволяет серверу идентифицировать продавца.
HTTP:
bearerToken.Схема авторизации:
bearer.Формат токена:
JWT.
Список товаров зависит от значения query-параметра shopId. Также shopId доступен в кабинете продавца Flowwow.
Параметр
Тип
Обязательность
Описание
shopId
integer <int32> [1 .. 4294967295]
да
Идентификатор склада или магазина
Пример: shopId=123456
Просмотр остатков по товарам
Возвращает информацию по остаткам в магазине продавца из маркетплейса Flowwow.
Запрос
Метод запроса к API: POST /apiseller/stocks/get.
Ниже представлена схема запроса. Формат: application/json:
Поле
Тип
Обязательность
Описание
Пример
offers
array of objects [1 .. 1000]
да
Информация о товарах на складах
{ "offers": [ { "offerId": "FLOW-0001" } ] }
offers[].offerId
string or null (OfferId) ≤ 50 characters
да
Идентификатор товара в системе продавца
Ответы
Типы ответов сервера: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Формат: application/json.
Статус
Поле
Тип
Обязательность
Описание
Пример ответа
200 OK
shopId
integer <int32> (schemas-ShopId) ≥ 1
да
Идентификатор магазина
{ "shopId": 260, "data": [ { "offerId": "FLOW-0001", "productId": 83418243, "stock": 13 } ], "errors": [ null ] }
data
array of objects [ 0 .. 1000 ] items
да
Список товаров с информацией об остатках
data[].offerId
string or null (OfferId) ≤ 50 characters
нет
Идентификатор товара в системе продавца
data[].productId
integer or null <int32> (ProductId) ≥ 1
нет
Идентификатор товара в системе Flowwow
data[].stock
integer <int32> (StockCount) ≥ 0
да
Количество товара в наличии без учета зарезервированных товаров
errors
array
да
Список ошибок
400 Bad Request
message
string
да
Общее описание ошибки
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле, в котором произошла ошибка
fields[].messages
array of string
да
Список сообщений об ошибках поля
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
401 Unauthorized
message
string
да
Общее описание ошибки
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
403 Forbidden
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
{ "message": "Access denied", "fields": [] }
message
string
да
Общее описание ошибки
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
404 Not Found
message
string
да
Общее описание ошибки
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
429 Too Many Requests
Retry-After (header)
integer ≥ 0
нет
Через сколько секунд повторить запрос
{ "message": "Too Many Requests", "fields": [] }
message
string
да
Общее описание ошибки
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
500 Internal Server Error
message
string
да
Общее описание ошибки
{ "message": "Internal server error" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
Изменение остатков по товарам
Изменяет информацию по остаткам в магазине продавца в маркетплейсе Flowwow.
Запрос
Метод запроса к API: PUT /apiseller/stocks/put.
Ниже представлена схема запроса. Формат: application/json:
Поле
Тип
Обязательность
Описание
Пример
offers
array of objects [0 .. 1000]
да
Данные об остатках товаров
{ "offers": [ { "offerId": "FLOW-0001", "stock": 13 } ] }
offers[].offerId
string or null (OfferId) ≤ 50 characters
да
Идентификатор товара в системе продавца
offers[].stock
integer <int32> (StockCount) ≥ 0
да
Количество товара в наличии без учета зарезервированных товаров
Ответы
Типы ответов сервера: 200 OK, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 429 Too Many Requests, 500 Internal Server Error.
Формат: application/json.
Статус
Поле
Тип
Обязательность
Описание
Пример ответа
200 OK
shopId
integer <int32> (ShopId) ≥ 1
да
Идентификатор магазина
{ "shopId": 260, "data": [ { "offerId": "FLOW-0001", "productId": 83418243, "stock": 13, "updated": true } ], "errors": [ { "offerId": "FLOW-0001", "productId": 83418243, "stock": 13, "message": "string" } ] }
data
array of objects [1 .. 1000]
да
Список обработанных остатков товаров
data[].offerId
string or null (OfferId) ≤ 50 characters
нет
Идентификатор товара в системе продавца
data[].productId
integer or null <int32> (ProductId) ≥ 1
нет
Идентификатор товара в системе Flowwow
data[].stock
integer <int32> (StockCount) ≥ 0
да
Количество товара в наличии без учета зарезервированных товаров
data[].updated
boolean
да
Был ли обновлен остаток товара
errors
array of objects [0 .. 1000]
нет
Список ошибок
errors[].offerId
string or null (OfferId) ≤ 50 characters
нет
Идентификатор товара в системе продавца
errors[].productId
integer or null <int32> (ProductId) ≥ 1
нет
Идентификатор товара в системе Flowwow
errors[].stock
integer <int32> (StockCount) ≥ 0
нет
Переданное количество товара
errors[].message
string
да
Описание ошибки
400 Bad Request
message
string
да
Общее описание ошибки
{ "message": "Query param 'say' is empty", "fields": [ { "path": "say", "messages": [ "Query param 'say' is empty" ] } ] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле, в котором произошла ошибка
fields[].messages
array of string
да
Список сообщений об ошибках поля
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
401 Unauthorized
message
string
да
Общее описание ошибки
{ "message": "Missing or invalid token" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
403 Forbidden
message
string
да
Общее описание ошибки
{ "message": "Access denied", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
404 Not Found
message
string
да
Общее описание ошибки
{ "message": "Resource not found", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
Retry-After (header)
integer ≥ 0
нет
Через сколько секунд повторить запрос
429 Too Many Requests
message
string
да
Общее описание ошибки
{ "message": "Too Many Requests", "fields": [] }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
нет
Трассировка ошибки (недоступна для LIVE)
500 Internal Server Error
message
string
да
Общее описание ошибки
{ "message": "Internal server error" }
fields
array of objects (fields)
нет
Массив с дополнительными ошибками валидации полей
fields[].path
string
да
Поле ошибки
fields[].messages
array of strings
да
Массив с ошибками
trace
object / null
Трассировка ошибки (недоступна для LIVE)
Последнее обновление

