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 версия: исправления ошибок с обратной совместимостью
Metadata
Release files for ozon-api 1.6.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ozon_api-1.6.1.tar.gz | 87.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ozon_api-1.6.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 129.2 kB
Release files / ozon_api-1.6.1.tar.gz
| Download URL | ozon_api-1.6.1.tar.gz |
|---|---|
| Size | 87.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
940fa91b7f7a99a532e7bce6dc2b599ba38007d83e7c5d291d934243fcce413d
|
|
BLAKE2b-256 checksum How to use checksums |
993da40266b12f7387b678967c3106803bfc7055254973d5691c468e6d6c4914
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|
Release files / ozon_api-1.6.1-py3-none-any.whl
| Download URL | ozon_api-1.6.1-py3-none-any.whl |
|---|---|
| Size | 42.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
353f2af8a2b4131384b500ed846e7f571a30b7891a4dfabc4a5019fcdc7c0bbf
|
|
BLAKE2b-256 checksum How to use checksums |
7fbf55aac73d4faec5d6deeb02288a64a17a05c9e3441a5c7a9ec8408792aeb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.13
|
Security for ozon-api 1.6.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.