Files
ozon-seller-typescript/README.md
2026-08-21 21:10:21 +00:00

3.9 KiB
Raw Permalink Blame History

@apilki/ozon-seller — JavaScript/TypeScript клиент

Версия: 0.2.0 · API от 2026-08-21

@apilki/ozon-seller — generated TypeScript/JavaScript client for the OZON Seller API (fetch-based; works in Node.js ≥ 18 and browsers).

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).

Установка

npm install @apilki/ozon-seller

Быстрый старт

Авторизация OZON — пара заголовков Client-Id и Api-Key (личный кабинет продавца → Настройки → API-ключи). Клиент передаёт их первыми двумя аргументами каждого метода.

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 передаются в каждый вызов — один клиент обслуживает сколько угодно продавцов:

await productApi.productAPIGetProductInfoList(ALICE_CLIENT_ID, ALICE_API_KEY, body);
await productApi.productAPIGetProductInfoList(BOB_CLIENT_ID, BOB_API_KEY, body);

Отладка (middleware)

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 читается из него.

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/.