Покупатель хочет знать, сколько будет стоить доставка и когда он получит заказ, задолго до последнего шага оформления. Магазин хочет, чтобы цена доставки на сайте совпадала с тем, что потом выставит служба, и не съедала маржу. Между этими желаниями — тарифные сетки, зоны, вес и габариты, пункты выдачи и интеграции по API. Объясняем, как мы строим расчёт доставки в магазинах и какие решения работают лучше всего.
Почему фиксированная цена доставки — плохая идея
Самый простой вариант — написать «Доставка по Москве 400 ₽, по России 600 ₽». Он работает, пока заказы небольшие и однородные. Но как только в каталоге появляются тяжёлые или крупногабаритные товары, а покупатели — в разных регионах, фиксированная цена начинает работать против магазина.
Если цена занижена, магазин доплачивает из своей маржи за каждую посылку в отдалённый регион или с тяжёлым товаром. Мы видели магазин садового инвентаря, который брал фиксированные 500 ₽ за доставку по России и терял на каждой отправке газонокосилки в Сибирь больше 1 000 ₽. Если цена завышена «с запасом», покупатель из соседней области видит, что переплачивает, и уходит к конкуренту с честным расчётом.
Автоматический расчёт по реальным тарифам служб решает обе проблемы: покупатель видит справедливую цену для своего адреса и товара, магазин не теряет деньги. Именно поэтому в большинстве наших проектов интернет-магазинов расчёт доставки строится через API служб.
Какие способы доставки подключать
Набор способов зависит от географии, характера товара и аудитории. Обычно мы собираем комбинацию из нескольких вариантов, чтобы покупатель выбрал между ценой, скоростью и удобством.
Пункты выдачи и постаматы
СДЭК, Boxberry и другие сети. Самый популярный способ для мелких и средних посылок: дешевле курьера, удобно забрать по пути. Нужна карта с выбором пункта.
Курьерская доставка
Своими курьерами в пределах города или через службу по стране. Дороже, но незаменима для крупных и дорогих товаров и для покупателей, которые не хотят никуда ехать.
Почта России
Покрывает населённые пункты, куда не доходят другие службы. Для части аудитории в малых городах это единственный вариант.
Самовывоз
Из своего магазина, склада или шоурума. Бесплатно для покупателя, позволяет посмотреть товар и часто увеличивает средний чек.
Для крупногабаритных товаров — мебели, стройматериалов, техники — добавляются транспортные компании с доставкой до терминала или до двери, а также опции подъёма на этаж и сборки. Эти услуги стоит показывать в оформлении заказа отдельными пунктами со своей ценой.

