Быстрый старт

Это руководство поможет вам быстро начать работу с CDEK Python SDK.

Минимальный пример

Самый простой способ начать работу - использовать тестовый аккаунт:

from cdek import CdekClient

# Создание клиента с тестовым аккаунтом
client = CdekClient("TEST")

# Получение списка доступных тарифов
tariffs = client.tariff.all()
print(f"Доступно тарифов: {len(tariffs.tariffs)}")

Пример создания заказа

from cdek import CdekClient
from cdek.apps.order.requests import OrderRequest
from cdek.apps.models.location import OrderLocation
from cdek.apps.models.contact import Contact
from cdek.apps.models.package import Package
from cdek.apps.models.item import Item

# Создание клиента
client = CdekClient("TEST")

# Создание заказа
order = OrderRequest(
    number="TEST-ORDER-001",
    tariff_code=139,
    from_location=OrderLocation(code=270, address="ул. Ленина, д. 1"),
    to_location=OrderLocation(code=137, address="Невский проспект, д. 28"),
    sender=Contact(name="Отправитель", phones=[{"number": "+79991234567"}]),
    recipient=Contact(name="Получатель", phones=[{"number": "+79997654321"}]),
    packages=[
        Package(
            number="PACK-001",
            weight=2000,
            items=[
                Item(name="Товар", ware_key="SKU-001", cost=1000, amount=1)
            ]
        )
    ]
)

# Отправка заказа
response = client.order.create(order)
print(f"Заказ создан: {response.entity.uuid}")

Пример расчета стоимости доставки

from cdek import CdekClient
from cdek.apps.tariff.requests import TariffListRequest

client = CdekClient("TEST")

# Расчет стоимости доставки
tariff_request = TariffListRequest()
tariff_request.set_city_codes(from_location=270, to_location=137)
tariff_request.set_package_weight(2000)

# Получение списка тарифов
tariffs = client.tariff.calc_list(tariff_request)

# Вывод результатов
for tariff in tariffs.tariff_codes:
    print(f"Тариф {tariff.tariff_code}: {tariff.delivery_sum} руб.")

Пример поиска ПВЗ

from cdek import CdekClient
from cdek.apps.office.filters import OfficeFilter

client = CdekClient("TEST")

# Поиск ПВЗ в Москве
offices = client.office.get(OfficeFilter(city_code=270))

for office in offices["result"]:
    print(f"{office.name} - {office.address}")

Следующие шаги