Исходный код cdek.apps.order.order
from ..app import App
from ..models.entity_response import EntityResponse
from .requests import OrderRequest, OrderUpdateRequest
from .responses import OrderEntityResponse
[документация]
class OrderApp(App):
"""Класс для работы с заказами"""
[документация]
def create(self, order: "OrderRequest") -> "EntityResponse":
"""
Создать заказ в системе CDEK
Args:
order: объект OrderRequest с параметрами запроса
Returns:
EntityResponse: объект с информацией о созданном заказе
Raises:
ValueError: если order не является объектом OrderRequest
"""
if not isinstance(order, OrderRequest):
raise ValueError("order must be a OrderRequest")
response = self._post("orders", json=order)
return EntityResponse.model_validate(response)
[документация]
def update(self, order: "OrderUpdateRequest") -> "EntityResponse":
"""
Обновить сведения по ранее созданному заказу
Args:
order: объект OrderUpdateRequest с параметрами запроса
Returns:
EntityResponse: объект с информацией о обновленном заказе
Raises:
ValueError: если order не является объектом OrderUpdateRequest
"""
if not isinstance(order, OrderUpdateRequest):
raise ValueError("order must be a OrderUpdateRequest")
response = self._patch("orders", json=order)
return EntityResponse.model_validate(response)
[документация]
def delete(self, uuid: str) -> EntityResponse:
"""
Удалить заказ по его UUID
Args:
uuid: идентификатор заказа
Returns:
EntityResponse: объект с информацией о удаленном заказе
Raises:
ValueError: если uuid не является строкой
"""
if not isinstance(uuid, str):
raise ValueError("uuid must be a str")
response = self._delete(f"orders/{uuid}")
return EntityResponse.model_validate(response)
[документация]
def refusal(self, uuid: str) -> EntityResponse:
"""Регастрация отказа
Регистрации отказа по заказу и дальнейшего возврата
данного заказа в интернет-магазин.
После успешной регистрации отказа статус заказа переходит
в "Не вручен" (код NOT_DELIVERED) с дополнительным
статусом "Возврат, отказ от получения: Без объяснения" (код 11).
Заказ может быть отменен в любом статусе*, пока не установлен статус
"Вручен" или "Не вручен".
* Не рекомендуется использовать метод для заказов,
которые находятся в статусе "Создан" и не планируются к отгрузке
на склады СДЭК. В случае применения метода отказа для заказов,
находящихся в статусе "Создан", по ним будут начислены
операции и заказы будут включены в Акт оказанных услуг.
Для отмены заказа в статусе "Создан" воспользуйтесь методом
"Удаление заказа".
Args:
uuid: идентификатор заказа
Returns:
EntityResponse: объект с информацией о регистрации отказа
Raises:
ValueError: если uuid не является строкой
"""
if not isinstance(uuid, str):
raise ValueError("uuid must be a str")
response = self._post(f"orders/{uuid}/refusal")
return EntityResponse.model_validate(response)
[документация]
def client_return(self, uuid: str, tariff_code: int) -> "EntityResponse":
"""Регистрация клиентского возврата
Args:
uuid: идентификатор заказа
tariff_code: код тарифа
Returns:
EntityResponse: объект с информацией о регистрации клиентского возврата
"""
response = self._post(
f"orders/{uuid}/clientReturn",
json={"tariff_code": tariff_code},
)
return EntityResponse.model_validate(response)
[документация]
def get_by_cdek_number(self, cdek_number: str) -> "OrderEntityResponse":
"""Полная информация о заказе по трек номеру
Args:
cdek_number: трек номер заказа
Returns:
OrderEntityResponse: объект с информацией о заказе
"""
response = self._get("orders", params={"cdek_number": cdek_number})
return OrderEntityResponse.model_validate(response)
[документация]
def get_by_im_number(self, im_number: str) -> OrderEntityResponse:
"""Полная информация о заказе по ID заказа в магазине
Args:
im_number: ID заказа в магазине
Returns:
OrderEntityResponse: объект с информацией о заказе
"""
response = self._get("orders", params={"im_number": im_number})
return OrderEntityResponse.model_validate(response)
[документация]
def get_by_uuid(self, uuid: str) -> OrderEntityResponse:
"""Полная информация о заказе по uuid
Args:
uuid: идентификатор заказа
Returns:
OrderEntityResponse: объект с информацией о заказе
"""
response = self._get(f"orders/{uuid}")
return OrderEntityResponse.model_validate(response)