Как читать котировку агрегатора logistoff.ru
Котировка — это элемент массива `quotes` в ответе `POST https://api.logistoff.ru/api/calculate`. Тело запроса: `city_from`, `city_to`, `weight_kg`. 10.09.2026 на Перми→Москве пришло 53 строки, `failed` пустой, провайдеры `pochta_russia`, `cdek`, `pec`. Деньги лежат в `price_min_kop`: 60634 копейки = 606,34 ₽ у Почты. Если читать копейки как рубли, вы ошибётесь в сто раз.
Рядом всегда смотрите `tariff_name`, `days_min`, `days_max`, `delivery_type`, `pickup_type`. Без них 606,34 ₽ нельзя сравнивать с 1970 ₽ ПЭК дверь-дверь.
Карта полей, которые мы реально видели
`provider_slug` — технический ключ (`cdek`, не «СДЭК»). `provider_name` — человекочитаемое. `provider_category` в снимке был `"A"`. `tariff_code` у Почты 23030, у СДЭК — свой код тарифа. `price_max_kop` часто `null`: это не «потолок не ограничен», а «верхнюю границу не прислали». `insurance_max_rub` — тоже `null` в разобранных строках.
`extra` у Почты: `pochta_object_code`, `transportation: наземно`. У ПЭК: `assumed_edge_cm: 20`, когда размер не передали. У СДЭК extra в короткой выборке мог быть пустым.
Документация ПЭК: https://pecom.ru/business/developers/api_public/.
Что такое failed
На Твери→Москве `failed` содержал объект ПЭК с `reason: invalid_request` и текстом про авиа. Это не строка за 0 ₽. Не записывайте отказ как «ПЭК бесплатно». На Рязани ситуация та же. На Краснодаре failed был пустой, авто ПЭК посчитался.
Кэш и время
`elapsed_ms` и `cache_hit_ratio` сидят на корне ответа, не на каждой строке. Пермь при повторе: 1 мс. Барнаул первый раз: 1762 мс. Для витрины кэш нормален. Для доказательства «вы обещали в 12:03» сохраняйте полный JSON с часами.
Сортировка глазами
Не берите min(price) по всему массиву: супер-экспресс СДЭК 3660 ₽ и Почта 606,34 ₽ не конкуренты. Фильтруйте `delivery_type` и имя тарифа. Для честного ПВЗ на Перми рядом стоят Почта 606,34 / 4 дня и СДЭК посылка 615 / 3–4 дня. ПЭК склад 890 / 4–8 дней — другой срок.
Чего в котировке нет
КИТ. Деловые Линии без ключа. Яндекс.Доставка без ключа. Возовоз. Stub-тарифов на проде нет. Справочник компаний на сайте шире, чем массив `quotes`. Не обещайте получателю «все сети из каталога посчитались».
Health API `version=0.2.1` — версия сервиса расчёта, не VERSION сайта.
Как связать с кнопкой на сайте
Интерфейс главной рисует те же провайдеры человеческим языком. Если в UI «склад-склад», в JSON ищите `pvz`+`pvz` и имя с «склад». Расхождение UI и JSON — повод сохранить оба и написать в контакты, не «подогнать» рубли.
Трекинг — другой контур: /track, не поле цены.
Как не перепутать provider_slug и имя на кнопке?
`pochta_russia` vs «Почта России». В коде фильтруйте slug. В письме клиенту — имя. Смешение ломает поддержку. Список считающих в UI задаёт site-facts, не длина массива quotes: СДЭК отдаёт десятки тарифов, это не «десятки компаний».
Что делать с price_max_kop = null?
Не подставляйте бесконечность. Одна цифра — `price_min_kop`. Если ТК шлёт вилку, появится max. 10.09.2026 вилки не было.
Как прочитать дни 4-8 у ПЭК Перми?
`days_min` 4, `days_max` 8. Это интервал, не обещание «к четвергу». Почта 4-4 — узкий интервал. Не усредняйте 4 и 8 в «6 для сравнения со СДЭК 3–4».
Зачем extra.collected_at, если его нет?
В некоторых ответах ПЭК разведки был `collected_at: live`. В укороченной печати этой статьи ключ мог не попасть. Не выдумывайте его, если вашего JSON нет. Смотрите фактический extra.
Эталон запроса и ПЭК: https://api.logistoff.ru/api/calculate и https://pecom.ru/business/developers/api_public/. КИТ в quotes не входит: https://tk-kit.ru/order.
Чем котировка не является?
Не счёт на оплату. Не трек. Не договор. Не прайс на завтра. Кнопка «оформить» уведёт на сайт ТК, когда партнёрка будет подключена; 10.09.2026 это обычная витрина расчёта.
Как объяснить клиенту копейки в письме?
Пишите «606,34 ₽ (поле price_min_kop=60634) на 10.09.2026, Пермь→Москва, 5 кг, Почта 23030». Этого достаточно, чтобы через месяц не спорить. Не пишите «около 600».
Что делать, если UI показал 53 карточки и глаза разъехались?
Фильтр: pvz+посылка+без супер-экспресса. На Перми тогда рядом останутся Почта 606,34 и СДЭК 615. Остальное — другие скорости и двери. Длина массива не равна числу компаний.
Как читать 53 котировки, не сойдя с ума?
Группировка: сначала provider_slug, внутри — двери, внутри — скорость. На Перми это даст Почту одну строку, ПЭК четыре авто, СДЭК пачку. Min по пачке СДЭК 615 ₽ не сравнивайте с min супер-экспресса.
Зачем client сохраняет cache_hit_ratio?
Чтобы не делать из 1 мс вывод «ПЭК стал мгновенным». Это кэш. Барнаул 1762 мс — живой проход. Для отладки полезно, для счёта нет. https://api.logistoff.ru/api/calculate
Как не спутать health version 0.2.1 с версией сайта?
Health — сервис API. VERSION проекта живёт отдельно. В письме клиенту не пишите «считаем на версии 0.2.1», это ничего не объясняет про 606,34 ₽. Пишите дату снимка и поля запроса.
Документация ПЭК https://pecom.ru/business/developers/api_public/. Трекинг не цена: /track. КИТ не quotes: https://tk-kit.ru/order.
Как отличить tariff_code СДЭК от object_code Почты?
Разные справочники. 23030 — почтовый объект в extra. Код СДЭК живёт в tariff_code своей линейки. Не ищите 23030 у ПЭК. Смешение кодов ломает сверку с ЛК перевозчика.
Как сериализовать котировку в CRM, чтобы через месяц она осталась понятной?
Сохраняйте provider_slug, tariff_code, tariff_name, price_min_kop, days_min, days_max, pickup_type, delivery_type, extra JSON, request JSON, elapsed_ms. Не сохраняйте только «615». Пермь без этих полей превратится в спор с 1970. Health 0.2.1 не кладите в CRM как версию тарифа. КИТ в CRM помечайте источником tk-kit.ru, не quotes. https://api.logistoff.ru/api/calculate https://pecom.ru/business/developers/api_public/ https://tk-kit.ru/order
Как фильтровать quotes в Excel без потери дверей?
Колонки slug, tariff_name, pickup, delivery, kop/100, days. Фильтр pvz/pvz + «Посылка» + не «супер». Пермь тогда покажет 606,34 и 615 рядом. Не фильтруйте только по min цены. https://api.logistoff.ru/api/calculate
Как не потерять extra при копировании в чат?
Копируйте JSON целиком, не «890 ₽». assumed_edge_cm живёт в extra. Без extra спор про размер бессмыслен. Пермь ПЭК без extra выглядит как честный замер 5 кг — и это неправда. https://pecom.ru/business/developers/api_public/ https://api.logistoff.ru/api/calculate
Нужно ли логировать request целиком вместе с quotes?
Да: без request непонятно, какие города и вес породили 53 строки. Пермь без request неотличима от Твери в архиве. https://api.logistoff.ru/api/calculate
Не округляйте price_min_kop до рублей в CRM: потеряете сверку с Почтой 606,34. Храните копейки. https://api.logistoff.ru/api/calculate
Часто задаваемые вопросы
Почему цена в копейках?
Так устроен API. Делите `price_min_kop` на 100.
Что значит assumed_edge_cm 20?
Агрегатор подставил ребро 20 см для ПЭК, потому что размер не передали. Это не замер вашей коробки.
Пустой failed — это хорошо?
Да, в смысле «провайдеры, которые ответили ошибкой, не прислали записей». На Твери failed как раз не пустой.
Можно ли строить бухгалтерию по cache_hit?
Нет. Кэш для UX. Для счёта — заказ у ТК.
Где ключ Деловых Линий?
Его нет в этом прогоне. Провайдер не регистрируется без appkey.
Это тот же расчёт, что на /iz-... страницах?
Живой виджет — на главной. Маршрутные landing могли держать старые ориентиры. Для денег жмите калькулятор.
Похожие страницы
- Блог о доставке
- Объявленная стоимость груза: что это и зачем её пишут
- Как упаковка меняет расчётный объём и цену
- Как считается объёмный вес в доставке
- Калькулятор доставки
- Отслеживание посылки
- Топ-5 транспортных компаний
- Что входит в тариф ТК и какие бывают доплаты
- Склад–склад, склад–дверь и дверь–дверь: из чего складывается цена