Daytona OZON Seller API TypeScript SDK

npm version TypeScript
License Build Status

ΠŸΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ TypeScript/JavaScript SDK для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с OZON Seller API. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ Π½Π° Π±Π°Π·Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ MCP Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ соврСмСнными возмоТностями.

✨ ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

  • 🎯 ПолноС соотвСтствиС MCP Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Ρ‚ΠΈΠΏΡ‹ синхронизированы с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ схСмой OZON
  • πŸ”’ Бтрогая типизация TypeScript β€” Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
  • πŸ—οΈ ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° β€” каТдая катСгория API Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ bundle
  • πŸš€ Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ES2022+ β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° всСх соврСмСнных возмоТностСй JavaScript
  • ⚑ Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ HTTP-запросы с ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ соСдинСний
  • πŸ”„ АвтоматичСскиС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹ β€” встроСнная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сбоСв ΠΈ rate limiting
  • πŸ“ ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ докумСнтация β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ use cases
  • 🌍 Полная локализация β€” ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° русского ΠΈ английского языков Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

πŸ“š АрхитСктура SDK

SDK ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ с 278+ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π² 33 катСгориях:

import { OzonSellerApiClient } from 'daytona-ozon-seller-api';

const client = new OzonSellerApiClient({
  apiKey: 'your-api-key',
  clientId: 'your-client-id'
});

// ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
client.products        // πŸ“¦ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ (23+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)
client.finance         // πŸ’° ЀинансовыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (10+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)  
client.analytics       // πŸ“Š Аналитика ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ (2+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)
client.warehouse       // πŸͺ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ складами (2+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)
client.returns         // πŸ“¦ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚Ρ‹ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² (8+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)
client.review          // ⭐ ΠžΡ‚Π·Ρ‹Π²Ρ‹ ΠΈ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ (7+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)
client.promos          // 🎯 Акции ΠΈ скидки (8+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)
client.report          // πŸ“„ БизнСс-ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ (8+ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²)
// ... ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅

🎯 ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ возмоТности

  • πŸ›οΈ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ β€” созданиС Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π½Π°ΠΌΠΈ/остатками, ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Π±Ρ€Π΅Π½Π΄Ρ‹
  • πŸ“‹ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² β€” FBO/FBS Π·Π°ΠΊΠ°Π·Ρ‹, доставка, отслСТиваниС, ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
  • 🏭 Бкладская логистика β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ складами, поставками, инвСнтаризация
  • πŸ’° Ѐинансовая Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° β€” Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, комиссии, ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹, Π²Ρ‹ΠΏΠ»Π°Ρ‚Ρ‹
  • 🎯 ΠœΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ β€” Π°ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΎΠΌΠΎ-ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ, Ρ†Π΅Π½ΠΎΠ²Ρ‹Π΅ стратСгии
  • πŸ‘₯ Π Π°Π±ΠΎΡ‚Π° с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ β€” ΠΎΡ‚Π·Ρ‹Π²Ρ‹, вопросы, Ρ‡Π°Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°, Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

πŸš€ Быстрый старт

Установка

# npm
npm install daytona-ozon-seller-api

# yarn  
yarn add daytona-ozon-seller-api

# pnpm
pnpm add daytona-ozon-seller-api

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ

import { OzonSellerApiClient } from 'daytona-ozon-seller-api';

// Базовая инициализация
const client = new OzonSellerApiClient({
  apiKey: 'your-api-key',
  clientId: 'your-client-id'
});

// Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ конфигурация
const client = new OzonSellerApiClient({
  apiKey: process.env.OZON_API_KEY!,
  clientId: process.env.OZON_CLIENT_ID!,
  baseUrl: 'https://api-seller.ozon.ru', // ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
  timeout: 30000, // 30 сСкунд ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
  retries: 3, // количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
  userAgent: 'MyStore/1.0 (https://mystore.com)'
});

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ запросы

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соСдинСния
const connectionStatus = await client.testConnection();
if (connectionStatus.success) {
  console.log('βœ… УспСшноС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ OZON API');
} else {
  console.error('❌ Ошибка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:', connectionStatus.message);
}

// ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ
const products = await client.products.getList({
  filter: {
    visibility: 'VISIBLE',
    offer_id: ['SKU-001', 'SKU-002']
  },
  limit: 100
});

// TypeScript автоматичСски подсказываСт доступныС поля
products.result?.items?.forEach(product => {
  console.log(`${product.name}: ${product.price} Ρ€ΡƒΠ±`);
});

πŸ“– ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ API

πŸ›οΈ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ

  • Product API - ОсновноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ (23 endpoints)
  • Category API - Π Π°Π±ΠΎΡ‚Π° с катСгориями (6 endpoints)
  • Brand API - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±Ρ€Π΅Π½Π΄Π°ΠΌΠΈ (1 endpoint)
  • Barcode API - ГСнСрация ΡˆΡ‚Ρ€ΠΈΡ…-ΠΊΠΎΠ΄ΠΎΠ² (2 endpoints)

πŸ“¦ Π—Π°ΠΊΠ°Π·Ρ‹ ΠΈ логистика

  • FBO API - Fulfillment by OZON (13 endpoints)
  • FBS API - Fulfillment by Seller (22 endpoints)
  • FBO Supply Request API - Заявки Π½Π° поставку FBO (19 endpoints)
  • Delivery FBS API - Доставка FBS (18 endpoints)
  • Delivery RFBS API - Доставка rFBS (8 endpoints)

🏭 Π‘ΠΊΠ»Π°Π΄Ρ‹ ΠΈ ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΡŒ

  • Warehouse API - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ складами (2 endpoints)
  • Prices Stocks API - Π¦Π΅Π½Ρ‹ ΠΈ остатки (9 endpoints)
  • Pricing Strategy API - Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ цСнообразования (12 endpoints)

πŸ’° Ѐинансы ΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ

  • Finance API - Ѐинансовая ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒ (10 endpoints)
  • Report API - БизнСс-ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ (8 endpoints)
  • Analytics API - АналитичСскиС Π΄Π°Π½Π½Ρ‹Π΅ (2 endpoints)

πŸ”„ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚Ρ‹ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹

  • Return API - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°ΠΌΠΈ (8 endpoints)
  • Returns API - Бписок Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠ² (1 endpoint)
  • RFBS Returns API - Π’ΠΎΠ·Π²Ρ€Π°Ρ‚Ρ‹ rFBS (8 endpoints)
  • Cancellation API - ΠžΡ‚ΠΌΠ΅Π½Ρ‹ Π·Π°ΠΊΠ°Π·ΠΎΠ² (7 endpoints)

🎯 ΠœΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

  • Promos API - Акции ΠΈ ΠΏΡ€ΠΎΠΌΠΎ-ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ (8 endpoints)
  • Premium API - Premium сСрвисы (8 endpoints)
  • Pricing Strategy API - Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ цСнообразования (12 endpoints)

πŸ‘₯ ВзаимодСйствиС с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ

  • Review API - ΠžΡ‚Π·Ρ‹Π²Ρ‹ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Π΅ΠΉ (7 endpoints) Premium Plus
  • Questions Answers API - Вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ (8 endpoints) Premium Plus
  • Chat API - Π§Π°Ρ‚ с покупатСлями (8 endpoints)

πŸ“Š Π Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ ΠΈ качСство

  • Seller Rating API - Π Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π° (2 endpoints)
  • Quants API - Π’ΠΎΠ²Π°Ρ€Ρ‹ эконом-сСгмСнта (2 endpoints)

πŸ”§ Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ API

  • Digital API - Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ (4 endpoints)
  • FBS RFBS Marks API - ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² (13 endpoints)
  • Certification API - БСртификация Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² (12 endpoints)
  • Supplier API - Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с поставщиками (4 endpoints)

