SDK для удобной работы с API Yandex Delivery
Project description
Yandex.Delivery API Client
Клиентская библиотека для работы с API Яндекс.Доставки.
Описание
Данная библиотека предоставляет удобный интерфейс для взаимодействия с API Яндекс.Доставки v2. Она позволяет создавать заявки на доставку, проверять стоимость доставки и управлять процессом доставки.
Основные возможности
- Проверка стоимости доставки
- Создание заявок на доставку
- Подтверждение заявок
- Поддержка различных типов транспорта (курьер, экспресс, грузовой)
- Обработка ошибок API
Использование
Инициализация клиента
from yandex_delivery.client import YandexDeliveryClient
client = YandexDeliveryClient(api_key="ваш_api_ключ")
Проверка стоимости доставки
from yandex_delivery.objects import RoutePointWithAddress, ClientRequirements
from yandex_delivery.enums import TaxiClasses
# Создание точек маршрута
route_points = [
RoutePointWithAddress(
id=1,
coordinates=[74.635061, 42.856681],
fullname="Бишкек, ул. Горького, 1/2"
),
RoutePointWithAddress(
id=2,
coordinates=[74.590261, 42.874537],
fullname="Бишкек, ул. Горького, 1/2"
)
]
# Требования к доставке
requirements = ClientRequirements(
taxi_class=TaxiClasses.EXPRESS
)
# Получение стоимости
price = client.check_price(
route_points=route_points,
client_requirements=requirements
)
print(f"Стоимость доставки: {price} сом.")
Создание заявки на доставку
from uuid import uuid4
from yandex_delivery.objects import (
Item, RoutePoint, Contact, Address,
ClientRequirements
)
from yandex_delivery.enums import RoutePointType, TaxiClasses
# Создание товара
item = Item(
extra_id="ORDER-123",
pickup_point=1,
droppof_point=2,
title="Товар 1",
cost_value="1000",
cost_currency="KGS",
quantity=1
)
# Создание точек маршрута
route_points = [
RoutePoint(
point_id=1,
visit_order=1,
contact=Contact(
name="Yryskeldi",
phone="+996999999999"
),
address=Address(
coordinates=[74.635061, 42.856681],
fullname="Бишкек, ул. Горького, 1/2"
),
type=RoutePointType.SOURCE.value
),
RoutePoint(
point_id=2,
visit_order=2,
contact=Contact(
name="Eldos",
phone="+996999999999"
),
address=Address(
coordinates=[74.590261, 42.874537],
fullname="Бишкек, ул. Горького, 1/2"
),
type=RoutePointType.DESTINATION.value
)
]
# Создание заявки
claim_id = client.create_claim(
request_id=uuid4(),
items=[item],
route_points=route_points,
client_requirements=ClientRequirements(
taxi_class=TaxiClasses.EXPRESS
),
comment="Комментарий к заказу",
skip_door_to_door=False
)
Статусы заявок
Библиотека поддерживает все статусы заявок Яндекс.Доставки:
new- новая заявкаestimating- расчет стоимостиaccepted- заявка принятаperformer_lookup- поиск исполнителяperformer_found- исполнитель найденpickuped- груз забранdelivered- доставлено- И другие (полный список в
ClaimStatuses)
Обработка ошибок
Библиотека предоставляет специальный класс APIError для обработки ошибок API:
from yandex_delivery.exceptions import APIError
try:
price = client.check_price(route_points, requirements)
except APIError as e:
print(f"Ошибка API: {e.code} - {e.message}")
if e.response:
print(f"Детали ответа: {e.response}")
Типы данных
RoutePointWithAddress
Используется для описания точек маршрута при проверке стоимости:
Детали адреса не обязательны и могут быть пустыми. Подробнее в RoutePointWithAddress
route_point = RoutePointWithAddress(
id=1,
coordinates=[74.635061, 42.856681],
building="1",
city="Бишкек",
country="Кыргызстан",
fullname="Бишкек ул. Горького 1/2",
street="Горького",
)
ClientRequirements
Определяет требования к доставке:
requirements = ClientRequirements(
taxi_class=TaxiClasses.EXPRESS,
cargo_type=CargoType.VAN,
cargo_options=[CargoOptions.THERMOBAG],
cargo_loaders=1
)
Ограничения
Габариты груза
- Курьер (courier): до 0.80 м × 0.50 м × 0.50 м
- Экспресс (express): до 1.00 м × 0.60 м × 0.50 м
- Грузовой (cargo):
- Маленький кузов: до 1.70 м × 0.96 м × 0.90 м
- Средний кузов: до 2.60 м × 1.30 м × 1.50 м
- Большой кузов: до 3.80 м × 1.80 м × 1.80 м
Лицензия
MIT
Поддержка
При возникновении проблем или вопросов создавайте issue в репозитории проекта.
Частые вопросы
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yandex_delivery_sdk-0.1.4.tar.gz.
File metadata
- Download URL: yandex_delivery_sdk-0.1.4.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36ad9f19d08ea9fedfd7ebd94ee7da93cc129ec9bd734611f534634d6c493da9
|
|
| MD5 |
c61f641323b6b12be06226c797b462ba
|
|
| BLAKE2b-256 |
2f408a6cd014641c40ef0e0620226e4a553ef99f7533371fc25871e25a4567e7
|
File details
Details for the file yandex_delivery_sdk-0.1.4-py3-none-any.whl.
File metadata
- Download URL: yandex_delivery_sdk-0.1.4-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e8ef247a68d8a58e4db173ed00d9c3a09b22a7af88979c9f1fa518edb79e414
|
|
| MD5 |
82ac288322143a6909305e6f1ef65a15
|
|
| BLAKE2b-256 |
a136960151781208852d8e8a2db4562d8d2599057da22cac60bdeb86bc7e20e2
|