Library for interacting with the Ozon API
Project description
Python Ozon Seller API
Асинхронная 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'ам! Вот как вы можете помочь:
Процесс внесения изменений
- Форкните репозиторий
- Создайте ветку для вашей фичи:
git checkout -b feature/amazing-feature
- Внесите изменения и добавьте тесты
- Убедитесь, что код соответствует стандартам:
ruff check --fix isort . black .
- Закоммитьте изменения:
git commit -m "feat: add amazing feature"
- Отправьте изменения в ваш форк:
git push origin feature/amazing-feature
- Создайте Pull Request
Правила контрибуции
- Используйте Conventional Commits для сообщений коммитов
- Добавляйте тесты для новой функциональности
- Обновляйте документацию при необходимости
- Следуйте существующему стилю кода
- Один PR - одно изменение
Сообщение о багах
Если вы нашли баг, пожалуйста, создайте issue с подробным описанием:
- Версия библиотеки
- Версия Python
- Ожидаемое поведение
- Текущее поведение
- Шаги для воспроизведения
Лицензия
MIT
Автор
Создано с ❤️ Mephistofx
Telegram: @mephistofx
Email: dev@fxcode.ru
Поддержка
Если у вас возникли вопросы или проблемы, пожалуйста, создайте issue в репозитории проекта.
Версионирование
Проект использует семантическое версионирование (SemVer):
- MAJOR версия: несовместимые изменения API
- MINOR версия: новая функциональность с обратной совместимостью
- PATCH версия: исправления ошибок с обратной совместимостью
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
985f9a3f7d1db1feee919ddc39b53e912c8f7b719a943296ee95829e4ce5a88e
|
|
| MD5 |
ad263c2bc1caeeb553215ffa1a0694bc
|
|
| BLAKE2b-256 |
b028c8bc4e3d3d497e3de5eda7ce0d645838d1e551aaabfcddd4faa464c44faa
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04d45000dc4df8ebc149a9a8d4362dfb52e3c4d608f803a0dc6cab98d8249cbb
|
|
| MD5 |
625e51a71d9cac60226f3b21e4285021
|
|
| BLAKE2b-256 |
de639b01256531cd1aed3d924213ceb0b2a9da2cf0f8d70e28091252e0e75518
|