πŸ§ͺ Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ слуТСбныС

  • Beta Method API - Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (9 endpoints)
  • Pass API - ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ° ΠΈ доступы (7 endpoints)
  • Polygon API - ВСстовая срСда (4 endpoints)

πŸ›‘οΈ ВрСбования ΠΊ подпискС

НСкоторыС API Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… подписок:

Premium Plus (трСбуСтся подписка)

  • Review API - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌΠΈ
  • Questions Answers API - Вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ API доступны для всСх ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠ²

πŸ“‹ Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ сцСнарии использования

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°
const newProduct = await api.product.create({
  name: 'Новый Ρ‚ΠΎΠ²Π°Ρ€',
  category_id: 12345,
  price: '1000',
  // ... Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹
});

// ОбновлСниС остатков
await api.pricesStocks.updateStocks([{
  product_id: newProduct.product_id,
  stock: 100
}]);

// ОбновлСниС Ρ†Π΅Π½Ρ‹
await api.pricesStocks.updatePrices([{
  product_id: newProduct.product_id,
  price: '1200'
}]);

2. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π°ΠΊΠ°Π·ΠΎΠ² FBS

// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π·Π°ΠΊΠ°Π·ΠΎΠ²
const orders = await api.fbs.getOrdersList({
  filter: { status: 'awaiting_packaging' },
  limit: 50
});

// Π‘Π±ΠΎΡ€ΠΊΠ° Π·Π°ΠΊΠ°Π·Π°
for (const order of orders.result) {
  await api.fbs.packOrder({
    posting_number: order.posting_number,
    packages: [/* ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ */]
  });
  
  // ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² доставку
  await api.fbs.shipOrder({
    posting_number: order.posting_number,
    tracking_number: 'TRACK123'
  });
}

3. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ финансами

// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π·Π° мСсяц
const transactions = await api.finance.getTransactionsList({
  filter: {
    date: {
      from: '2024-01-01T00:00:00Z',
      to: '2024-01-31T23:59:59Z'
    }
  }
});

// Анализ Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠ² ΠΈ расходов
const totalIncome = transactions.result
  .filter(t => t.operation_type === 'ClientReturnAgentOperation')
  .reduce((sum, t) => sum + parseFloat(t.amount), 0);

console.log('Π”ΠΎΡ…ΠΎΠ΄ Π·Π° мСсяц:', totalIncome);

4. Π Π°Π±ΠΎΡ‚Π° с ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌΠΈ (Premium Plus)

// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ²
const reviews = await api.review.getList({
  status: 'UNPROCESSED',
  limit: 20
});

// ΠžΡ‚Π²Π΅Ρ‚ Π½Π° ΠΎΡ‚Π·Ρ‹Π²
for (const review of reviews.reviews) {
  await api.review.createComment({
    review_id: review.id,
    text: 'Бпасибо Π·Π° ΠΎΡ‚Π·Ρ‹Π²! Π£Ρ‡Ρ‚Π΅ΠΌ ваши поТСлания.',
    mark_review_as_processed: true
  });
}

πŸ”„ Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹

Бинхронизация Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

class ProductSynchronizer {
  async syncProducts() {
    // 1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΈΠ· внСшнСй систСмы
    // 2. Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ Π² OZON
    // 3. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ/ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹
    // 4. Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ остатки ΠΈ Ρ†Π΅Π½Ρ‹
    // 5. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ изобраТСния ΠΈ описания
  }
}

Автоматизация Π·Π°ΠΊΠ°Π·ΠΎΠ²

class OrderAutomation {
  async processOrders() {
    // 1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π·Π°ΠΊΠ°Π·Ρ‹
    // 2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²
    // 3. Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‹
    // 4. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² слуТбу доставки
    // 5. ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ увСдомлСния покупатСлям
  }
}

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΎΠ²

