ozonapi-async 0.7.4__tar.gz → 0.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/PKG-INFO +3 -3
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/pyproject.toml +1 -1
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/readme.md +2 -2
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/__init__.py +1 -1
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/products.py +64 -2
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/__init__.py +3 -0
- ozonapi_async-0.8.0/src/ozonapi/seller/schemas/products/v1__product_pictures_import.py +85 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi_async.egg-info/PKG-INFO +3 -3
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi_async.egg-info/SOURCES.txt +1 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/LICENSE +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/setup.cfg +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/delivery.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/localization.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/postings.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/prices.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/products.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/requests.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/warehouses.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/core/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/core/config.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/core/core.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/core/exceptions.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/core/method_rate_limiter.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/core/rate_limiter.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/core/sessions.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/attributes_and_characteristics.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/barcodes.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/beta.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/fbs.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/prices_and_stocks.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/methods/warehouses.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/attributes_and_characteristics/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/attributes_and_characteristics/base.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_attribute.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_attribute_values.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_attribute_values_search.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_tree.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/barcodes/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/barcodes/v1__barcode_add.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/barcodes/v1__barcode_generate.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/base.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/beta/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/beta/v1__analytics_stocks.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__addressee.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__analytics_data.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__barcodes.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__cancellation.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__customer.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__customer_address.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__delivery_method.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__filter_with.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__financial_data.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__financial_data_products.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__legal_info.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__optional.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__posting.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__product.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__requirements.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/posting__tariffication.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v2__fbs_posting_delivering.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v2__posting_fbs_get_by_barcode.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v2__posting_fbs_product_change.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v3__posting_fbs_get.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v3__posting_fbs_list.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v3__posting_fbs_unfulfilled_list.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v3__posting_multiboxqty_set.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/mixins.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/base.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/v1__product_import_prices.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/v1__product_info_stocks_by_warehouse_fbs.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/v2__products_stocks.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/v4__product_info_stocks.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/v5__product_info_prices.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/base.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_archive.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_attributes_update.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_import_by_sku.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_import_info.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_info_subscription.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_rating_by_sku.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_related_sku_get.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_unarchive.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v1__product_update_offer_id.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v2__product_pictures_info.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v2__products_delete.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v3__product_import.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v3__product_info_list.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v3__product_list.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v4__product_info_attributes.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/warehouses/__init__.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/warehouses/v1__delivery_method_list.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/warehouses/v1__warehouse_list.py +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi_async.egg-info/dependency_links.txt +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi_async.egg-info/requires.txt +0 -0
- {ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi_async.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ozonapi-async
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: Асинхронный клиент для работы с API маркетплейса Ozon
|
|
5
5
|
Author: Alexander Ulianov
|
|
6
6
|
License: MIT
|
|
@@ -260,7 +260,7 @@ pytest --cov=ozonapi --cov-report=html
|
|
|
260
260
|
| ✓ | `/v1/description-category/attribute/values/search` | Поиск по справочным значениям характеристики | `description_category_attribute_values_search()` |
|
|
261
261
|
</details>
|
|
262
262
|
<details>
|
|
263
|
-
<summary>Загрузка и обновление товаров (
|
|
263
|
+
<summary>Загрузка и обновление товаров (17)</summary>
|
|
264
264
|
|
|
265
265
|
| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|
|
266
266
|
|---|---|---|---|
|
|
@@ -268,7 +268,7 @@ pytest --cov=ozonapi --cov-report=html
|
|
|
268
268
|
| ✓ | `/v1/product/import/info` | Узнать статус добавления или обновления товара | `product_import_info()` |
|
|
269
269
|
| ✓ | `/v1/product/import-by-sku` | Создать товар по SKU | `product_import_by_sku()` |
|
|
270
270
|
| ✓ | `/v1/product/attributes/update` | Обновить характеристики товара | `product_attributes_update()` |
|
|
271
|
-
|
|
|
271
|
+
| ✓ | `/v1/product/pictures/import` | Загрузить или обновить изображения товара | `product_pictures_import()` |
|
|
272
272
|
| ✓ | `/v3/product/list` | Список товаров | `product_list()` |
|
|
273
273
|
| ✓ | `/v1/product/rating-by-sku` | Получить контент-рейтинг товаров по SKU | `product_rating_by_sku()` |
|
|
274
274
|
| ✓ | `/v3/product/info/list` | Получить информацию о товарах по идентификаторам | `product_info_list()` |
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ozonapi-async"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.8.0"
|
|
8
8
|
description = "Асинхронный клиент для работы с API маркетплейса Ozon"
|
|
9
9
|
readme = "readme.md"
|
|
10
10
|
keywords = ["ozon", "api", "async", "ecommerce", "seller", "client"]
|
|
@@ -218,7 +218,7 @@ pytest --cov=ozonapi --cov-report=html
|
|
|
218
218
|
| ✓ | `/v1/description-category/attribute/values/search` | Поиск по справочным значениям характеристики | `description_category_attribute_values_search()` |
|
|
219
219
|
</details>
|
|
220
220
|
<details>
|
|
221
|
-
<summary>Загрузка и обновление товаров (
|
|
221
|
+
<summary>Загрузка и обновление товаров (17)</summary>
|
|
222
222
|
|
|
223
223
|
| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|
|
224
224
|
|---|---|---|---|
|
|
@@ -226,7 +226,7 @@ pytest --cov=ozonapi --cov-report=html
|
|
|
226
226
|
| ✓ | `/v1/product/import/info` | Узнать статус добавления или обновления товара | `product_import_info()` |
|
|
227
227
|
| ✓ | `/v1/product/import-by-sku` | Создать товар по SKU | `product_import_by_sku()` |
|
|
228
228
|
| ✓ | `/v1/product/attributes/update` | Обновить характеристики товара | `product_attributes_update()` |
|
|
229
|
-
|
|
|
229
|
+
| ✓ | `/v1/product/pictures/import` | Загрузить или обновить изображения товара | `product_pictures_import()` |
|
|
230
230
|
| ✓ | `/v3/product/list` | Список товаров | `product_list()` |
|
|
231
231
|
| ✓ | `/v1/product/rating-by-sku` | Получить контент-рейтинг товаров по SKU | `product_rating_by_sku()` |
|
|
232
232
|
| ✓ | `/v3/product/info/list` | Получить информацию о товарах по идентификаторам | `product_info_list()` |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Асинхронный интерфейс для взаимодействия с API маркетплейса Ozon.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
__version__ = "0.
|
|
5
|
+
__version__ = "0.8.0"
|
|
6
6
|
__author__ = "Alexander Ulianov"
|
|
7
7
|
__repository__ = "https://github.com/a-ulianov/OzonAPI"
|
|
8
8
|
__docs__ = "https://github.com/a-ulianov/OzonAPI#readme"
|
|
@@ -6,7 +6,8 @@ from ..schemas.products import ProductArchiveResponse, ProductArchiveRequest, Pr
|
|
|
6
6
|
ProductInfoAttributesResponse, ProductInfoListRequest, ProductInfoListResponse, ProductInfoSubscriptionRequest, \
|
|
7
7
|
ProductInfoSubscriptionResponse, ProductListRequest, ProductListResponse, ProductPicturesInfoRequest, \
|
|
8
8
|
ProductPicturesInfoResponse, ProductRatingBySkuRequest, ProductRatingBySkuResponse, ProductRelatedSkuGetRequest, \
|
|
9
|
-
ProductRelatedSkuGetResponse, ProductUpdateOfferIdRequest, ProductUpdateOfferIdResponse
|
|
9
|
+
ProductRelatedSkuGetResponse, ProductUpdateOfferIdRequest, ProductUpdateOfferIdResponse, \
|
|
10
|
+
ProductPicturesImportResponse, ProductPicturesImportRequest
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
class SellerProductAPI(APIManager):
|
|
@@ -670,4 +671,65 @@ class SellerProductAPI(APIManager):
|
|
|
670
671
|
endpoint="product/update/offer-id",
|
|
671
672
|
json=request.model_dump(),
|
|
672
673
|
)
|
|
673
|
-
return ProductUpdateOfferIdResponse(**response)
|
|
674
|
+
return ProductUpdateOfferIdResponse(**response)
|
|
675
|
+
|
|
676
|
+
async def product_pictures_import(
|
|
677
|
+
self: "SellerProductAPI", request: ProductPicturesImportRequest
|
|
678
|
+
) -> ProductPicturesImportResponse:
|
|
679
|
+
"""Загружает или обновляет изображения товара.
|
|
680
|
+
|
|
681
|
+
Notes:
|
|
682
|
+
• При каждом вызове метода передавайте все изображения, которые должны быть на карточке товара.
|
|
683
|
+
Например, если вы вызвали метод и загрузили 10 изображений, а затем вызвали метод второй раз
|
|
684
|
+
и загрузили ещё одно, то все 10 предыдущих сотрутся.
|
|
685
|
+
• Для загрузки передайте адрес ссылки на изображение в общедоступном облачном хранилище.
|
|
686
|
+
Формат изображения по ссылке — JPG или PNG.
|
|
687
|
+
• Изображения в массиве `images` располагайте в соответствии с желаемым порядком на сайте.
|
|
688
|
+
Главным будет первое изображение в массиве.
|
|
689
|
+
• Для каждого товара вы можете загрузить до `30` изображений.
|
|
690
|
+
• Для загрузки изображений 360 используйте поле `images360`, для загрузки маркетингового цвета — `color_image`.
|
|
691
|
+
• Если вы хотите изменить состав или порядок изображений, получите информацию с помощью метода
|
|
692
|
+
`product_info_list()` — в нём отображается текущий порядок и состав изображений. Скопируйте
|
|
693
|
+
данные полей `images`, `images360`, `color_image`, измените и дополните состав или порядок
|
|
694
|
+
в соответствии с необходимостью.
|
|
695
|
+
• В ответе метода всегда будет статус `imported` — картинка не обработана. Чтобы посмотреть
|
|
696
|
+
финальный статус, примерно через 10 секунд вызовите метод `product_pictures_info()`.
|
|
697
|
+
`* Примечание: Видимо, артефакт в документации, т.к. по факту метод product_pictures_info() не возвращает статусы.`
|
|
698
|
+
• Финальные статусы загрузки изображений:
|
|
699
|
+
- `uploaded` — изображение загружено;
|
|
700
|
+
- `pending` — при загрузке изображения возникла ошибка. Повторите попытку позже.
|
|
701
|
+
|
|
702
|
+
References:
|
|
703
|
+
https://docs.ozon.ru/api/seller/?__rr=1#operation/ProductAPI_ProductImportPictures
|
|
704
|
+
|
|
705
|
+
Args:
|
|
706
|
+
request: Данные для загрузки изображений товара по схеме `ProductPicturesImportRequest`.
|
|
707
|
+
|
|
708
|
+
Returns:
|
|
709
|
+
Результат загрузки изображений с временными статусами по схеме `ProductPicturesImportResponse`.
|
|
710
|
+
|
|
711
|
+
Example:
|
|
712
|
+
async with SellerAPI(client_id, api_key) as api:
|
|
713
|
+
result = await api.product_pictures_import(
|
|
714
|
+
ProductPicturesImportRequest(
|
|
715
|
+
product_id=123456789,
|
|
716
|
+
color_image="https://example.com/color.jpg",
|
|
717
|
+
images=[
|
|
718
|
+
"https://example.com/image1.jpg",
|
|
719
|
+
"https://example.com/image2.jpg",
|
|
720
|
+
"https://example.com/image3.jpg",
|
|
721
|
+
],
|
|
722
|
+
images360=[
|
|
723
|
+
"https://example.com/360_1.jpg",
|
|
724
|
+
"https://example.com/360_2.jpg",
|
|
725
|
+
]
|
|
726
|
+
)
|
|
727
|
+
)
|
|
728
|
+
"""
|
|
729
|
+
response = await self._request(
|
|
730
|
+
method="post",
|
|
731
|
+
api_version="v1",
|
|
732
|
+
endpoint="product/pictures/import",
|
|
733
|
+
json=request.model_dump(),
|
|
734
|
+
)
|
|
735
|
+
return ProductPicturesImportResponse(**response)
|
|
@@ -57,6 +57,8 @@ __all__ = [
|
|
|
57
57
|
"ProductListResponseItem",
|
|
58
58
|
"ProductListResponseResult",
|
|
59
59
|
"ProductListQuants",
|
|
60
|
+
"ProductPicturesImportRequest",
|
|
61
|
+
"ProductPicturesImportResponse",
|
|
60
62
|
"ProductPicturesInfoRequest",
|
|
61
63
|
"ProductPicturesInfoResponse",
|
|
62
64
|
"ProductPicturesInfoItem",
|
|
@@ -104,6 +106,7 @@ from .v1__product_info_subscription import (
|
|
|
104
106
|
ProductInfoSubscriptionRequest,
|
|
105
107
|
ProductInfoSubscriptionItem,
|
|
106
108
|
)
|
|
109
|
+
from .v1__product_pictures_import import ProductPicturesImportResponse, ProductPicturesImportRequest
|
|
107
110
|
from .v1__product_rating_by_sku import (
|
|
108
111
|
ProductRatingBySkuResponse,
|
|
109
112
|
ProductRatingBySkuRequest,
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""https://docs.ozon.ru/api/seller/?__rr=1#operation/ProductAPI_ProductImportPictures"""
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
from pydantic import BaseModel, Field
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ProductPicturesImportRequest(BaseModel):
|
|
8
|
+
"""Описывает схему запроса на добавление или обновление изображений в товарной карточке.
|
|
9
|
+
|
|
10
|
+
Attributes:
|
|
11
|
+
color_image: Маркетинговый цвет (опционально)
|
|
12
|
+
images: Массив ссылок на изображения (опционально, до 30 штук; изображения в массиве расположены в порядке их расположения на сайте; первое изображение в массиве будет главным)
|
|
13
|
+
images360: Массив изображений 360 (опционально, до 70 штук)
|
|
14
|
+
product_id: Идентификатор товара в системе продавца — product_id
|
|
15
|
+
"""
|
|
16
|
+
color_image: Optional[str] = Field(
|
|
17
|
+
None, description="Маркетинговый цвет."
|
|
18
|
+
)
|
|
19
|
+
images: Optional[list[str]] = Field(
|
|
20
|
+
default_factory=list, description="""
|
|
21
|
+
Массив ссылок на изображения (до 30 штук; изображения в массиве расположены в порядке их
|
|
22
|
+
расположения на сайте; первое изображение в массиве будет главным).
|
|
23
|
+
""",
|
|
24
|
+
max_length=30,
|
|
25
|
+
)
|
|
26
|
+
images360: Optional[list[str]] = Field(
|
|
27
|
+
default_factory=list, description="Массив изображений 360 (до 70 штук)",
|
|
28
|
+
max_length=70,
|
|
29
|
+
)
|
|
30
|
+
product_id: int = Field(
|
|
31
|
+
..., description="Идентификатор товара в системе продавца."
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ProductPicturesImportPicture(BaseModel):
|
|
36
|
+
"""Описывает схему результата добавления изображения.
|
|
37
|
+
|
|
38
|
+
Attributes:
|
|
39
|
+
is_360: Признак, что картинка — изображение 360
|
|
40
|
+
is_color: Признак, что картинка — образец цвета
|
|
41
|
+
is_primary: Признак, что картинка — главное изображение
|
|
42
|
+
product_id: Идентификатор товара в системе продавца
|
|
43
|
+
state: Статус загрузки изображения
|
|
44
|
+
url: Адрес ссылки на изображение в общедоступном облачном хранилище (формат изображения по ссылке — JPG или PNG)
|
|
45
|
+
"""
|
|
46
|
+
is_360: Optional[bool] = Field(
|
|
47
|
+
None, description="Признак, что картинка — изображение 360."
|
|
48
|
+
)
|
|
49
|
+
is_color: Optional[bool] = Field(
|
|
50
|
+
None, description="Признак, что картинка — образец цвета."
|
|
51
|
+
)
|
|
52
|
+
is_primary: Optional[bool] = Field(
|
|
53
|
+
None, description="Признак, что картинка — главное изображение."
|
|
54
|
+
)
|
|
55
|
+
product_id: int = Field(
|
|
56
|
+
..., description="Идентификатор товара в системе продавца."
|
|
57
|
+
)
|
|
58
|
+
state: str = Field(
|
|
59
|
+
..., description="Статус загрузки изображения."
|
|
60
|
+
)
|
|
61
|
+
url: Optional[str] = Field(
|
|
62
|
+
None, description="Адрес ссылки на изображение в общедоступном облачном хранилище (формат изображения по ссылке — JPG или PNG)."
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class ProductPicturesImportResult(BaseModel):
|
|
67
|
+
"""Описывает схему результата добавление изображений.
|
|
68
|
+
|
|
69
|
+
Attributes:
|
|
70
|
+
pictures: Массив признаков загруженного контента, статусов и ссылок на изображения
|
|
71
|
+
"""
|
|
72
|
+
pictures: list[ProductPicturesImportPicture] = Field(
|
|
73
|
+
default_factory=list, description="Массив признаков загруженного контента, статусов и ссылок на изображения."
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class ProductPicturesImportResponse(BaseModel):
|
|
78
|
+
"""Описывает схему ответа на запрос на добавление или обновление изображений в товарной карточке.
|
|
79
|
+
|
|
80
|
+
Attributes:
|
|
81
|
+
result: Результат работы метода
|
|
82
|
+
"""
|
|
83
|
+
result: ProductPicturesImportResult = Field(
|
|
84
|
+
..., description="Результат работы метода."
|
|
85
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ozonapi-async
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.0
|
|
4
4
|
Summary: Асинхронный клиент для работы с API маркетплейса Ozon
|
|
5
5
|
Author: Alexander Ulianov
|
|
6
6
|
License: MIT
|
|
@@ -260,7 +260,7 @@ pytest --cov=ozonapi --cov-report=html
|
|
|
260
260
|
| ✓ | `/v1/description-category/attribute/values/search` | Поиск по справочным значениям характеристики | `description_category_attribute_values_search()` |
|
|
261
261
|
</details>
|
|
262
262
|
<details>
|
|
263
|
-
<summary>Загрузка и обновление товаров (
|
|
263
|
+
<summary>Загрузка и обновление товаров (17)</summary>
|
|
264
264
|
|
|
265
265
|
| ✓ | Адрес метода Ozon | Описание метода | Python-метод |
|
|
266
266
|
|---|---|---|---|
|
|
@@ -268,7 +268,7 @@ pytest --cov=ozonapi --cov-report=html
|
|
|
268
268
|
| ✓ | `/v1/product/import/info` | Узнать статус добавления или обновления товара | `product_import_info()` |
|
|
269
269
|
| ✓ | `/v1/product/import-by-sku` | Создать товар по SKU | `product_import_by_sku()` |
|
|
270
270
|
| ✓ | `/v1/product/attributes/update` | Обновить характеристики товара | `product_attributes_update()` |
|
|
271
|
-
|
|
|
271
|
+
| ✓ | `/v1/product/pictures/import` | Загрузить или обновить изображения товара | `product_pictures_import()` |
|
|
272
272
|
| ✓ | `/v3/product/list` | Список товаров | `product_list()` |
|
|
273
273
|
| ✓ | `/v1/product/rating-by-sku` | Получить контент-рейтинг товаров по SKU | `product_rating_by_sku()` |
|
|
274
274
|
| ✓ | `/v3/product/info/list` | Получить информацию о товарах по идентификаторам | `product_info_list()` |
|
|
@@ -80,6 +80,7 @@ src/ozonapi/seller/schemas/products/v1__product_attributes_update.py
|
|
|
80
80
|
src/ozonapi/seller/schemas/products/v1__product_import_by_sku.py
|
|
81
81
|
src/ozonapi/seller/schemas/products/v1__product_import_info.py
|
|
82
82
|
src/ozonapi/seller/schemas/products/v1__product_info_subscription.py
|
|
83
|
+
src/ozonapi/seller/schemas/products/v1__product_pictures_import.py
|
|
83
84
|
src/ozonapi/seller/schemas/products/v1__product_rating_by_sku.py
|
|
84
85
|
src/ozonapi/seller/schemas/products/v1__product_related_sku_get.py
|
|
85
86
|
src/ozonapi/seller/schemas/products/v1__product_unarchive.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/__init__.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/delivery.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/localization.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/postings.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/prices.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/products.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/requests.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/common/enumerations/warehouses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/barcodes/v1__barcode_add.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/beta/v1__analytics_stocks.py
RENAMED
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/entities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v3__posting_fbs_get.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/fbs/v3__posting_fbs_list.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/__init__.py
RENAMED
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/prices_and_stocks/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/products/v3__product_list.py
RENAMED
|
File without changes
|
|
File without changes
|
{ozonapi_async-0.7.4 → ozonapi_async-0.8.0}/src/ozonapi/seller/schemas/warehouses/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|