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.6.1.tar.gz (87.3 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.6.1-py3-none-any.whl (42.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ozon_api-1.6.1.tar.gz
Algorithm Hash digest
SHA256 940fa91b7f7a99a532e7bce6dc2b599ba38007d83e7c5d291d934243fcce413d
MD5 7d4eb3d6ed41e77dcc80371a5772ea8b
BLAKE2b-256 993da40266b12f7387b678967c3106803bfc7055254973d5691c468e6d6c4914

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ozon_api-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 353f2af8a2b4131384b500ed846e7f571a30b7891a4dfabc4a5019fcdc7c0bbf
MD5 012df54f970ee2ba096e15c7db585273
BLAKE2b-256 7fbf55aac73d4faec5d6deeb02288a64a17a05c9e3441a5c7a9ec8408792aeb5

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