Skip to main content

Library for interacting with the Ozon API

Project description

Python Ozon Seller API

PyPI version Python 3.8+ Downloads Code style: black

Асинхронная Python библиотека для работы с API Ozon Seller.

Особенности

  • ✨ Полностью асинхронная работа с API
  • 🛡️ Строгая типизация данных с использованием Pydantic моделей
  • 🚀 Простой и понятный интерфейс
  • 📦 Поддержка всех основных методов API Ozon Seller

Установка

pip install ozon-api

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

from ozon_api import OzonAPI
import asyncio

async def main():
    async with OzonAPI(client_id="your_client_id", api_key="your_api_key") as api:
        # Получение списка товаров
        products = await api.product_list(...)
        print(products)

if __name__ == "__main__":
    asyncio.run(main())

Основные возможности

Работа с товарами

  • Получение списка товаров
  • Импорт товаров
  • Обновление товаров
  • Работа с изображениями товаров
  • Генерация и добавление штрихкодов
  • Управление архивом товаров
  • Получение рейтингов товаров

Работа с категориями

  • Получение дерева категорий
  • Получение атрибутов категорий

Документация

Инициализация клиента

from ozon_api import OzonAPI

# Рекомендуемый способ (с использованием контекстного менеджера)
async with OzonAPI(client_id="your_client_id", api_key="your_api_key") as api:
    # Ваш код здесь
    pass

# Альтернативный способ
api = OzonAPI(client_id="your_client_id", api_key="your_api_key")

Настройка клиента

api.api_url = "https://api-seller.ozon.ru"  # Изменение базового URL API
api.language = "RU"  # Установка языка (доступны: DEFAULT, RU, EN, TR, ZH_HANS)

Обработка ошибок

Библиотека предоставляет следующие типы исключений:

  • OzonAPIError - базовое исключение
  • OzonAPIClientError - ошибка клиента (400)
  • OzonAPIForbiddenError - ошибка доступа (403)
  • OzonAPINotFoundError - ресурс не найден (404)
  • OzonAPIConflictError - конфликт (409)
  • OzonAPIServerError - ошибка сервера (500)
try:
    await api.product_list(...)
except OzonAPIClientError as e:
    print(f"Ошибка клиента: {e.message}")
except OzonAPIError as e:
    print(f"Общая ошибка: {e.message}")

Примеры использования

Получение списка товаров

from ozon_api.models.product_list import ProductListRequest

request = ProductListRequest(
    page=1,
    page_size=100
)
response = await api.product_list(request)

Импорт товаров

from ozon_api.models.product_import import ProductImportRequest

request = ProductImportRequest(
    items=[...]  # Список товаров для импорта
)
response = await api.product_import(request)

Работа с изображениями

from ozon_api.models.product_pictures import ProductPicturesRequest

request = ProductPicturesRequest(
    product_id="...",
    images=[...]
)
response = await api.product_pictures(request)

Внеси вклад в проект

Мы рады любым улучшениям и pull request'ам! Вот как вы можете помочь:

Процесс внесения изменений

  1. Форкните репозиторий
  2. Создайте ветку для вашей фичи:
    git checkout -b feature/amazing-feature
    
  3. Внесите изменения и добавьте тесты
  4. Убедитесь, что код соответствует стандартам:
    ruff check --fix
    isort .
    black .
    
  5. Закоммитьте изменения:
    git commit -m "feat: add amazing feature"
    
  6. Отправьте изменения в ваш форк:
    git push origin feature/amazing-feature
    
  7. Создайте Pull Request

Правила контрибуции

  • Используйте Conventional Commits для сообщений коммитов
  • Добавляйте тесты для новой функциональности
  • Обновляйте документацию при необходимости
  • Следуйте существующему стилю кода
  • Один PR - одно изменение

Сообщение о багах

Если вы нашли баг, пожалуйста, создайте issue с подробным описанием:

  • Версия библиотеки
  • Версия Python
  • Ожидаемое поведение
  • Текущее поведение
  • Шаги для воспроизведения

Лицензия

MIT

Автор

Создано с ❤️ Mephistofx

Telegram: @mephistofx
Email: dev@fxcode.ru

Поддержка

Если у вас возникли вопросы или проблемы, пожалуйста, создайте issue в репозитории проекта.

Версионирование

Проект использует семантическое версионирование (SemVer):

  • MAJOR версия: несовместимые изменения API
  • MINOR версия: новая функциональность с обратной совместимостью
  • PATCH версия: исправления ошибок с обратной совместимостью

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ozon_api-1.2.0.tar.gz (85.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ozon_api-1.2.0-py3-none-any.whl (39.9 kB view details)

Uploaded Python 3

File details

Details for the file ozon_api-1.2.0.tar.gz.

File metadata

  • Download URL: ozon_api-1.2.0.tar.gz
  • Upload date:
  • Size: 85.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for ozon_api-1.2.0.tar.gz
Algorithm Hash digest
SHA256 985f9a3f7d1db1feee919ddc39b53e912c8f7b719a943296ee95829e4ce5a88e
MD5 ad263c2bc1caeeb553215ffa1a0694bc
BLAKE2b-256 b028c8bc4e3d3d497e3de5eda7ce0d645838d1e551aaabfcddd4faa464c44faa

See more details on using hashes here.

File details

Details for the file ozon_api-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: ozon_api-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 39.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for ozon_api-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04d45000dc4df8ebc149a9a8d4362dfb52e3c4d608f803a0dc6cab98d8249cbb
MD5 625e51a71d9cac60226f3b21e4285021
BLAKE2b-256 de639b01256531cd1aed3d924213ceb0b2a9da2cf0f8d70e28091252e0e75518

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page