wildberries-sdk 0.1.8__py3-none-any.whl → 0.1.10__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.
Files changed (89) hide show
  1. wildberries_sdk/analytics/__init__.py +3 -1
  2. wildberries_sdk/analytics/api_client.py +1 -1
  3. wildberries_sdk/analytics/configuration.py +1 -1
  4. wildberries_sdk/analytics/models/__init__.py +1 -0
  5. wildberries_sdk/analytics/models/main_request.py +3 -3
  6. wildberries_sdk/analytics/models/nm_report_get_reports_response_data_inner.py +2 -2
  7. wildberries_sdk/analytics/models/order_by.py +1 -1
  8. wildberries_sdk/analytics/models/order_by_main_and_details.py +103 -0
  9. wildberries_sdk/analytics/models/table_details_request.py +3 -3
  10. wildberries_sdk/analytics/models/table_group_field.py +1 -1
  11. wildberries_sdk/communications/__init__.py +5 -1
  12. wildberries_sdk/communications/api/api.py +8 -1
  13. wildberries_sdk/communications/api_client.py +1 -1
  14. wildberries_sdk/communications/configuration.py +1 -1
  15. wildberries_sdk/communications/models/__init__.py +2 -0
  16. wildberries_sdk/communications/models/api_v1_claims_get200_response_claims_inner.py +1 -1
  17. wildberries_sdk/communications/models/api_v1_seller_download_id_get202_response.py +89 -0
  18. wildberries_sdk/communications/models/api_v1_seller_download_id_get451_response.py +95 -0
  19. wildberries_sdk/finances/__init__.py +1 -1
  20. wildberries_sdk/finances/api_client.py +1 -1
  21. wildberries_sdk/finances/configuration.py +1 -1
  22. wildberries_sdk/finances/models/detail_report_item.py +9 -5
  23. wildberries_sdk/general/__init__.py +1 -1
  24. wildberries_sdk/general/api_client.py +1 -1
  25. wildberries_sdk/general/configuration.py +1 -1
  26. wildberries_sdk/in_store_pickup/__init__.py +1 -1
  27. wildberries_sdk/in_store_pickup/api_client.py +1 -1
  28. wildberries_sdk/in_store_pickup/configuration.py +1 -1
  29. wildberries_sdk/in_store_pickup/models/api_new_order.py +2 -2
  30. wildberries_sdk/in_store_pickup/models/api_order.py +2 -2
  31. wildberries_sdk/orders_dbs/__init__.py +1 -1
  32. wildberries_sdk/orders_dbs/api_client.py +1 -1
  33. wildberries_sdk/orders_dbs/configuration.py +1 -1
  34. wildberries_sdk/orders_dbs/models/order_dbs.py +2 -2
  35. wildberries_sdk/orders_dbs/models/order_new_dbs.py +2 -2
  36. wildberries_sdk/orders_dbw/__init__.py +1 -1
  37. wildberries_sdk/orders_dbw/api_client.py +1 -1
  38. wildberries_sdk/orders_dbw/configuration.py +1 -1
  39. wildberries_sdk/orders_fbs/__init__.py +1 -3
  40. wildberries_sdk/orders_fbs/api/fbs_api.py +21 -21
  41. wildberries_sdk/orders_fbs/api_client.py +1 -1
  42. wildberries_sdk/orders_fbs/configuration.py +1 -1
  43. wildberries_sdk/orders_fbs/models/__init__.py +0 -1
  44. wildberries_sdk/orders_fbs/models/api_v3_orders_stickers_cross_border_post200_response_stickers_inner.py +1 -1
  45. wildberries_sdk/orders_fbs/models/order_new.py +2 -2
  46. wildberries_sdk/orders_fbw/__init__.py +1 -1
  47. wildberries_sdk/orders_fbw/api/api.py +3 -3
  48. wildberries_sdk/orders_fbw/api_client.py +1 -1
  49. wildberries_sdk/orders_fbw/configuration.py +1 -1
  50. wildberries_sdk/products/__init__.py +3 -1
  51. wildberries_sdk/products/api_client.py +1 -1
  52. wildberries_sdk/products/configuration.py +1 -1
  53. wildberries_sdk/products/models/__init__.py +1 -0
  54. wildberries_sdk/products/models/content_v2_cards_update_post_request_inner.py +1 -1
  55. wildberries_sdk/products/models/content_v2_cards_upload_add_post_request_cards_to_add_inner.py +4 -4
  56. wildberries_sdk/products/models/content_v2_cards_upload_add_post_request_cards_to_add_inner_sizes_inner.py +93 -0
  57. wildberries_sdk/products/models/content_v2_cards_upload_post_request_inner_variants_inner.py +1 -1
  58. wildberries_sdk/products/models/content_v2_cards_upload_post_request_inner_variants_inner_sizes_inner.py +1 -1
  59. wildberries_sdk/promotion/__init__.py +1 -1
  60. wildberries_sdk/promotion/api_client.py +1 -1
  61. wildberries_sdk/promotion/configuration.py +1 -1
  62. wildberries_sdk/promotion/models/adv_v1_advert_get200_response_items_inner.py +1 -1
  63. wildberries_sdk/reports/__init__.py +13 -1
  64. wildberries_sdk/reports/api_client.py +1 -1
  65. wildberries_sdk/reports/configuration.py +1 -1
  66. wildberries_sdk/reports/models/__init__.py +6 -0
  67. wildberries_sdk/reports/models/incomes_item.py +4 -5
  68. wildberries_sdk/reports/models/measurement_penalties.py +91 -0
  69. wildberries_sdk/reports/models/measurement_penalties_data.py +97 -0
  70. wildberries_sdk/reports/models/measurement_penalties_data_reports_inner.py +122 -0
  71. wildberries_sdk/reports/models/orders_item.py +3 -4
  72. wildberries_sdk/reports/models/sales_item.py +2 -3
  73. wildberries_sdk/reports/models/stocks_item.py +2 -3
  74. wildberries_sdk/{orders_fbs/models/api_v3_orders_order_id_meta_get200_response.py → reports/models/whm.py} +15 -15
  75. wildberries_sdk/reports/models/whm_data.py +97 -0
  76. wildberries_sdk/reports/models/whm_data_reports_inner.py +104 -0
  77. wildberries_sdk/tariffs/__init__.py +1 -1
  78. wildberries_sdk/tariffs/api_client.py +1 -1
  79. wildberries_sdk/tariffs/configuration.py +1 -1
  80. wildberries_sdk/tariffs/models/commission_uzbekistan_report_inner.py +7 -3
  81. wildberries_sdk/wbd/__init__.py +1 -1
  82. wildberries_sdk/wbd/api/default_api.py +3 -3
  83. wildberries_sdk/wbd/api_client.py +1 -1
  84. wildberries_sdk/wbd/configuration.py +1 -1
  85. {wildberries_sdk-0.1.8.dist-info → wildberries_sdk-0.1.10.dist-info}/METADATA +1 -1
  86. {wildberries_sdk-0.1.8.dist-info → wildberries_sdk-0.1.10.dist-info}/RECORD +89 -80
  87. {wildberries_sdk-0.1.8.dist-info → wildberries_sdk-0.1.10.dist-info}/LICENSE +0 -0
  88. {wildberries_sdk-0.1.8.dist-info → wildberries_sdk-0.1.10.dist-info}/WHEEL +0 -0
  89. {wildberries_sdk-0.1.8.dist-info → wildberries_sdk-0.1.10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,97 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Отчёты
5
+
6
+ <div class=\"description_important\"> Узнать больше об отчётах можно в <a href=\"https://seller.wildberries.ru/instructions/subcategory/5f2162c5-069b-416d-a4e1-48da2a76e6b0\">справочном центре</a> </div> С помощью этих методов вы можете получить [основные отчёты](/openapi/reports#tag/Osnovnye-otchyoty) и отчёты о: 1. [Остатках на складах](/openapi/reports#tag/Otchyot-ob-ostatkah-na-skladah) 2. [Товарах с обязательной маркировкой](/openapi/reports#tag/Otchyot-o-tovarah-c-obyazatelnoj-markirovkoj) 3. [Удержаниях](/openapi/reports#tag/Otchyoty-ob-uderzhaniyah) 4. [Платной приёмке](/openapi/reports#tag/Platnaya-priyomka) 5. [Платном хранении](/openapi/reports#tag/Platnoe-hranenie) 6. [Продажах по регионам](/openapi/reports#tag/Prodazhi-po-regionam) 7. [Доле бренда в продажах](/openapi/reports#tag/Dolya-brenda-v-prodazhah) 8. [Скрытых товарах](/openapi/reports#tag/Skrytye-tovary) 9. [Возвратах и перемещении товаров](/openapi/reports#tag/Otchyot-o-vozvratah-i-peremeshenii-tovarov)
7
+
8
+ The version of the OpenAPI document: reports
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt
21
+ from typing import Any, ClassVar, Dict, List
22
+ from wildberries_sdk.reports.models.measurement_penalties_data_reports_inner import MeasurementPenaltiesDataReportsInner
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class MeasurementPenaltiesData(BaseModel):
27
+ """
28
+ Данные ответа
29
+ """ # noqa: E501
30
+ reports: List[MeasurementPenaltiesDataReportsInner] = Field(description="Удержания")
31
+ total: StrictInt = Field(description="Количество удержаний в отчёте. Без учёта `limit` и `offset`")
32
+ __properties: ClassVar[List[str]] = ["reports", "total"]
33
+
34
+ model_config = ConfigDict(
35
+ populate_by_name=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of MeasurementPenaltiesData from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ # override the default output from pydantic by calling `to_dict()` of each item in reports (list)
74
+ _items = []
75
+ if self.reports:
76
+ for _item_reports in self.reports:
77
+ if _item_reports:
78
+ _items.append(_item_reports.to_dict())
79
+ _dict['reports'] = _items
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of MeasurementPenaltiesData from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return cls.model_validate(obj)
90
+
91
+ _obj = cls.model_validate({
92
+ "reports": [MeasurementPenaltiesDataReportsInner.from_dict(_item) for _item in obj["reports"]] if obj.get("reports") is not None else None,
93
+ "total": obj.get("total")
94
+ })
95
+ return _obj
96
+
97
+
@@ -0,0 +1,122 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Отчёты
5
+
6
+ <div class=\"description_important\"> Узнать больше об отчётах можно в <a href=\"https://seller.wildberries.ru/instructions/subcategory/5f2162c5-069b-416d-a4e1-48da2a76e6b0\">справочном центре</a> </div> С помощью этих методов вы можете получить [основные отчёты](/openapi/reports#tag/Osnovnye-otchyoty) и отчёты о: 1. [Остатках на складах](/openapi/reports#tag/Otchyot-ob-ostatkah-na-skladah) 2. [Товарах с обязательной маркировкой](/openapi/reports#tag/Otchyot-o-tovarah-c-obyazatelnoj-markirovkoj) 3. [Удержаниях](/openapi/reports#tag/Otchyoty-ob-uderzhaniyah) 4. [Платной приёмке](/openapi/reports#tag/Platnaya-priyomka) 5. [Платном хранении](/openapi/reports#tag/Platnoe-hranenie) 6. [Продажах по регионам](/openapi/reports#tag/Prodazhi-po-regionam) 7. [Доле бренда в продажах](/openapi/reports#tag/Dolya-brenda-v-prodazhah) 8. [Скрытых товарах](/openapi/reports#tag/Skrytye-tovary) 9. [Возвратах и перемещении товаров](/openapi/reports#tag/Otchyot-o-vozvratah-i-peremeshenii-tovarov)
7
+
8
+ The version of the OpenAPI document: reports
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class MeasurementPenaltiesDataReportsInner(BaseModel):
27
+ """
28
+ MeasurementPenaltiesDataReportsInner
29
+ """ # noqa: E501
30
+ nm_id: Optional[StrictInt] = Field(default=None, description="Артикул WB", alias="nmId")
31
+ subject_name: Optional[StrictStr] = Field(default=None, description="Предмет", alias="subjectName")
32
+ dim_id: Optional[StrictInt] = Field(default=None, description="ID замера", alias="dimId")
33
+ prc_over: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Разница в габаритах, %", alias="prcOver")
34
+ volume: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Объём, л (фактические габариты по замеру на складе)")
35
+ width: Optional[StrictInt] = Field(default=None, description="Ширина, см (фактические габариты по замеру на складе)")
36
+ length: Optional[StrictInt] = Field(default=None, description="Длина, см (фактические габариты по замеру на складе)")
37
+ height: Optional[StrictInt] = Field(default=None, description="Высота, см (фактические габариты по замеру на складе)")
38
+ volume_sup: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Объём, л (габариты карточки товара)", alias="volumeSup")
39
+ width_sup: Optional[StrictInt] = Field(default=None, description="Ширина, см (габариты карточки товара)", alias="widthSup")
40
+ length_sup: Optional[StrictInt] = Field(default=None, description="Длина, см (габариты карточки товара)", alias="lengthSup")
41
+ height_sup: Optional[StrictInt] = Field(default=None, description="Высота, см (габариты карточки товара)", alias="heightSup")
42
+ photo_urls: Optional[List[StrictStr]] = Field(default=None, description="Фото замеров", alias="photoUrls")
43
+ dt_bonus: Optional[datetime] = Field(default=None, description="Дата штрафа", alias="dtBonus")
44
+ is_valid: Optional[StrictBool] = Field(default=None, description="Статус обмера: - `false` — отменён - `true` — подтверждён ", alias="isValid")
45
+ is_valid_dt: Optional[datetime] = Field(default=None, description="Дата и время подтверждения или отмены обмера", alias="isValidDt")
46
+ reversal_amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Сумма сторно", alias="reversalAmount")
47
+ penalty_amount: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Сумма штрафа", alias="penaltyAmount")
48
+ __properties: ClassVar[List[str]] = ["nmId", "subjectName", "dimId", "prcOver", "volume", "width", "length", "height", "volumeSup", "widthSup", "lengthSup", "heightSup", "photoUrls", "dtBonus", "isValid", "isValidDt", "reversalAmount", "penaltyAmount"]
49
+
50
+ model_config = ConfigDict(
51
+ populate_by_name=True,
52
+ validate_assignment=True,
53
+ protected_namespaces=(),
54
+ )
55
+
56
+
57
+ def to_str(self) -> str:
58
+ """Returns the string representation of the model using alias"""
59
+ return pprint.pformat(self.model_dump(by_alias=True))
60
+
61
+ def to_json(self) -> str:
62
+ """Returns the JSON representation of the model using alias"""
63
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
64
+ return json.dumps(self.to_dict())
65
+
66
+ @classmethod
67
+ def from_json(cls, json_str: str) -> Optional[Self]:
68
+ """Create an instance of MeasurementPenaltiesDataReportsInner from a JSON string"""
69
+ return cls.from_dict(json.loads(json_str))
70
+
71
+ def to_dict(self) -> Dict[str, Any]:
72
+ """Return the dictionary representation of the model using alias.
73
+
74
+ This has the following differences from calling pydantic's
75
+ `self.model_dump(by_alias=True)`:
76
+
77
+ * `None` is only added to the output dict for nullable fields that
78
+ were set at model initialization. Other fields with value `None`
79
+ are ignored.
80
+ """
81
+ excluded_fields: Set[str] = set([
82
+ ])
83
+
84
+ _dict = self.model_dump(
85
+ by_alias=True,
86
+ exclude=excluded_fields,
87
+ exclude_none=True,
88
+ )
89
+ return _dict
90
+
91
+ @classmethod
92
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
93
+ """Create an instance of MeasurementPenaltiesDataReportsInner from a dict"""
94
+ if obj is None:
95
+ return None
96
+
97
+ if not isinstance(obj, dict):
98
+ return cls.model_validate(obj)
99
+
100
+ _obj = cls.model_validate({
101
+ "nmId": obj.get("nmId"),
102
+ "subjectName": obj.get("subjectName"),
103
+ "dimId": obj.get("dimId"),
104
+ "prcOver": obj.get("prcOver"),
105
+ "volume": obj.get("volume"),
106
+ "width": obj.get("width"),
107
+ "length": obj.get("length"),
108
+ "height": obj.get("height"),
109
+ "volumeSup": obj.get("volumeSup"),
110
+ "widthSup": obj.get("widthSup"),
111
+ "lengthSup": obj.get("lengthSup"),
112
+ "heightSup": obj.get("heightSup"),
113
+ "photoUrls": obj.get("photoUrls"),
114
+ "dtBonus": obj.get("dtBonus"),
115
+ "isValid": obj.get("isValid"),
116
+ "isValidDt": obj.get("isValidDt"),
117
+ "reversalAmount": obj.get("reversalAmount"),
118
+ "penaltyAmount": obj.get("penaltyAmount")
119
+ })
120
+ return _obj
121
+
122
+
@@ -17,7 +17,6 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from datetime import datetime
21
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
22
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
23
22
  from typing_extensions import Annotated
@@ -28,8 +27,8 @@ class OrdersItem(BaseModel):
28
27
  """
29
28
  OrdersItem
30
29
  """ # noqa: E501
31
- var_date: Optional[datetime] = Field(default=None, description="Дата и время заказа. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="date")
32
- last_change_date: Optional[datetime] = Field(default=None, description="Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="lastChangeDate")
30
+ var_date: Optional[StrictStr] = Field(default=None, description="Дата и время заказа. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="date")
31
+ last_change_date: Optional[StrictStr] = Field(default=None, description="Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="lastChangeDate")
33
32
  warehouse_name: Optional[Annotated[str, Field(strict=True, max_length=50)]] = Field(default=None, description="Склад отгрузки", alias="warehouseName")
34
33
  warehouse_type: Optional[StrictStr] = Field(default=None, description="Тип склада хранения товаров", alias="warehouseType")
35
34
  country_name: Optional[Annotated[str, Field(strict=True, max_length=200)]] = Field(default=None, description="Страна", alias="countryName")
@@ -51,7 +50,7 @@ class OrdersItem(BaseModel):
51
50
  finished_price: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Цена с учетом всех скидок, кроме суммы по WB Кошельку", alias="finishedPrice")
52
51
  price_with_disc: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Цена со скидкой продавца (= `totalPrice` * (1 - `discountPercent`/100))", alias="priceWithDisc")
53
52
  is_cancel: Optional[StrictBool] = Field(default=None, description="Отмена заказа: - `true` — заказ отменен ", alias="isCancel")
54
- cancel_date: Optional[datetime] = Field(default=None, description="Дата и время отмены заказа. Если заказ не был отменен, то \"0001-01-01T00:00:00\".Если часовой пояс не указан, то берётся Московское время UTC+3.", alias="cancelDate")
53
+ cancel_date: Optional[StrictStr] = Field(default=None, description="Дата и время отмены заказа. Если заказ не был отменен, то \"0001-01-01T00:00:00\".Если часовой пояс не указан, то берётся Московское время UTC+3.", alias="cancelDate")
55
54
  sticker: Optional[StrictStr] = Field(default=None, description="ID стикера")
56
55
  g_number: Optional[Annotated[str, Field(strict=True, max_length=50)]] = Field(default=None, description="ID корзины покупателя. Заказы одной транзакции будут иметь одинаковый `gNumber`", alias="gNumber")
57
56
  srid: Optional[StrictStr] = Field(default=None, description="Уникальный ID заказа.<br> Примечание для использующих API Маркетплейс: `srid` равен `rid` в ответах методов сборочных заданий. ")
@@ -17,7 +17,6 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from datetime import datetime
21
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
22
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
23
22
  from typing_extensions import Annotated
@@ -28,8 +27,8 @@ class SalesItem(BaseModel):
28
27
  """
29
28
  SalesItem
30
29
  """ # noqa: E501
31
- var_date: Optional[datetime] = Field(default=None, description="Дата и время продажи. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="date")
32
- last_change_date: Optional[datetime] = Field(default=None, description="Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="lastChangeDate")
30
+ var_date: Optional[StrictStr] = Field(default=None, description="Дата и время продажи. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=1. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="date")
31
+ last_change_date: Optional[StrictStr] = Field(default=None, description="Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе, если параметр `flag`=0 или не указан. Если часовой пояс не указан, то берётся Московское время (UTC+3).", alias="lastChangeDate")
33
32
  warehouse_name: Optional[Annotated[str, Field(strict=True, max_length=50)]] = Field(default=None, description="Склад отгрузки", alias="warehouseName")
34
33
  warehouse_type: Optional[StrictStr] = Field(default=None, description="Тип склада хранения товаров", alias="warehouseType")
35
34
  country_name: Optional[Annotated[str, Field(strict=True, max_length=200)]] = Field(default=None, description="Страна", alias="countryName")
@@ -17,8 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from datetime import datetime
21
- from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
22
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
23
22
  from typing_extensions import Annotated
24
23
  from typing import Optional, Set
@@ -28,7 +27,7 @@ class StocksItem(BaseModel):
28
27
  """
29
28
  StocksItem
30
29
  """ # noqa: E501
31
- last_change_date: Optional[datetime] = Field(default=None, description="Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе. Если часовой пояс не указан, то берётся Московское время (UTC+3)", alias="lastChangeDate")
30
+ last_change_date: Optional[StrictStr] = Field(default=None, description="Дата и время обновления информации в сервисе. Это поле соответствует параметру `dateFrom` в запросе. Если часовой пояс не указан, то берётся Московское время (UTC+3)", alias="lastChangeDate")
32
31
  warehouse_name: Optional[Annotated[str, Field(strict=True, max_length=50)]] = Field(default=None, description="Название склада", alias="warehouseName")
33
32
  supplier_article: Optional[Annotated[str, Field(strict=True, max_length=75)]] = Field(default=None, description="Артикул продавца", alias="supplierArticle")
34
33
  nm_id: Optional[StrictInt] = Field(default=None, description="Артикул WB", alias="nmId")
@@ -1,11 +1,11 @@
1
1
  # coding: utf-8
2
2
 
3
3
  """
4
- Заказы FBS
4
+ Отчёты
5
5
 
6
- <div class=\"description_important\"> <b>Методы для работы со сборочными заданиями модели DBW (Доставка курьером WB) теперь на <a href=\"https://dev.wildberries.ru/release-notes?id=312\">отдельном контуре</a>.</b> </div> В разделе заказов FBS (Fulfillment by Seller) вам доступны методы: 1. Управления [сборочными заданиями](/openapi/orders-fbs#tag/Sborochnye-zadaniya): информация о сборочных заданиях, метаданные, стикеры и так далее. 2. Управления [поставками заказов](/openapi/orders-fbs#tag/Postavki-FBS) продавца на склады WB. 3. Заказа [пропусков](/openapi/orders-fbs#tag/Propuska-FBS) на склады WB. <br> <div class=\"description_important\"> Узнать больше о заказах FBS можно в <a href=\"https://seller.wildberries.ru/instructions/ru/ru/category/b3e60238-fd4c-49ce-8668-ff688725a12d\">справочном центре</a> </div>
6
+ <div class=\"description_important\"> Узнать больше об отчётах можно в <a href=\"https://seller.wildberries.ru/instructions/subcategory/5f2162c5-069b-416d-a4e1-48da2a76e6b0\">справочном центре</a> </div> С помощью этих методов вы можете получить [основные отчёты](/openapi/reports#tag/Osnovnye-otchyoty) и отчёты о: 1. [Остатках на складах](/openapi/reports#tag/Otchyot-ob-ostatkah-na-skladah) 2. [Товарах с обязательной маркировкой](/openapi/reports#tag/Otchyot-o-tovarah-c-obyazatelnoj-markirovkoj) 3. [Удержаниях](/openapi/reports#tag/Otchyoty-ob-uderzhaniyah) 4. [Платной приёмке](/openapi/reports#tag/Platnaya-priyomka) 5. [Платном хранении](/openapi/reports#tag/Platnoe-hranenie) 6. [Продажах по регионам](/openapi/reports#tag/Prodazhi-po-regionam) 7. [Доле бренда в продажах](/openapi/reports#tag/Dolya-brenda-v-prodazhah) 8. [Скрытых товарах](/openapi/reports#tag/Skrytye-tovary) 9. [Возвратах и перемещении товаров](/openapi/reports#tag/Otchyot-o-vozvratah-i-peremeshenii-tovarov)
7
7
 
8
- The version of the OpenAPI document: order
8
+ The version of the OpenAPI document: reports
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -18,17 +18,17 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict
21
- from typing import Any, ClassVar, Dict, List, Optional
22
- from wildberries_sdk.orders_fbs.models.meta import Meta
21
+ from typing import Any, ClassVar, Dict, List
22
+ from wildberries_sdk.reports.models.whm_data import WHMData
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
25
25
 
26
- class ApiV3OrdersOrderIdMetaGet200Response(BaseModel):
26
+ class WHM(BaseModel):
27
27
  """
28
- ApiV3OrdersOrderIdMetaGet200Response
28
+ WHM
29
29
  """ # noqa: E501
30
- meta: Optional[Meta] = None
31
- __properties: ClassVar[List[str]] = ["meta"]
30
+ data: WHMData
31
+ __properties: ClassVar[List[str]] = ["data"]
32
32
 
33
33
  model_config = ConfigDict(
34
34
  populate_by_name=True,
@@ -48,7 +48,7 @@ class ApiV3OrdersOrderIdMetaGet200Response(BaseModel):
48
48
 
49
49
  @classmethod
50
50
  def from_json(cls, json_str: str) -> Optional[Self]:
51
- """Create an instance of ApiV3OrdersOrderIdMetaGet200Response from a JSON string"""
51
+ """Create an instance of WHM from a JSON string"""
52
52
  return cls.from_dict(json.loads(json_str))
53
53
 
54
54
  def to_dict(self) -> Dict[str, Any]:
@@ -69,14 +69,14 @@ class ApiV3OrdersOrderIdMetaGet200Response(BaseModel):
69
69
  exclude=excluded_fields,
70
70
  exclude_none=True,
71
71
  )
72
- # override the default output from pydantic by calling `to_dict()` of meta
73
- if self.meta:
74
- _dict['meta'] = self.meta.to_dict()
72
+ # override the default output from pydantic by calling `to_dict()` of data
73
+ if self.data:
74
+ _dict['data'] = self.data.to_dict()
75
75
  return _dict
76
76
 
77
77
  @classmethod
78
78
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
79
- """Create an instance of ApiV3OrdersOrderIdMetaGet200Response from a dict"""
79
+ """Create an instance of WHM from a dict"""
80
80
  if obj is None:
81
81
  return None
82
82
 
@@ -84,7 +84,7 @@ class ApiV3OrdersOrderIdMetaGet200Response(BaseModel):
84
84
  return cls.model_validate(obj)
85
85
 
86
86
  _obj = cls.model_validate({
87
- "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None
87
+ "data": WHMData.from_dict(obj["data"]) if obj.get("data") is not None else None
88
88
  })
89
89
  return _obj
90
90
 
@@ -0,0 +1,97 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Отчёты
5
+
6
+ <div class=\"description_important\"> Узнать больше об отчётах можно в <a href=\"https://seller.wildberries.ru/instructions/subcategory/5f2162c5-069b-416d-a4e1-48da2a76e6b0\">справочном центре</a> </div> С помощью этих методов вы можете получить [основные отчёты](/openapi/reports#tag/Osnovnye-otchyoty) и отчёты о: 1. [Остатках на складах](/openapi/reports#tag/Otchyot-ob-ostatkah-na-skladah) 2. [Товарах с обязательной маркировкой](/openapi/reports#tag/Otchyot-o-tovarah-c-obyazatelnoj-markirovkoj) 3. [Удержаниях](/openapi/reports#tag/Otchyoty-ob-uderzhaniyah) 4. [Платной приёмке](/openapi/reports#tag/Platnaya-priyomka) 5. [Платном хранении](/openapi/reports#tag/Platnoe-hranenie) 6. [Продажах по регионам](/openapi/reports#tag/Prodazhi-po-regionam) 7. [Доле бренда в продажах](/openapi/reports#tag/Dolya-brenda-v-prodazhah) 8. [Скрытых товарах](/openapi/reports#tag/Skrytye-tovary) 9. [Возвратах и перемещении товаров](/openapi/reports#tag/Otchyot-o-vozvratah-i-peremeshenii-tovarov)
7
+
8
+ The version of the OpenAPI document: reports
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt
21
+ from typing import Any, ClassVar, Dict, List
22
+ from wildberries_sdk.reports.models.whm_data_reports_inner import WHMDataReportsInner
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class WHMData(BaseModel):
27
+ """
28
+ Данные ответа
29
+ """ # noqa: E501
30
+ reports: List[WHMDataReportsInner] = Field(description="Замеры")
31
+ total: StrictInt = Field(description="Количество замеров в отчёте. Без учёта `limit` и `offset`")
32
+ __properties: ClassVar[List[str]] = ["reports", "total"]
33
+
34
+ model_config = ConfigDict(
35
+ populate_by_name=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of WHMData from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ # override the default output from pydantic by calling `to_dict()` of each item in reports (list)
74
+ _items = []
75
+ if self.reports:
76
+ for _item_reports in self.reports:
77
+ if _item_reports:
78
+ _items.append(_item_reports.to_dict())
79
+ _dict['reports'] = _items
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of WHMData from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return cls.model_validate(obj)
90
+
91
+ _obj = cls.model_validate({
92
+ "reports": [WHMDataReportsInner.from_dict(_item) for _item in obj["reports"]] if obj.get("reports") is not None else None,
93
+ "total": obj.get("total")
94
+ })
95
+ return _obj
96
+
97
+
@@ -0,0 +1,104 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Отчёты
5
+
6
+ <div class=\"description_important\"> Узнать больше об отчётах можно в <a href=\"https://seller.wildberries.ru/instructions/subcategory/5f2162c5-069b-416d-a4e1-48da2a76e6b0\">справочном центре</a> </div> С помощью этих методов вы можете получить [основные отчёты](/openapi/reports#tag/Osnovnye-otchyoty) и отчёты о: 1. [Остатках на складах](/openapi/reports#tag/Otchyot-ob-ostatkah-na-skladah) 2. [Товарах с обязательной маркировкой](/openapi/reports#tag/Otchyot-o-tovarah-c-obyazatelnoj-markirovkoj) 3. [Удержаниях](/openapi/reports#tag/Otchyoty-ob-uderzhaniyah) 4. [Платной приёмке](/openapi/reports#tag/Platnaya-priyomka) 5. [Платном хранении](/openapi/reports#tag/Platnoe-hranenie) 6. [Продажах по регионам](/openapi/reports#tag/Prodazhi-po-regionam) 7. [Доле бренда в продажах](/openapi/reports#tag/Dolya-brenda-v-prodazhah) 8. [Скрытых товарах](/openapi/reports#tag/Skrytye-tovary) 9. [Возвратах и перемещении товаров](/openapi/reports#tag/Otchyot-o-vozvratah-i-peremeshenii-tovarov)
7
+
8
+ The version of the OpenAPI document: reports
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class WHMDataReportsInner(BaseModel):
27
+ """
28
+ WHMDataReportsInner
29
+ """ # noqa: E501
30
+ nm_id: Optional[StrictInt] = Field(default=None, description="Артикул WB", alias="nmId")
31
+ subject_name: Optional[StrictStr] = Field(default=None, description="Предмет", alias="subjectName")
32
+ dim_id: Optional[StrictInt] = Field(default=None, description="ID замера", alias="dimId")
33
+ volume: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Объём, л")
34
+ width: Optional[StrictInt] = Field(default=None, description="Ширина, см")
35
+ length: Optional[StrictInt] = Field(default=None, description="Длина, см")
36
+ height: Optional[StrictInt] = Field(default=None, description="Высота, см")
37
+ photo_urls: Optional[List[StrictStr]] = Field(default=None, description="Фото замеров", alias="photoUrls")
38
+ dt: Optional[datetime] = Field(default=None, description="Дата и время")
39
+ __properties: ClassVar[List[str]] = ["nmId", "subjectName", "dimId", "volume", "width", "length", "height", "photoUrls", "dt"]
40
+
41
+ model_config = ConfigDict(
42
+ populate_by_name=True,
43
+ validate_assignment=True,
44
+ protected_namespaces=(),
45
+ )
46
+
47
+
48
+ def to_str(self) -> str:
49
+ """Returns the string representation of the model using alias"""
50
+ return pprint.pformat(self.model_dump(by_alias=True))
51
+
52
+ def to_json(self) -> str:
53
+ """Returns the JSON representation of the model using alias"""
54
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
55
+ return json.dumps(self.to_dict())
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> Optional[Self]:
59
+ """Create an instance of WHMDataReportsInner from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ """Return the dictionary representation of the model using alias.
64
+
65
+ This has the following differences from calling pydantic's
66
+ `self.model_dump(by_alias=True)`:
67
+
68
+ * `None` is only added to the output dict for nullable fields that
69
+ were set at model initialization. Other fields with value `None`
70
+ are ignored.
71
+ """
72
+ excluded_fields: Set[str] = set([
73
+ ])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of WHMDataReportsInner from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return cls.model_validate(obj)
90
+
91
+ _obj = cls.model_validate({
92
+ "nmId": obj.get("nmId"),
93
+ "subjectName": obj.get("subjectName"),
94
+ "dimId": obj.get("dimId"),
95
+ "volume": obj.get("volume"),
96
+ "width": obj.get("width"),
97
+ "length": obj.get("length"),
98
+ "height": obj.get("height"),
99
+ "photoUrls": obj.get("photoUrls"),
100
+ "dt": obj.get("dt")
101
+ })
102
+ return _obj
103
+
104
+
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "0.1.8"
17
+ __version__ = "0.1.10"
18
18
 
19
19
  # Define package exports
20
20
  __all__ = [
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'OpenAPI-Generator/0.1.8/python'
94
+ self.user_agent = 'OpenAPI-Generator/0.1.10/python'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  def __enter__(self):
@@ -536,7 +536,7 @@ conf = wildberries_sdk.tariffs.Configuration(
536
536
  "OS: {env}\n"\
537
537
  "Python Version: {pyversion}\n"\
538
538
  "Version of the API: tariffs\n"\
539
- "SDK Package Version: 0.1.8".\
539
+ "SDK Package Version: 0.1.10".\
540
540
  format(env=sys.platform, pyversion=sys.version)
541
541
 
542
542
  def get_host_settings(self) -> List[HostSetting]:
@@ -26,12 +26,14 @@ class CommissionUzbekistanReportInner(BaseModel):
26
26
  """
27
27
  CommissionUzbekistanReportInner
28
28
  """ # noqa: E501
29
- kgvp_uzbekistan: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Комиссия для продавцов из Узбекистана, %", alias="kgvpUzbekistan")
29
+ kgvp_marketplace_uz: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Комиссия по модели «Маркетплейс» (`FBS`), %", alias="kgvpMarketplaceUz")
30
+ kgvp_paid_storage_uz: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Комиссия по модели «Склад WB» (`FBW`), %", alias="kgvpPaidStorageUz")
31
+ kgvp_supplier_uz: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Комиссия по модели «Витрина» (`DBS`), %", alias="kgvpSupplierUz")
30
32
  parent_id: Optional[StrictInt] = Field(default=None, description="ID родительской категории", alias="parentID")
31
33
  parent_name: Optional[StrictStr] = Field(default=None, description="Название родительской категории", alias="parentName")
32
34
  subject_id: Optional[StrictInt] = Field(default=None, description="ID предмета", alias="subjectID")
33
35
  subject_name: Optional[StrictStr] = Field(default=None, description="Название предмета", alias="subjectName")
34
- __properties: ClassVar[List[str]] = ["kgvpUzbekistan", "parentID", "parentName", "subjectID", "subjectName"]
36
+ __properties: ClassVar[List[str]] = ["kgvpMarketplaceUz", "kgvpPaidStorageUz", "kgvpSupplierUz", "parentID", "parentName", "subjectID", "subjectName"]
35
37
 
36
38
  model_config = ConfigDict(
37
39
  populate_by_name=True,
@@ -84,7 +86,9 @@ class CommissionUzbekistanReportInner(BaseModel):
84
86
  return cls.model_validate(obj)
85
87
 
86
88
  _obj = cls.model_validate({
87
- "kgvpUzbekistan": obj.get("kgvpUzbekistan"),
89
+ "kgvpMarketplaceUz": obj.get("kgvpMarketplaceUz"),
90
+ "kgvpPaidStorageUz": obj.get("kgvpPaidStorageUz"),
91
+ "kgvpSupplierUz": obj.get("kgvpSupplierUz"),
88
92
  "parentID": obj.get("parentID"),
89
93
  "parentName": obj.get("parentName"),
90
94
  "subjectID": obj.get("subjectID"),