ozonapi-async 0.1.0__py3-none-any.whl
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/__init__.py +9 -0
- ozonapi/seller/__init__.py +29 -0
- ozonapi/seller/common/__init__.py +0 -0
- ozonapi/seller/common/enumerations/__init__.py +0 -0
- ozonapi/seller/common/enumerations/delivery.py +16 -0
- ozonapi/seller/common/enumerations/localization.py +39 -0
- ozonapi/seller/common/enumerations/postings.py +205 -0
- ozonapi/seller/common/enumerations/products.py +225 -0
- ozonapi/seller/common/enumerations/requests.py +26 -0
- ozonapi/seller/common/enumerations/warehouses.py +54 -0
- ozonapi/seller/core/__init__.py +14 -0
- ozonapi/seller/core/config.py +88 -0
- ozonapi/seller/core/core.py +404 -0
- ozonapi/seller/core/exceptions.py +32 -0
- ozonapi/seller/core/method_rate_limiter.py +199 -0
- ozonapi/seller/core/rate_limiter.py +174 -0
- ozonapi/seller/core/sessions.py +75 -0
- ozonapi/seller/methods/__init__.py +15 -0
- ozonapi/seller/methods/attributes_and_characteristics.py +177 -0
- ozonapi/seller/methods/barcodes.py +84 -0
- ozonapi/seller/methods/fbs.py +69 -0
- ozonapi/seller/methods/prices_and_stocks.py +147 -0
- ozonapi/seller/methods/products.py +673 -0
- ozonapi/seller/methods/warehouses.py +80 -0
- ozonapi/seller/schemas/__init__.py +0 -0
- ozonapi/seller/schemas/attributes_and_characteristics/__init__.py +21 -0
- ozonapi/seller/schemas/attributes_and_characteristics/base.py +52 -0
- ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_attribute.py +108 -0
- ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_attribute_values.py +38 -0
- ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_attribute_values_search.py +36 -0
- ozonapi/seller/schemas/attributes_and_characteristics/v1__description_category_tree.py +61 -0
- ozonapi/seller/schemas/barcodes/__init__.py +12 -0
- ozonapi/seller/schemas/barcodes/v1__barcode_add.py +66 -0
- ozonapi/seller/schemas/barcodes/v1__barcode_generate.py +46 -0
- ozonapi/seller/schemas/base.py +94 -0
- ozonapi/seller/schemas/fbs/__init__.py +9 -0
- ozonapi/seller/schemas/fbs/v3__posting_fbs_unfulfilled_list.py +764 -0
- ozonapi/seller/schemas/prices_and_stocks/__init__.py +16 -0
- ozonapi/seller/schemas/prices_and_stocks/base.py +26 -0
- ozonapi/seller/schemas/prices_and_stocks/v1__product_info_stocks_by_warehouse_fbs.py +55 -0
- ozonapi/seller/schemas/prices_and_stocks/v4__product_info_stocks.py +113 -0
- ozonapi/seller/schemas/prices_and_stocks/v5__product_info_prices.py +292 -0
- ozonapi/seller/schemas/products/__init__.py +51 -0
- ozonapi/seller/schemas/products/base.py +162 -0
- ozonapi/seller/schemas/products/v1__product_archive.py +20 -0
- ozonapi/seller/schemas/products/v1__product_attributes_update.py +79 -0
- ozonapi/seller/schemas/products/v1__product_import_by_sku.py +71 -0
- ozonapi/seller/schemas/products/v1__product_import_info.py +103 -0
- ozonapi/seller/schemas/products/v1__product_info_subscription.py +39 -0
- ozonapi/seller/schemas/products/v1__product_rating_by_sku.py +116 -0
- ozonapi/seller/schemas/products/v1__product_related_sku_get.py +81 -0
- ozonapi/seller/schemas/products/v1__product_unarchive.py +20 -0
- ozonapi/seller/schemas/products/v1__product_update_offer_id.py +52 -0
- ozonapi/seller/schemas/products/v2__product_pictures_info.py +73 -0
- ozonapi/seller/schemas/products/v2__products_delete.py +57 -0
- ozonapi/seller/schemas/products/v3__product_import.py +142 -0
- ozonapi/seller/schemas/products/v3__product_info_list.py +482 -0
- ozonapi/seller/schemas/products/v3__product_list.py +107 -0
- ozonapi/seller/schemas/products/v4__product_info_attributes.py +137 -0
- ozonapi/seller/schemas/warehouses/__init__.py +11 -0
- ozonapi/seller/schemas/warehouses/v1__delivery_method_list.py +95 -0
- ozonapi/seller/schemas/warehouses/v1__warehouse_list.py +109 -0
- ozonapi_async-0.1.0.dist-info/METADATA +648 -0
- ozonapi_async-0.1.0.dist-info/RECORD +67 -0
- ozonapi_async-0.1.0.dist-info/WHEEL +5 -0
- ozonapi_async-0.1.0.dist-info/licenses/LICENSE +21 -0
- ozonapi_async-0.1.0.dist-info/top_level.txt +1 -0
ozonapi/__init__.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from .core import APIManager
|
|
2
|
+
from .methods import (
|
|
3
|
+
SellerBarcodeAPI,
|
|
4
|
+
SellerCategoryAPI,
|
|
5
|
+
SellerFBSAPI,
|
|
6
|
+
SellerPricesAndStocksAPI,
|
|
7
|
+
SellerProductAPI,
|
|
8
|
+
SellerWarehouseAPI,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SellerAPI(
|
|
13
|
+
SellerBarcodeAPI,
|
|
14
|
+
SellerCategoryAPI,
|
|
15
|
+
SellerFBSAPI,
|
|
16
|
+
SellerPricesAndStocksAPI,
|
|
17
|
+
SellerProductAPI,
|
|
18
|
+
SellerWarehouseAPI,
|
|
19
|
+
):
|
|
20
|
+
"""
|
|
21
|
+
Основной класс для работы с Seller API Ozon.
|
|
22
|
+
Объединяет все доступные методы API в единый интерфейс.
|
|
23
|
+
"""
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
__all__ = ["SellerAPI", "APIManager"]
|
|
28
|
+
|
|
29
|
+
# Импортируйте здесь бизнес-методы и собирайте публичный API
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class DeliveryMethodStatus(str, Enum):
|
|
5
|
+
"""Статус метода доставки.
|
|
6
|
+
|
|
7
|
+
Attributes:
|
|
8
|
+
NEW: создан
|
|
9
|
+
EDITED: редактируется
|
|
10
|
+
ACTIVE: активный
|
|
11
|
+
DISABLED: неактивный
|
|
12
|
+
"""
|
|
13
|
+
NEW = "NEW"
|
|
14
|
+
EDITED = "EDITED"
|
|
15
|
+
ACTIVE = "ACTIVE"
|
|
16
|
+
DISABLED = "DISABLED"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class CurrencyCode(str, Enum):
|
|
5
|
+
"""Валюты цен.
|
|
6
|
+
|
|
7
|
+
Attributes:
|
|
8
|
+
RUB: Российский рубль
|
|
9
|
+
BYN: Белорусский рубль
|
|
10
|
+
KZT: Казахстанский тенге
|
|
11
|
+
EUR: Евро
|
|
12
|
+
USD: Доллар США
|
|
13
|
+
CNY: Китайский юань
|
|
14
|
+
UNSPECIFIED: Не указана
|
|
15
|
+
"""
|
|
16
|
+
RUB = "RUB"
|
|
17
|
+
BYN = "BYN"
|
|
18
|
+
KZT = "KZT"
|
|
19
|
+
EUR = "EUR"
|
|
20
|
+
USD = "USD"
|
|
21
|
+
CNY = "CNY"
|
|
22
|
+
UNSPECIFIED = ""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Language(str, Enum):
|
|
26
|
+
"""Языки.
|
|
27
|
+
|
|
28
|
+
Attributes:
|
|
29
|
+
EN: английский
|
|
30
|
+
RU: русский
|
|
31
|
+
TR: турецкий
|
|
32
|
+
ZH_HANS: китайский
|
|
33
|
+
DEFAULT: по умолчанию
|
|
34
|
+
"""
|
|
35
|
+
EN = "EN"
|
|
36
|
+
RU = "RU"
|
|
37
|
+
TR = "TR"
|
|
38
|
+
ZH_HANS = "ZH_HANS"
|
|
39
|
+
DEFAULT = "DEFAULT"
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AvailablePostingActions(str, Enum):
|
|
5
|
+
"""Доступные действия и информация об отправлении.
|
|
6
|
+
|
|
7
|
+
Attributes:
|
|
8
|
+
ARBITRATION: открыть спор
|
|
9
|
+
AWAITING_DELIVERY: перевести в статус «Ожидает отгрузки»
|
|
10
|
+
CAN_CREATE_CHAT: открыть чат с покупателем
|
|
11
|
+
CANCEL: отменить отправление
|
|
12
|
+
CLICK_TRACK_NUMBER: просмотреть по трек-номеру историю изменения статусов в личном кабинете
|
|
13
|
+
CUSTOMER_PHONE_AVAILABLE: телефон покупателя
|
|
14
|
+
HAS_WEIGHT_PRODUCTS: весовые товары в отправлении
|
|
15
|
+
HIDE_REGION_AND_CITY: скрыть регион и город покупателя в отчёте
|
|
16
|
+
INVOICE_GET: получить информацию из счёта-фактуры
|
|
17
|
+
INVOICE_SEND: создать счёт-фактуру
|
|
18
|
+
INVOICE_UPDATE: отредактировать счёт-фактуру
|
|
19
|
+
LABEL_DOWNLOAD_BIG: скачать большую этикетку
|
|
20
|
+
LABEL_DOWNLOAD_SMALL: скачать маленькую этикетку
|
|
21
|
+
LABEL_DOWNLOAD: скачать этикетку
|
|
22
|
+
NON_INT_DELIVERED: перевести в статус Условно доставлен
|
|
23
|
+
NON_INT_DELIVERING: перевести в статус Доставляется
|
|
24
|
+
NON_INT_LAST_MILE: перевести в статус Курьер в пути
|
|
25
|
+
PRODUCT_CANCEL: отменить часть товаров в отправлении
|
|
26
|
+
SET_CUTOFF: необходимо указать дату отгрузки, воспользуйтесь методом posting_cutoff_set()
|
|
27
|
+
SET_TIMESLOT: изменить время доставки покупателю
|
|
28
|
+
SET_TRACK_NUMBER: указать или изменить трек-номер
|
|
29
|
+
SHIP_ASYNC_IN_PROCESS: отправление собирается
|
|
30
|
+
SHIP_ASYNC_RETRY: собрать отправление повторно после ошибки сборки
|
|
31
|
+
SHIP_ASYNC: собрать отправление
|
|
32
|
+
SHIP_WITH_ADDITIONAL_INFO: необходимо заполнить дополнительную информацию
|
|
33
|
+
SHIP: собрать отправление
|
|
34
|
+
UPDATE_CIS: изменить дополнительную информацию
|
|
35
|
+
"""
|
|
36
|
+
ARBITRATION = "arbitration"
|
|
37
|
+
AWAITING_DELIVERY = "awaiting_delivery"
|
|
38
|
+
CAN_CREATE_CHAT = "can_create_chat"
|
|
39
|
+
CANCEL = "cancel"
|
|
40
|
+
CLICK_TRACK_NUMBER = "click_track_number"
|
|
41
|
+
CUSTOMER_PHONE_AVAILABLE = "customer_phone_available"
|
|
42
|
+
HAS_WEIGHT_PRODUCTS = "has_weight_products"
|
|
43
|
+
HIDE_REGION_AND_CITY = "hide_region_and_city"
|
|
44
|
+
INVOICE_GET = "invoice_get"
|
|
45
|
+
INVOICE_SEND = "invoice_send"
|
|
46
|
+
INVOICE_UPDATE = "invoice_update"
|
|
47
|
+
LABEL_DOWNLOAD_BIG = "label_download_big"
|
|
48
|
+
LABEL_DOWNLOAD_SMALL = "label_download_small"
|
|
49
|
+
LABEL_DOWNLOAD = "label_download"
|
|
50
|
+
NON_INT_DELIVERED = "non_int_delivered"
|
|
51
|
+
NON_INT_DELIVERING = "non_int_delivering"
|
|
52
|
+
NON_INT_LAST_MILE = "non_int_last_mile"
|
|
53
|
+
PRODUCT_CANCEL = "product_cancel"
|
|
54
|
+
SET_CUTOFF = "set_cutoff"
|
|
55
|
+
SET_TIMESLOT = "set_timeslot"
|
|
56
|
+
SET_TRACK_NUMBER = "set_track_number"
|
|
57
|
+
SHIP_ASYNC_IN_PROCESS = "ship_async_in_process"
|
|
58
|
+
SHIP_ASYNC_RETRY = "ship_async_retry"
|
|
59
|
+
SHIP_ASYNC = "ship_async"
|
|
60
|
+
SHIP_WITH_ADDITIONAL_INFO = "ship_with_additional_info"
|
|
61
|
+
SHIP = "ship"
|
|
62
|
+
UPDATE_CIS = "update_cis"
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class PostingStatus(str, Enum):
|
|
66
|
+
"""Статус отправления.
|
|
67
|
+
|
|
68
|
+
Attributes:
|
|
69
|
+
ACCEPTANCE_IN_PROGRESS: идёт приёмка
|
|
70
|
+
AWAITING_APPROVE: ожидает подтверждения
|
|
71
|
+
AWAITING_PACKAGING: ожидает упаковки
|
|
72
|
+
AWAITING_REGISTRATION: ожидает регистрации
|
|
73
|
+
AWAITING_DELIVER: ожидает отгрузки
|
|
74
|
+
ARBITRATION: арбитраж
|
|
75
|
+
CLIENT_ARBITRATION: клиентский арбитраж доставки
|
|
76
|
+
DELIVERING: доставляется
|
|
77
|
+
DRIVER_PICKUP: у водителя
|
|
78
|
+
NOT_ACCEPTED: не принят на сортировочном центре
|
|
79
|
+
AWAITING_VERIFICATION: создано
|
|
80
|
+
CANCELLED: отменено
|
|
81
|
+
CANCELLED_FROM_SPLIT_PENDING: отменён из-за разделения отправления
|
|
82
|
+
"""
|
|
83
|
+
ACCEPTANCE_IN_PROGRESS = "acceptance_in_progress"
|
|
84
|
+
AWAITING_APPROVE = "awaiting_approve"
|
|
85
|
+
AWAITING_PACKAGING = "awaiting_packaging"
|
|
86
|
+
AWAITING_REGISTRATION = "awaiting_registration"
|
|
87
|
+
AWAITING_DELIVER = "awaiting_deliver"
|
|
88
|
+
ARBITRATION = "arbitration"
|
|
89
|
+
CLIENT_ARBITRATION = "client_arbitration"
|
|
90
|
+
DELIVERING = "delivering"
|
|
91
|
+
DRIVER_PICKUP = "driver_pickup"
|
|
92
|
+
NOT_ACCEPTED = "not_accepted"
|
|
93
|
+
AWAITING_VERIFICATION = "awaiting_verification"
|
|
94
|
+
CANCELLED = "cancelled"
|
|
95
|
+
CANCELLED_FROM_SPLIT_PENDING = "cancelled_from_split_pending"
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class PostingSubstatus(str, Enum):
|
|
99
|
+
"""Подстатус отправления.
|
|
100
|
+
|
|
101
|
+
Attributes:
|
|
102
|
+
POSTING_ACCEPTANCE_IN_PROGRESS: идёт приёмка
|
|
103
|
+
POSTING_IN_ARBITRATION: арбитраж
|
|
104
|
+
POSTING_CREATED: создано
|
|
105
|
+
POSTING_IN_CARRIAGE: в перевозке
|
|
106
|
+
POSTING_NOT_IN_CARRIAGE: не добавлено в перевозку
|
|
107
|
+
POSTING_REGISTERED: зарегистрировано
|
|
108
|
+
POSTING_TRANSFERRING_TO_DELIVERY: передаётся в доставку
|
|
109
|
+
POSTING_AWAITING_PASSPORT_DATA: ожидает паспортных данных
|
|
110
|
+
POSTING_AWAITING_REGISTRATION: ожидает регистрации
|
|
111
|
+
POSTING_REGISTRATION_ERROR: ошибка регистрации
|
|
112
|
+
POSTING_SPLIT_PENDING: создано
|
|
113
|
+
POSTING_CANCELED: отменено
|
|
114
|
+
POSTING_IN_CLIENT_ARBITRATION: клиентский арбитраж доставки
|
|
115
|
+
POSTING_DELIVERED: доставлено
|
|
116
|
+
POSTING_RECEIVED: получено
|
|
117
|
+
POSTING_CONDITIONALLY_DELIVERED: условно доставлено
|
|
118
|
+
POSTING_IN_COURIER_SERVICE: курьер в пути
|
|
119
|
+
POSTING_IN_PICKUP_POINT: в пункте выдачи
|
|
120
|
+
POSTING_ON_WAY_TO_CITY: в пути в ваш город
|
|
121
|
+
POSTING_ON_WAY_TO_PICKUP_POINT: в пути в пункт выдачи
|
|
122
|
+
POSTING_RETURNED_TO_WAREHOUSE: возвращено на склад
|
|
123
|
+
POSTING_TRANSFERRED_TO_COURIER_SERVICE: передаётся в службу доставки
|
|
124
|
+
POSTING_DRIVER_PICK_UP: у водителя
|
|
125
|
+
POSTING_NOT_IN_SORT_CENTER: не принято на сортировочном центре
|
|
126
|
+
"""
|
|
127
|
+
POSTING_ACCEPTANCE_IN_PROGRESS = "posting_acceptance_in_progress"
|
|
128
|
+
POSTING_IN_ARBITRATION = "posting_in_arbitration"
|
|
129
|
+
POSTING_CREATED = "posting_created"
|
|
130
|
+
POSTING_IN_CARRIAGE = "posting_in_carriage"
|
|
131
|
+
POSTING_NOT_IN_CARRIAGE = "posting_not_in_carriage"
|
|
132
|
+
POSTING_REGISTERED = "posting_registered"
|
|
133
|
+
POSTING_TRANSFERRING_TO_DELIVERY = "posting_transferring_to_delivery"
|
|
134
|
+
POSTING_AWAITING_PASSPORT_DATA = "posting_awaiting_passport_data"
|
|
135
|
+
POSTING_AWAITING_REGISTRATION = "posting_awaiting_registration"
|
|
136
|
+
POSTING_REGISTRATION_ERROR = "posting_registration_error"
|
|
137
|
+
POSTING_SPLIT_PENDING = "posting_split_pending"
|
|
138
|
+
POSTING_CANCELED = "posting_canceled"
|
|
139
|
+
POSTING_IN_CLIENT_ARBITRATION = "posting_in_client_arbitration"
|
|
140
|
+
POSTING_DELIVERED = "posting_delivered"
|
|
141
|
+
POSTING_RECEIVED = "posting_received"
|
|
142
|
+
POSTING_CONDITIONALLY_DELIVERED = "posting_conditionally_delivered"
|
|
143
|
+
POSTING_IN_COURIER_SERVICE = "posting_in_courier_service"
|
|
144
|
+
POSTING_IN_PICKUP_POINT = "posting_in_pickup_point"
|
|
145
|
+
POSTING_ON_WAY_TO_CITY = "posting_on_way_to_city"
|
|
146
|
+
POSTING_ON_WAY_TO_PICKUP_POINT = "posting_on_way_to_pickup_point"
|
|
147
|
+
POSTING_RETURNED_TO_WAREHOUSE = "posting_returned_to_warehouse"
|
|
148
|
+
POSTING_TRANSFERRED_TO_COURIER_SERVICE = "posting_transferred_to_courier_service"
|
|
149
|
+
POSTING_DRIVER_PICK_UP = "posting_driver_pick_up"
|
|
150
|
+
POSTING_NOT_IN_SORT_CENTER = "posting_not_in_sort_center"
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
class CancellationType(str, Enum):
|
|
154
|
+
"""Тип отмены отправления.
|
|
155
|
+
|
|
156
|
+
Attributes:
|
|
157
|
+
SELLER: отменено продавцом
|
|
158
|
+
CLIENT: отменено покупателем
|
|
159
|
+
CUSTOMER: отменено покупателем
|
|
160
|
+
OZON: отменено Ozon
|
|
161
|
+
SYSTEM: отменено системой
|
|
162
|
+
DELIVERY: отменено службой доставки
|
|
163
|
+
UNSPECIFIED: не указано
|
|
164
|
+
"""
|
|
165
|
+
SELLER = "seller"
|
|
166
|
+
CLIENT = "client"
|
|
167
|
+
CUSTOMER = "customer"
|
|
168
|
+
OZON = "ozon"
|
|
169
|
+
SYSTEM = "system"
|
|
170
|
+
DELIVERY = "delivery"
|
|
171
|
+
UNSPECIFIED = ""
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class PrrOption(str, Enum):
|
|
175
|
+
"""Код услуги погрузочно-разгрузочных работ
|
|
176
|
+
|
|
177
|
+
Attributes:
|
|
178
|
+
LIFT: подъём на лифте
|
|
179
|
+
STAIRS: подъём по лестнице
|
|
180
|
+
NONE: покупатель отказался от услуги, поднимать товары не нужно
|
|
181
|
+
DELIVERY_DEFAULT: доставка включена в стоимость, по условиям оферты нужно доставить товар на этаж
|
|
182
|
+
UNSPECIFIED: не указано
|
|
183
|
+
"""
|
|
184
|
+
LIFT = "lift"
|
|
185
|
+
STAIRS = "stairs"
|
|
186
|
+
NONE = "none"
|
|
187
|
+
DELIVERY_DEFAULT = "delivery_default"
|
|
188
|
+
UNSPECIFIED = ""
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class TplIntegrationType(str, Enum):
|
|
192
|
+
"""Тип интеграции со службой доставки
|
|
193
|
+
|
|
194
|
+
Attributes:
|
|
195
|
+
OZON: доставка службой Ozon
|
|
196
|
+
_3PL_TRACKING: доставка интегрированной службой
|
|
197
|
+
NON_INTEGRATED: доставка сторонней службой
|
|
198
|
+
AGGREGATOR: доставка через партнёрскую доставку Ozon
|
|
199
|
+
HYBRYD: схема доставки Почты России
|
|
200
|
+
"""
|
|
201
|
+
OZON = "ozon"
|
|
202
|
+
_3PL_TRACKING = "3pl_tracking"
|
|
203
|
+
NON_INTEGRATED = "non_integrated"
|
|
204
|
+
AGGREGATOR = "aggregator"
|
|
205
|
+
HYBRYD = "hybryd"
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Availability(str, Enum):
|
|
5
|
+
"""Признак доступности товара по SKU.
|
|
6
|
+
|
|
7
|
+
Attributes:
|
|
8
|
+
HIDDEN: скрыт
|
|
9
|
+
AVAILABLE: доступен
|
|
10
|
+
UNAVAILABLE: недоступен, SKU удалён
|
|
11
|
+
"""
|
|
12
|
+
HIDDEN = "HIDDEN"
|
|
13
|
+
AVAILABLE = "AVAILABLE"
|
|
14
|
+
UNAVAILABLE = "UNAVAILABLE"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ColorIndex(str, Enum):
|
|
18
|
+
"""Итоговый индекс цены товара.
|
|
19
|
+
|
|
20
|
+
Attributes:
|
|
21
|
+
UNSPECIFIED: не определен
|
|
22
|
+
WITHOUT_INDEX: нет индекса
|
|
23
|
+
GREEN: выгодный
|
|
24
|
+
YELLOW: умеренный
|
|
25
|
+
RED: невыгодный
|
|
26
|
+
SUPER: супер-индекс (не указано значение в документации)
|
|
27
|
+
"""
|
|
28
|
+
UNSPECIFIED = "COLOR_INDEX_UNSPECIFIED"
|
|
29
|
+
WITHOUT_INDEX = "WITHOUT_INDEX"
|
|
30
|
+
GREEN = "GREEN"
|
|
31
|
+
YELLOW = "YELLOW"
|
|
32
|
+
RED = "RED"
|
|
33
|
+
SUPER = "SUPER"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class DeliverySchema(str, Enum):
|
|
37
|
+
"""Схема доставки
|
|
38
|
+
|
|
39
|
+
Attributes:
|
|
40
|
+
SDS: идентификатор единого Ozon SKU
|
|
41
|
+
FBO: идентификатор товара, который продаётся со склада Ozon
|
|
42
|
+
FBS: идентификатор товара, который продаётся со склада FBS
|
|
43
|
+
CROSSBORDER: идентификатор товара, который продаётся из-за границы
|
|
44
|
+
"""
|
|
45
|
+
SDS = "SDS"
|
|
46
|
+
FBO = "FBO"
|
|
47
|
+
FBS = "FBS"
|
|
48
|
+
CROSSBORDER = "Crossborder"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class DimensionUnit(str, Enum):
|
|
52
|
+
"""Единицы измерения габаритов.
|
|
53
|
+
|
|
54
|
+
Attributes:
|
|
55
|
+
MILLIMETERS: миллиметры
|
|
56
|
+
CENTIMETERS: сантиметры
|
|
57
|
+
INCHES: дюймы
|
|
58
|
+
"""
|
|
59
|
+
MILLIMETERS = "mm"
|
|
60
|
+
CENTIMETERS = "cm"
|
|
61
|
+
INCHES = "in"
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class ErrorLevel(str, Enum):
|
|
65
|
+
"""Уровень ошибки.
|
|
66
|
+
|
|
67
|
+
Attributes:
|
|
68
|
+
UNSPECIFIED: не определён
|
|
69
|
+
ERROR: критичная ошибка, товар нельзя продавать
|
|
70
|
+
WARNING: некритичная ошибка, товар можно продавать
|
|
71
|
+
INTERNAL: критичная ошибка, товар нельзя продавать
|
|
72
|
+
"""
|
|
73
|
+
UNSPECIFIED = "ERROR_LEVEL_UNSPECIFIED"
|
|
74
|
+
ERROR = "ERROR_LEVEL_ERROR"
|
|
75
|
+
WARNING = "ERROR_LEVEL_WARNING"
|
|
76
|
+
INTERNAL = "ERROR_LEVEL_INTERNAL"
|
|
77
|
+
|
|
78
|
+
class ProductHandlingStatus(str, Enum):
|
|
79
|
+
"""Статус создания или обновления товара.
|
|
80
|
+
|
|
81
|
+
Attributes:
|
|
82
|
+
PENDING: товар в очереди на обработку
|
|
83
|
+
IMPORTED: товар успешно загружен
|
|
84
|
+
FAILED: товар загружен с ошибками
|
|
85
|
+
SKIPPED: товар не был обновлен, так как запрос не содержал изменений
|
|
86
|
+
"""
|
|
87
|
+
PENDING = "pending"
|
|
88
|
+
IMPORTED = "imported"
|
|
89
|
+
FAILED = "failed"
|
|
90
|
+
SKIPPED = "skipped"
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class PromotionOperation(str, Enum):
|
|
94
|
+
"""Действия с акцией.
|
|
95
|
+
|
|
96
|
+
Attributes:
|
|
97
|
+
ENABLE: включить
|
|
98
|
+
DISABLE: выключить
|
|
99
|
+
UNKNOWN: ничего не менять
|
|
100
|
+
"""
|
|
101
|
+
ENABLE = "ENABLE"
|
|
102
|
+
DISABLE = "DISABLE"
|
|
103
|
+
UNKNOWN = "UNKNOWN"
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class PromotionType(str, Enum):
|
|
107
|
+
"""Типы акций.
|
|
108
|
+
|
|
109
|
+
Attributes:
|
|
110
|
+
REVIEWS_PROMO: баллы за отзывы
|
|
111
|
+
"""
|
|
112
|
+
REVIEWS_PROMO = "REVIEWS_PROMO"
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class ServiceType(str, Enum):
|
|
116
|
+
"""Типы сервиса (описание отсутствует в документации).
|
|
117
|
+
|
|
118
|
+
Attributes:
|
|
119
|
+
IS_CODE_SERVICE: сервис с кодом
|
|
120
|
+
IS_NO_CODE_SERVICE: сервис без кода
|
|
121
|
+
"""
|
|
122
|
+
IS_CODE_SERVICE = "IS_CODE_SERVICE"
|
|
123
|
+
IS_NO_CODE_SERVICE = "IS_NO_CODE_SERVICE"
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class ShipmentType(str, Enum):
|
|
127
|
+
"""Типы упаковки.
|
|
128
|
+
|
|
129
|
+
Attributes:
|
|
130
|
+
UNSPECIFIED: не указано
|
|
131
|
+
GENERAL: обычный товар
|
|
132
|
+
BOX: коробка
|
|
133
|
+
PALLET: палета
|
|
134
|
+
"""
|
|
135
|
+
UNSPECIFIED = "SHIPMENT_TYPE_UNSPECIFIED"
|
|
136
|
+
GENERAL = "SHIPMENT_TYPE_GENERAL"
|
|
137
|
+
BOX = "SHIPMENT_TYPE_BOX"
|
|
138
|
+
PALLET = "SHIPMENT_TYPE_PALLET"
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class VAT(str, Enum):
|
|
142
|
+
"""Ставка НДС для товара.
|
|
143
|
+
|
|
144
|
+
Attributes:
|
|
145
|
+
PERCENT_0: НДС не облагается
|
|
146
|
+
PERCENT_5: НДС 5%
|
|
147
|
+
PERCENT_7: НДС 7%
|
|
148
|
+
PERCENT_10: НДС 10%
|
|
149
|
+
PERCENT_20: НДС 20%
|
|
150
|
+
PERCENT_22: НДС 22%
|
|
151
|
+
"""
|
|
152
|
+
PERCENT_0 = "0"
|
|
153
|
+
PERCENT_5 = "0.05"
|
|
154
|
+
PERCENT_7 = "0.07"
|
|
155
|
+
PERCENT_10 = "0.10"
|
|
156
|
+
PERCENT_20 = "0.20"
|
|
157
|
+
PERCENT_22 = "0.22"
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
class Visibility(str, Enum):
|
|
161
|
+
"""Фильтр по видимости товара.
|
|
162
|
+
|
|
163
|
+
Attributes:
|
|
164
|
+
ALL: все товары
|
|
165
|
+
VISIBLE: товары, которые видны покупателям
|
|
166
|
+
INVISIBLE: товары, которые не видны покупателям
|
|
167
|
+
EMPTY_STOCK: товары, у которых не указано наличие
|
|
168
|
+
NOT_MODERATED: товары, которые не прошли модерацию
|
|
169
|
+
MODERATED: товары, которые прошли модерацию
|
|
170
|
+
DISABLED: товары, которые видны покупателям, но недоступны к покупке
|
|
171
|
+
STATE_FAILED: товары, создание которых завершилось ошибкой
|
|
172
|
+
READY_TO_SUPPLY: товары, готовые к поставке
|
|
173
|
+
VALIDATION_STATE_PENDING: товары, которые проходят проверку валидатором на премодерации
|
|
174
|
+
VALIDATION_STATE_FAIL: товары, которые не прошли проверку валидатором на премодерации
|
|
175
|
+
VALIDATION_STATE_SUCCESS: товары, которые прошли проверку валидатором на премодерации
|
|
176
|
+
TO_SUPPLY: товары, готовые к продаже
|
|
177
|
+
IN_SALE: товары в продаже
|
|
178
|
+
REMOVED_FROM_SALE: товары, скрытые от покупателей
|
|
179
|
+
BANNED: заблокированные товары
|
|
180
|
+
OVERPRICED: товары с завышенной ценой
|
|
181
|
+
CRITICALLY_OVERPRICED: товары со слишком завышенной ценой
|
|
182
|
+
EMPTY_BARCODE: товары без штрихкода
|
|
183
|
+
BARCODE_EXISTS: товары со штрихкодом
|
|
184
|
+
QUARANTINE: товары на карантине после изменения цены более чем на 50 %
|
|
185
|
+
ARCHIVED: товары в архиве
|
|
186
|
+
OVERPRICED_WITH_STOCK: товары в продаже со стоимостью выше, чем у конкурентов
|
|
187
|
+
PARTIAL_APPROVED: товары в продаже с пустым или неполным описанием
|
|
188
|
+
"""
|
|
189
|
+
ALL = "ALL"
|
|
190
|
+
VISIBLE = "VISIBLE"
|
|
191
|
+
INVISIBLE = "INVISIBLE"
|
|
192
|
+
EMPTY_STOCK = "EMPTY_STOCK"
|
|
193
|
+
NOT_MODERATED = "NOT_MODERATED"
|
|
194
|
+
MODERATED = "MODERATED"
|
|
195
|
+
DISABLED = "DISABLED"
|
|
196
|
+
STATE_FAILED = "STATE_FAILED"
|
|
197
|
+
READY_TO_SUPPLY = "READY_TO_SUPPLY"
|
|
198
|
+
VALIDATION_STATE_PENDING = "VALIDATION_STATE_PENDING"
|
|
199
|
+
VALIDATION_STATE_FAIL = "VALIDATION_STATE_FAIL"
|
|
200
|
+
VALIDATION_STATE_SUCCESS = "VALIDATION_STATE_SUCCESS"
|
|
201
|
+
TO_SUPPLY = "TO_SUPPLY"
|
|
202
|
+
IN_SALE = "IN_SALE"
|
|
203
|
+
REMOVED_FROM_SALE = "REMOVED_FROM_SALE"
|
|
204
|
+
BANNED = "BANNED"
|
|
205
|
+
OVERPRICED = "OVERPRICED"
|
|
206
|
+
CRITICALLY_OVERPRICED = "CRITICALLY_OVERPRICED"
|
|
207
|
+
EMPTY_BARCODE = "EMPTY_BARCODE"
|
|
208
|
+
BARCODE_EXISTS = "BARCODE_EXISTS"
|
|
209
|
+
QUARANTINE = "QUARANTINE"
|
|
210
|
+
ARCHIVED = "ARCHIVED"
|
|
211
|
+
OVERPRICED_WITH_STOCK = "OVERPRICED_WITH_STOCK"
|
|
212
|
+
PARTIAL_APPROVED = "PARTIAL_APPROVED"
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
class WeightUnit(str, Enum):
|
|
216
|
+
"""Единицы измерения веса.
|
|
217
|
+
|
|
218
|
+
Attributes:
|
|
219
|
+
GRAMS: граммы
|
|
220
|
+
KILOGRAMS: килограммы
|
|
221
|
+
POUNDS: фунты
|
|
222
|
+
"""
|
|
223
|
+
GRAMS = "g"
|
|
224
|
+
KILOGRAMS = "kg"
|
|
225
|
+
POUNDS = "lb"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ProductsSortingBy(str, Enum):
|
|
5
|
+
"""Поле сортировки.
|
|
6
|
+
|
|
7
|
+
Attributes:
|
|
8
|
+
SKU: По SKU
|
|
9
|
+
OFFER_ID: По артикулу
|
|
10
|
+
ID: По ID
|
|
11
|
+
TITLE: По названию
|
|
12
|
+
"""
|
|
13
|
+
SKU = "sku"
|
|
14
|
+
OFFER_ID = "offer_id"
|
|
15
|
+
ID = "id"
|
|
16
|
+
TITLE = "title"
|
|
17
|
+
|
|
18
|
+
class SortingDirection(str, Enum):
|
|
19
|
+
"""Направление сортировки.
|
|
20
|
+
|
|
21
|
+
Attributes:
|
|
22
|
+
ASC: По возрастанию
|
|
23
|
+
DESC: По убыванию
|
|
24
|
+
"""
|
|
25
|
+
ASC = "asc"
|
|
26
|
+
DESC = "desc"
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class FirstMileType(str, Enum):
|
|
5
|
+
"""Тип первой мили.
|
|
6
|
+
|
|
7
|
+
Attributes:
|
|
8
|
+
DROPOFF: Выдача
|
|
9
|
+
PICKUP: Забор
|
|
10
|
+
UNSPECIFIED: Не указано
|
|
11
|
+
"""
|
|
12
|
+
DROPOFF = "DropOff"
|
|
13
|
+
PICKUP = "Pickup"
|
|
14
|
+
UNSPECIFIED = ""
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class WarehouseStatus(str, Enum):
|
|
18
|
+
"""Соответствие статусов склада со статусами в личном кабинете.
|
|
19
|
+
|
|
20
|
+
Attributes:
|
|
21
|
+
NEW: Новый
|
|
22
|
+
CREATED: Создан
|
|
23
|
+
DISABLED: Отключен
|
|
24
|
+
BLOCKED: Заблокирован
|
|
25
|
+
DISABLED_DUE_TO_LIMIT: Отключен из-за лимита
|
|
26
|
+
ERROR: Ошибка
|
|
27
|
+
"""
|
|
28
|
+
NEW = "new"
|
|
29
|
+
CREATED = "created"
|
|
30
|
+
DISABLED = "disabled"
|
|
31
|
+
BLOCKED = "blocked"
|
|
32
|
+
DISABLED_DUE_TO_LIMIT = "disabled_due_to_limit"
|
|
33
|
+
ERROR = "error"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class WarehouseWorkingDays(int, Enum):
|
|
37
|
+
"""Рабочие дни склада.
|
|
38
|
+
|
|
39
|
+
Attributes:
|
|
40
|
+
MONDAY: Понедельник
|
|
41
|
+
TUESDAY: Вторник
|
|
42
|
+
WEDNESDAY: Среда
|
|
43
|
+
THURSDAY: Четверг
|
|
44
|
+
FRIDAY: Пятница
|
|
45
|
+
SATURDAY: Суббота
|
|
46
|
+
SUNDAY: Воскресенье
|
|
47
|
+
"""
|
|
48
|
+
MONDAY = 1
|
|
49
|
+
TUESDAY = 2
|
|
50
|
+
WEDNESDAY = 3
|
|
51
|
+
THURSDAY = 4
|
|
52
|
+
FRIDAY = 5
|
|
53
|
+
SATURDAY = 6
|
|
54
|
+
SUNDAY = 7
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
__all__ = [
|
|
2
|
+
"APIManager",
|
|
3
|
+
"method_rate_limit",
|
|
4
|
+
"SessionManager",
|
|
5
|
+
"RateLimiterManager",
|
|
6
|
+
"MethodRateLimiterManager",
|
|
7
|
+
"APIConfig",
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
from .config import APIConfig
|
|
11
|
+
from .core import APIManager
|
|
12
|
+
from .rate_limiter import RateLimiterManager
|
|
13
|
+
from .sessions import SessionManager
|
|
14
|
+
from .method_rate_limiter import method_rate_limit, MethodRateLimiterManager
|