API СДЭК
Не просто прикольное словосочетание. Если вы когда-нибудь пробовали интегрироваться с API, вы знаете это чувство: документация загадочна, примеры неполные, ответы API ведут себя так, будто у них своя личная жизнь.
Но тут на сцену выходит СДЭК — и приятно удивляет. У них качественное, аккуратно прописанное и логичное API, за что отдельно хочется пожать руку каждому человеку из команды документации.
Чтобы работать с API было ещё проще, появился CDEK Python SDK v2.0 — библиотека, которая превращает интеграцию в почти (не к ночи упомянутый) вайб-кодинг. Да-да, никаких слёз. Всё уже внутри.
CDEK Python SDK v2.0
Это Python-библиотека для API СДЭК 2.0 с удобным объектно-ориентированным интерфейсом. Почему v2.0? Ну… не всё выходит так, как хотелось бы с первого раза — даже у нас.
Можно делать всё, что нужно разработчику:
- считать стоимость доставки
- получать сроки
- работать со справочниками (города, ПВЗ, регионы)
- создавать и отслеживать заказы
- получать накладные и штрих-коды в PDF
- ловить вебхуки со статусами
- вызывать курьера
- и делать это без боли
Проще говоря, это готовый набор инструментов для интеграции службы доставки для любого фреймворка.
Быстрый старт
Установка — одна команда:
pip install cdek
Пример — три строчки, и вы уже считаете тариф:
from cdek import CdekClient from cdek.apps.tariff.requests import TariffCodeRequest client = CdekClient("TEST") request = TariffCodeRequest.init(tariff_code=136) request.set_city_codes(from_location=44, to_location=137) request.set_package_weight(weight=1_000) tariff = client.tariff.calc(request) print(f"Стоимость: {tariff.delivery_sum} {tariff.currency}") print(f"Срок: {tariff.period_min}–{tariff.period_max} дней")
Pydantic контролирует данные, токены кэшируются автоматически, ошибки уже обработаны — короче, жить можно.
Присоединяйтесь к тестированию!
Добро пожаловать — тестировщики нам нужны как воздух, особенно те, кто может сломать даже то, что вроде невозможно сломать.
Контрибьютерам — отдельный респект
Проект полностью open source, так что:
- хотите улучшить код — приходите
- нашли идею — оформляйте PR
- любите документацию — вы наш герой
- исправили баг — мы вас уже любим
Требования
- Python 3.10+
- pydantic 2.6–3.0
- requests 2.28.0+
Где почитать и скачать?
- Документация: https://github.com/xxp-odoo-erp/cdek/wiki
- Репозиторий: https://github.com/xxp-odoo-erp/cdek
- PyPi: https://pypi.org/project/cdek/
Что дальше? Интеграция Odoo СДЭК
Готовится к релизу Delivery Carrier CDEK для Odoo 16.0, который:
- рассчитывает тарифы прямо в Sale Order,
- создаёт и отменяет заказы в СДЭК,
- работает с тестовым режимом,
- и вообще ведёт себя как стандартный delivery carrier со всеми его фичами.
И все это будет совершенно бесплатно размещено у нас в репозитории.
И всё это будет совершенно бесплатно, размещено в нашем репозитории.
Также уже готов модуль с интеграцией виджета карт CDEK для Odoo 16.0, с помощью которого можно заполнять адреса партнёра и хранить предпочитаемый ПВЗ на основе библиотеки адресов CDEK. Модуль будет размещён в Odoo App Store в ближайшее время.
Далее в планах — миграция на более свежие версии Odoo и интеграция со CDEK PAY. Следите за обновлениями.