Как работает автоматический расчёт
Службы доставки предоставляют API: магазин отправляет параметры посылки — откуда, куда, вес, габариты, объявленную ценность, — а в ответ получает список доступных тарифов со стоимостью и сроками. Для пунктов выдачи отдельный метод возвращает список пунктов в городе с координатами, режимом работы и ограничениями по весу.
Для популярных платформ есть готовые модули СДЭК, Boxberry, Почты России и агрегаторов доставки. Они позволяют быстро подключить расчёт, но часто требуют доработки: адаптации под дизайн, корректной работы с весом и габаритами, кеширования. Для проектов на фреймворке мы подключаем API напрямую.
Агрегатор или прямые договоры
Можно заключить договоры со службами напрямую и подключить каждую по отдельности, а можно работать через агрегатор доставки, который объединяет несколько служб в одном API и одном личном кабинете. Агрегатор удобнее на старте: один договор, одна интеграция, сравнение тарифов разных служб в одном ответе. Прямые договоры выгоднее при больших объёмах — службы дают индивидуальные скидки.
Кеширование и запасной вариант
API службы может ответить медленно или не ответить вовсе. Если расчёт занимает пять секунд или падает с ошибкой, покупатель видит пустой блок доставки и уходит. Поэтому мы кешируем результаты расчёта для типовых сочетаний города и веса и обязательно предусматриваем запасной вариант: если API недоступен, показывается цена по заранее заданной тарифной таблице с пометкой «ориентировочно».
Вес и габариты: где ломается точность
Расчёт доставки точен ровно настолько, насколько точны данные о товарах. Если у товаров не заполнены вес и размеры упаковки, модуль подставляет значения по умолчанию, и цена на сайте не совпадает с реальной.
Особенно коварны габариты. Службы считают так называемый объёмный вес: для лёгких, но крупных посылок цена определяется не реальным весом, а объёмом коробки. Подушка весом 800 граммов в коробке 60 × 40 × 30 см для службы весит как посылка в 14 килограммов. Если магазин считает доставку по фактическому весу, он недополучает несколько сотен рублей с каждой такой отправки.
- Заполнены вес и габариты в упаковке для каждого товара и варианта.
- Есть правило упаковки нескольких товаров в один заказ — суммирование или подбор коробки.
- Учтены ограничения пунктов выдачи по весу и размерам — тяжёлые заказы не предлагают в постамат.
- Объявленная ценность передаётся корректно — от неё зависит страховой сбор.
- Для товаров без данных стоит безопасное значение по умолчанию, а не ноль.
Если товары приходят из учётной системы, вес и габариты удобнее хранить там и передавать на сайт вместе с номенклатурой. Как это настраивается, описано в статье об интеграции магазина с 1С.
Пункты выдачи на карте
Выбор пункта выдачи — самая интерактивная часть оформления. Покупателю нужна карта с отметками пунктов, поиск по адресу или метро, список ближайших с расстоянием, информация о режиме работы и возможности примерки или оплаты картой. На мобильных карта должна открываться на весь экран и не конфликтовать с прокруткой страницы.
Если подключено несколько служб, пункты разных сетей удобно показывать на одной карте с разными цветами отметок и фильтром по службе. Покупателю не важно, чей это пункт, ему важно, чтобы он был рядом с домом и цена была приемлемой. После выбора пункта в сводке заказа должны появиться его адрес, срок доставки и стоимость.
Частая ошибка — карта, которая грузит сразу все пункты страны. Это тысячи отметок, страница тормозит, а на слабых телефонах может зависнуть браузер. Пункты нужно загружать только для выбранного города и видимой области карты.
Бесплатная доставка и пороги
Бесплатная доставка — сильный аргумент для покупателя и мощный инструмент увеличения среднего чека. Но «бесплатно» для покупателя означает, что магазин оплачивает доставку из своей маржи. Порог нужно рассчитывать, а не выбирать «на глаз».
| Модель | Как работает | Когда подходит |
|---|---|---|
| Порог суммы заказа | Бесплатно от определённой суммы, например от 5 000 ₽ | Самая универсальная модель; порог ставят на 20–40% выше среднего чека |
| Бесплатно в пункты выдачи | Курьер платно, пункт выдачи бесплатно | Когда доставка в пункты заметно дешевле курьерской |
| Бесплатно по региону | Бесплатно в своём городе, платно по стране | Магазины со своими курьерами и локальной аудиторией |
| Включено в цену товара | Доставка всегда бесплатна, стоимость заложена в цены | Товары с высокой маржой и небольшим весом |
Пример расчёта: средний чек магазина — 3 200 ₽, средняя стоимость доставки для магазина — 320 ₽, маржа — 35%. При пороге бесплатной доставки 4 500 ₽ часть покупателей добирает товар до порога, средний чек растёт, а доставка обходится магазину примерно в 7% от суммы заказа против 10% при текущем чеке. Сообщение «Добавьте товаров на 1 300 ₽ для бесплатной доставки» в корзине прямо подталкивает к этому.
Показывайте прогресс до бесплатной доставки в корзине и в мини-корзине. Индикатор с суммой, которой не хватает до порога, — один из самых простых способов поднять средний чек на 10–15%.
Где показывать стоимость доставки
Информация о доставке не должна появляться только в оформлении заказа. Неожиданная стоимость на последнем шаге — главная причина брошенных корзин, о чём мы подробно писали в статье о корзине и оформлении заказа.
Оптимальная схема выглядит так. Город покупателя определяется автоматически по IP с возможностью сменить его в шапке сайта. В карточке товара показываются ближайшие варианты: «Самовывоз сегодня — бесплатно, курьером завтра — 350 ₽, в пункт выдачи послезавтра — 190 ₽». В корзине — стоимость для всего заказа с учётом общего веса и прогресс до бесплатной доставки. В оформлении — точный расчёт по адресу и выбору пункта.
Отдельная страница «Доставка и оплата» тоже нужна: на неё попадают из поиска и с неё покупатели проверяют условия. Там стоит описать зоны, сроки, ограничения по весу и способы оплаты при получении. Но эта страница не заменяет расчёт в карточке и корзине.
После оформления: трек-номер и статусы
Работа с доставкой не заканчивается выбором тарифа. Когда заказ передан службе, покупатель ждёт трек-номер и уведомления о движении посылки. Интеграция с API службы позволяет автоматически создавать отправление из админки магазина, печатать этикетки и получать статусы: принят, в пути, прибыл в пункт выдачи, вручён. Эти статусы передаются покупателю письмом или СМС и отображаются в личном кабинете. В результате менеджеры отвечают на заметно меньшее число звонков «где мой заказ», а магазин видит, какие посылки застряли или не были забраны из пункта выдачи.
Выводы: доставка как часть продукта
Доставка — не техническая формальность, а часть того, что покупает клиент. Он оценивает не только цену товара, но и то, когда и как его получит. Магазин, который честно и заранее показывает стоимость и сроки, выигрывает у конкурента с более низкой ценой и непрозрачной доставкой.
Подключайте автоматический расчёт через API служб, заполняйте вес и габариты всех товаров, учитывайте объёмный вес, кешируйте ответы и держите запасной вариант на случай сбоя. Рассчитывайте порог бесплатной доставки от среднего чека и маржи, а не от интуиции. И показывайте стоимость доставки уже в карточке товара. Настройку доставки мы выполняем в рамках разработки интернет-магазина или как отдельную доработку для работающего проекта.
Нужен сайт или интернет-магазин?
Обсудим задачу, подскажем подходящую платформу и оценим сроки и бюджет — бесплатно и без обязательств.
Обсудить проект
