Skip to content

methods

PostingMethods

Bases: SellerApiABCMethods

get_by_number async

Python
1
get_by_number(posting_number: str, **kwargs: Unpack[GetPostingsWith]) -> Posting

Получить отправление по его номеру.

Аргументы:

  • posting_number - номер отправления
  • product_exemplars (опционально) - Добавить в ответ данные о продуктах и их экземплярах.
  • related_postings (опционально) - Добавить в ответ номера связанных отправлений. Связанные отправления — те, на которое было разделено родительское отправление при сборке.

Возвращает: Posting

Source code in marketplace_apis/ozon/posting/methods.py
Python
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
async def get_by_number(
    self, posting_number: str, **kwargs: Unpack[GetPostingsWith]
) -> Posting:
    """
    Получить отправление по его номеру.
    # Аргументы:
    * posting_number - номер отправления
    * product_exemplars (опционально) - Добавить в ответ данные о продуктах и их
    экземплярах.
    * related_postings (опционально) - Добавить в ответ номера связанных
    отправлений. Связанные отправления — те, на которое было разделено родительское
    отправление при сборке.

    # Возвращает: [Posting](posting.md)
    """
    _, with_ = kwargs_to_filters(kwargs)
    _, data = await self.client.post(
        API_PATH["get_posting_by_number"],
        data={"posting_number": posting_number, "with": with_},
    )
    return Posting.from_dict(data["result"])

label_task_create async

Python
1
label_task_create(posting_numbers: list[str]) -> int

Создать задание на асинхронное получение этикетки.

Аргументы:

  • posting_number - номер отправления

Возвращает: int - Идентификатор задания на формирование этикеток.

Source code in marketplace_apis/ozon/posting/methods.py
Python
115
116
117
118
119
120
121
122
123
124
125
126
async def label_task_create(self, posting_numbers: list[str]) -> int:
    """
    Создать задание на асинхронное получение этикетки.
    # Аргументы:
    * posting_number - номер отправления

    # Возвращает: int - Идентификатор задания на формирование этикеток.
    """
    _, data = await self.client.post(
        API_PATH["package_label_create"], data={"posting_number": posting_numbers}
    )
    return data["result"]["task_id"]

label_task_get async

Python
1
label_task_get(task_id: int) -> AsyncLabelGetResult

Проверить статус задания или получить этикетку, созданную label_task_create

Аргументы:

  • task_id - Идентификатор задания на формирование этикеток.

Возвращает:

AsyncLabelGetResult

Source code in marketplace_apis/ozon/posting/methods.py
Python
128
129
130
131
132
133
134
135
136
137
138
139
140
async def label_task_get(self, task_id: int) -> AsyncLabelGetResult:
    """
    Проверить статус задания или получить этикетку, созданную label_task_create
    # Аргументы:
    * task_id - Идентификатор задания на формирование этикеток.

    # Возвращает:
    [AsyncLabelGetResult](label.md#ozon.posting.label.AsyncLabelGetResult)
    """
    _, data = await self.client.post(
        API_PATH["package_label_get"], data={"task_id": task_id}
    )
    return AsyncLabelGetResult.from_dict(data["result"])

list_postings async

Python
1
list_postings(dir_: str = 'desc', iter_: bool = True, limit: int = 1000, offset: int = 0, **kwargs: Unpack[ListPostings]) -> list[Posting]

Получить список отправлений.

Аргументы:

  • filter_since - Дата начала периода, за который нужно получить список отправлений. (datetime)
  • filter_to - Дата конца периода, за который нужно получить список отправлений. (datetime)
  • dir_ (по умолчанию "desc") - направление сортировки
  • iter_ (по умолчанию True) - необходимо ли получать все объекты, итерируясь по страницам
  • limit (по умолчанию 1000) - максимальное количество объектов, которое будет получено за один запрос
  • offset (по умолчанию 0) - с какого объекта начать первую страницу?
  • with_analytics_data (опционально) - Добавить в ответ данные аналитики.
  • with_barcodes (опционально) - Добавить в ответ штрихкоды отправления.
  • with_financial_data (опционально) - Добавить в ответ финансовые данные.
  • with_translit (опционально) - Выполнить транслитерацию возвращаемых значений.
  • filter_delivery_method_id (опционально) - Идентификатор способа доставки. (list[int])
  • filter_order_id (опционально) - Идентификатор заказа. (int)
  • filter_provider_id (опционально) - Идентификатор службы доставки. (list[int])
  • filter_status (опционально) - Статус отправления. (PostingStatus)
  • filter_warehouse_id (опционально) - Идентификатор службы доставки. (list[int])