class RatingMonitor {
  async monitorRatings() {
    // 1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ
    // 2. Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ значСниями
    // 3. ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ прСдупрСТдСния ΠΏΡ€ΠΈ ΡƒΡ…ΡƒΠ΄ΡˆΠ΅Π½ΠΈΠΈ
    // 4. Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ
  }
}

πŸ› οΈ Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ Ρ…Π΅Π»ΠΏΠ΅Ρ€Ρ‹

Batch ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

// МассовоС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π½
const batchUpdatePrices = async (products: ProductPrice[]) => {
  const batches = chunkArray(products, 1000); // Π Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π½Π° Π±Π°Ρ‚Ρ‡ΠΈ
  
  for (const batch of batches) {
    await api.pricesStocks.updatePrices(batch);
    await delay(1000); // БоблюдаСм Π»ΠΈΠΌΠΈΡ‚Ρ‹ API
  }
};

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок

const withRetry = async <T>(
  operation: () => Promise<T>,
  maxRetries: number = 3
): Promise<T> => {
  for (let attempt = 1; attempt <= maxRetries; attempt++) {
    try {
      return await operation();
    } catch (error) {
      if (attempt === maxRetries) throw error;
      await delay(Math.pow(2, attempt) * 1000);
    }
  }
  throw new Error('All retries failed');
};

πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ для отслСТивания

  • ΠšΠΎΠ½Π²Π΅Ρ€ΡΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ² - ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΊΠ°Π·ΠΎΠ²
  • ВрСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ - срСднСС врСмя ΠΎΡ‚ Π·Π°ΠΊΠ°Π·Π° Π΄ΠΎ ΠΎΡ‚Π³Ρ€ΡƒΠ·ΠΊΠΈ
  • Π Π΅ΠΉΡ‚ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π° - Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° основных ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ
  • ΠžΡΡ‚Π°Ρ‚ΠΊΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² - ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ наличия популярных ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ
  • ЀинансовыС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ - Π΄ΠΎΡ…ΠΎΠ΄Ρ‹, расходы, Ρ€Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

БистСма Π°Π»Π΅Ρ€Ρ‚ΠΎΠ²

  • ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ сниТСниС Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°
  • Π—Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ остатки Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ
  • ЀинансовыС Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ

πŸ” Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ API ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ

  • РСгулярная ротация ΠΊΠ»ΡŽΡ‡Π΅ΠΉ
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΏΠΎ IP
  • Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх запросов
  • ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ активности

Π›ΠΈΠΌΠΈΡ‚Ρ‹ запросов

  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: 1000 запросов/ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
  • ВяТСлыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: 100 запросов/ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²: 50 запросов/ΠΌΠΈΠ½ΡƒΡ‚Ρƒ

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для сниТСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
  • Batch ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для массовых ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ
  • Асинхронная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
  • Graceful degradation ΠΏΡ€ΠΈ нСдоступности API

πŸ› ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ диагностика

Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

const api = new OzonSellerAPI({
  clientId: 'your-client-id',
  apiKey: 'your-api-key',
  debug: true // Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ логирования
});

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

401 Unauthorized

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Client ID ΠΈ API Key
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π΅ истСкли

429 Too Many Requests

  • Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ exponential backoff
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ batch ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ запросами

422 Validation Error

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ TypeScript для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ²
  • Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

πŸ“ž ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация

БообщСство Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

ВСхничСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

  • Email: api-support@ozon.ru
  • Π€ΠΎΡ€ΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи Π² Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Π°

πŸ“ ЛицСнзия

MIT License - см. Ρ„Π°ΠΉΠ» LICENSE для Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ.

🀝 Π’ΠΊΠ»Π°Π΄ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅

ΠœΡ‹ привСтствуСм Π²ΠΊΠ»Π°Π΄ сообщСства! Π‘ΠΌ. CONTRIBUTING.md для инструкций ΠΏΠΎ внСсСнию ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.


ВСрсия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ: 1.0.0
Π”Π°Ρ‚Π° обновлСния: 2024-01-15
ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ API: 278 endpoints Π² 33 катСгориях
Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ: OZON Seller API v2/v3