❓ FAQ

Часто задаваемые вопросы | DAYTONA

💡 Совет: Кликните на вопрос, чтобы увидеть подробный ответ с примерами кода

🔑Аутентификация и доступ

Как получить API ключи?

Шаги для получения ключей:

  1. Войдите в личный кабинет продавца OZON
  2. Перейдите в Настройки → API ключи
  3. Нажмите "Создать ключ"
  4. Выберите необходимые права доступа
  5. Скопируйте Client ID и API Key
const api = new OzonSellerAPI({ clientId: 'your-client-id', // Client-Id из кабинета apiKey: 'your-api-key' // Api-Key из кабинета });
Ошибка 401 Unauthorized

Причины и решения:

  • Неверные ключи - проверьте Client ID и API Key
  • Лишние символы - уберите пробелы в начале/конце
  • Истек срок действия - создайте новые ключи
  • Недостаточно прав - проверьте права доступа ключа
// Правильная инициализация const api = new OzonSellerAPI({ clientId: process.env.OZON_CLIENT_ID?.trim(), apiKey: process.env.OZON_API_KEY?.trim() });

⚠️Ошибки API

Ошибка 429 - превышен лимит запросов

OZON API лимиты:

  • 1000 запросов в минуту
  • Некоторые методы имеют отдельные лимиты
  • Превышение приводит к блокировке на 1-10 минут
// Добавьте задержки между запросами await new Promise(resolve => setTimeout(resolve, 100)); // Или используйте батчи const batches = chunk(items, 100); for (const batch of batches) { await api.product.updatePrices(batch); await delay(1000); // Пауза 1 сек }
Ошибки валидации данных

Частые ошибки:

  • Неверный формат цены - используйте строку "1234.56"
  • Отсутствуют обязательные поля - проверьте схему
  • Некорректные ID - убедитесь в правильности идентификаторов
⚠️ Важно: Всегда проверяйте ответы API на наличие ошибок и обрабатывайте их соответствующим образом.

🚀Производительность

Как ускорить работу с API?

Рекомендации по оптимизации:

  • Батчинг - объединяйте запросы в группы
  • Кеширование - сохраняйте данные локально
  • Параллельные запросы - используйте Promise.all()
  • Фильтрация - запрашивайте только нужные данные
// Параллельные запросы const [products, orders, finance] = await Promise.all([ api.product.getList({ limit: 100 }), api.fbs.getOrdersList({ limit: 50 }), api.finance.getTransactionsList({ limit: 20 }) ]); // Батч обновление const priceUpdates = products.map(p => ({ product_id: p.id, price: calculateNewPrice(p) })); await api.pricesStocks.updatePrices(priceUpdates);

📦Управление товарами

Как создать новый товар?

Базовый пример создания товара:

const newProduct = await api.product.create([{ name: 'Название товара', offer_id: 'UNIQUE-OFFER-ID', category_id: 17028922, price: '999.00', old_price: '1299.00', vat: '0.20', height: 10, depth: 15, width: 20, weight: 500, images: ['https://example.com/image1.jpg'], attributes: [{ complex_id: 0, id: 85, values: [{ value: 'Значение атрибута' }] }] }]); console.log('Товар создан:', newProduct.result[0].product_id);
⚠️ Важно: Обязательно укажите корректные категорию, атрибуты и изображения
Как массово обновить цены?
// Получаем товары const products = await api.product.getList({ limit: 1000 }); // Подготавливаем обновления (скидка 10%) const priceUpdates = products.result.items .map(p => ({ product_id: p.id, price: (parseFloat(p.marketing_price) * 0.9).toFixed(2) })); // Обновляем батчами по 1000 товаров await api.pricesStocks.updatePrices(priceUpdates); console.log(`Обновлено цен: ${priceUpdates.length}`);

🚚Заказы и логистика

Как обработать заказы FBS?
// Получаем новые заказы const orders = await api.fbs.getOrdersList({ filter: { status: 'awaiting_packaging', since: '2024-01-01T00:00:00Z' }, limit: 50 }); // Обрабатываем каждый заказ for (const order of orders.result) { // Упаковываем заказ await api.fbs.packOrder({ posting_number: order.posting_number, packages: [{ products: order.products.map(p => ({ product_id: p.product_id, quantity: p.quantity })) }] }); // Отгружаем заказ await api.fbs.shipOrder({ posting_number: order.posting_number, tracking_number: `TRACK${Date.now()}` }); }

🛠️Технические вопросы

Какие версии Node.js поддерживаются?

Системные требования:

  • Node.js: 18.0+ (рекомендуется LTS)
  • TypeScript: 4.5+ (опционально)
  • Browser: ES2020+ для браузеров
✅ Совместимость: SDK работает в Node.js, браузерах и edge-функциях (Vercel, AWS Lambda, Cloudflare Workers)
Как настроить логирование?
const api = new OzonSellerAPI({ clientId: 'your-client-id', apiKey: 'your-api-key', debug: true, // Включить логи onRequest: (config) => { console.log('📤 Request:', config.method, config.url); }, onResponse: (response) => { console.log('📥 Response:', response.status, response.statusText); }, onError: (error) => { console.error('❌ Error:', error.message); } });

🎯 Не нашли ответ?

Дополнительные ресурсы:

🗂️ Все страницы категорий

Показать/скрыть полный список