Возвращает: list[Posting]

Source code in marketplace_apis/ozon/posting/methods.py
Python
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
async def list_postings(
    self,
    dir_: str = "desc",
    iter_: bool = True,
    limit: int = 1000,
    offset: int = 0,
    **kwargs: Unpack[ListPostings],
) -> list[Posting]:
    """
    Получить список отправлений.
    # Аргументы:
    * filter_since - Дата начала периода, за который нужно получить список
    отправлений. (datetime)
    * filter_to - Дата конца периода, за который нужно получить список
    отправлений. (datetime)
    * dir_ (по умолчанию "desc") - направление сортировки
    * iter_ (по умолчанию True) - необходимо ли получать все объекты,
    итерируясь по страницам
    * limit (по умолчанию 1000) - максимальное количество объектов, которое будет
    получено за один запрос
    * offset (по умолчанию 0) - с какого объекта начать первую страницу?
    * with_analytics_data (опционально) - Добавить в ответ данные аналитики.
    * with_barcodes (опционально) - Добавить в ответ штрихкоды отправления.
    * with_financial_data (опционально) - Добавить в ответ финансовые данные.
    * with_translit (опционально) - Выполнить транслитерацию возвращаемых значений.
    * filter_delivery_method_id (опционально) - Идентификатор способа доставки.
    (list[int])
    * filter_order_id (опционально) - Идентификатор заказа. (int)
    * filter_provider_id (опционально) - Идентификатор службы доставки. (list[int])
    * filter_status (опционально) - Статус отправления.
    ([PostingStatus](enums.md#ozon.posting.enums.PostingStatus))
    * filter_warehouse_id (опционально) - Идентификатор службы доставки. (list[int])

    # Возвращает: list[[Posting](posting.md)]
    """
    dict_datetime_to_iso(kwargs)
    raw_postings = []
    filter_, with_ = kwargs_to_filters(kwargs)

    async def make_request():
        resp, decoded_resp = await self.client.post(
            API_PATH["list_postings"],
            data={
                "limit": limit,
                "offset": offset,
                "dir": dir_,
                "filter": filter_,
                "with": with_,
            },
        )
        nonlocal raw_postings
        raw_postings += decoded_resp["result"]["postings"]
        return resp, decoded_resp

    _, data = await make_request()
    while iter_ and data["result"]["has_next"]:
        offset += limit
        _, data = await make_request()

    return [Posting.from_dict(raw_posting) for raw_posting in raw_postings]

ship async

Python
1
ship(posting_number, packages: list[list[ShipPostingProduct]], **kwargs: Unpack[ShipPostingWith]) -> PostingShipResult

Собрать заказ.

Аргументы:

  • posting_number - номер отправления
  • packages - список упаковок. Каждая упаковка - список товаров. (list[list[[ShipPostingProduct] (methods_types.md#ozon.posting.methods_types.ShipPostingProduct)]])
  • with_additional_data (опционально) - Добавить в ответ дополнительную информацию.

Возвращает: PostingShipResult

Source code in marketplace_apis/ozon/posting/methods.py
Python
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
async def ship(
    self,
    posting_number,
    packages: list[list[ShipPostingProduct]],
    **kwargs: Unpack[ShipPostingWith],
) -> PostingShipResult:
    """
    Собрать заказ.
    # Аргументы:
    * posting_number - номер отправления
    * packages - список упаковок. Каждая упаковка - список товаров.
    (list[list[[ShipPostingProduct]
    (methods_types.md#ozon.posting.methods_types.ShipPostingProduct)]])
    * with_additional_data (опционально) - Добавить в ответ дополнительную
    информацию.

    # Возвращает: [PostingShipResult](ship.md#ozon.posting.ship.PostingShipResult)
    """
    _, with_ = kwargs_to_filters(kwargs)
    _, data = await self.client.post(
        API_PATH["ship_posting"],
        data={
            "posting_number": posting_number,
            "with": with_,
            "packages": [{"products": products} for products in packages],
        },
    )
    return PostingShipResult.from_dict(data)