Files
ozon-seller-typescript/README.md
2026-08-21 12:19:50 +00:00

103 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# @apilki/ozon-seller — JavaScript/TypeScript клиент
**Версия: 0.1.0 · API от 2026-08-20** <!-- штампуется пайплайном (GH-дистро); npm-карточка версию не носит -->
**@apilki/ozon-seller** — generated TypeScript/JavaScript client for the **OZON Seller API** (fetch-based; works in Node.js ≥ 18 and browsers).
```bash
npm install @apilki/ozon-seller
```
Docs: <https://docs.ozon.ru/api/seller/> · Полное описание (RU) — ниже.
---
## Что это
JavaScript/TypeScript клиент для **OZON Seller API** (продавец-сторона): товары, заказы, FBO/FBS, цены и остатки, отчёты, аналитика, финансы, отзывы и вопросы. Сгенерирован из официального сваггера, построен на базе `fetch` API — работает и в Node.js (≥ 18), и в браузере. Публикуется в npm-скоупе `@apilki` (GitHub-орг `apilki`).
## Установка
```bash
npm install @apilki/ozon-seller
```
## Быстрый старт
Авторизация OZON — пара заголовков `Client-Id` и `Api-Key` (личный кабинет продавца → Настройки → API-ключи). Клиент передаёт их первыми двумя аргументами каждого метода.
```javascript
import { Configuration, ProductAPI } from '@apilki/ozon-seller';
const config = new Configuration({
basePath: 'https://api-seller.ozon.ru',
});
const productApi = new ProductAPI(config);
const clientId = 'YOUR_CLIENT_ID';
const apiKey = 'YOUR_API_KEY';
// POST /v3/product/info/list — информация о товарах по идентификаторам
const result = await productApi.productAPIGetProductInfoList(clientId, apiKey, {
offer_id: ['offer-1'],
product_id: [],
sku: [],
});
console.log(result.result?.items);
```
### Работа с несколькими кабинетами
Ключ и Client-Id передаются в каждый вызов — один клиент обслуживает сколько угодно продавцов:
```javascript
await productApi.productAPIGetProductInfoList(ALICE_CLIENT_ID, ALICE_API_KEY, body);
await productApi.productAPIGetProductInfoList(BOB_CLIENT_ID, BOB_API_KEY, body);
```
### Отладка (middleware)
```javascript
const config = new Configuration({
basePath: 'https://api-seller.ozon.ru',
middleware: [{
pre: async (context) => { console.log(`[OZON] ${context.init?.method} ${context.url}`); return context; },
}],
});
```
## Ошибки
На 4xx/5xx клиент бросает `ResponseError`у него есть `.response` (fetch-Response), тело ошибки OZON читается из него.
```javascript
import { ResponseError } from '@apilki/ozon-seller';
try {
await productApi.productAPIGetProductInfoList(clientId, apiKey, body);
} catch (error) {
if (error instanceof ResponseError) {
const body = await error.response.json(); // { error: { code, message, details } }
console.error(`OZON ${error.response.status}:`, body.error?.message);
}
}
```
## Покрытие API
Полный сваггер OZON Seller API: **463 операции, 58 API-классов** (товары, заказы, FBO/FBS, цены и остатки, отчёты, аналитика, финансы, отзывы, вопросы и ответы, категории и др.).
## Postman-коллекция
Готовая Postman Collection v2.1 (463 запроса) — отдельным артефактом: `apilki/ozon-seller-postman`.
## Языки
TypeScript/JavaScript сейчас; Python и Go — в планах (скоуп `@apilki`).
## Лицензия
MIT © apilki. Документация OZON Seller API: <https://docs.ozon.ru/api/seller/>.