Быстрый старт
Шаг 1. Получите API-ключи
Подсказка
Если у вас старый ключ пакета «JavaScript API и HTTP Геокодер» — впишите его в поле «API-ключ Яндекс.Карт (JavaScript API)». После разделения продуктов нужные тарифы уже привязаны к нему, и он авторизует карту, геокодирование и построение маршрутов. Отдельные ключи получать не нужно. В этом случае обязательно включите галочку «Есть платный ключ „API Получения деталей маршрута“» в настройках доставки — иначе маршрут по дорогам будет строиться по данным OpenStreetMap, хотя ваш ключ уже умеет строить его через Яндекс. Подробнее — в разделе «Способ построения маршрута».
Раньше Яндекс выдавал единый ключ — пакет «JavaScript API и HTTP Геокодер», который сразу включал и карту, и геокодирование адресов, и построение маршрутов. Затем Яндекс разделил продукты на отдельные API: теперь каждый из них нужно получить по отдельности, а потом связать вместе на одном ключе. После разделения продуктов все необходимые тарифы должны были автоматически привязаться к вашим старым ключам, поэтому существующие ключи продолжают работать без изменений.
Ключи Яндекса
Получите ключи в Кабинете разработчика Яндекса. Для работы модуля нужны следующие API:
- JavaScript API — отрисовка карты на странице оформления заказа;
- API Геокодера — определение координат по адресу;
- API Геосаджеста — подсказки адресов от Яндекса (если используете подсказки Яндекса);
- API Получения деталей маршрута — построение маршрута до склада через JS API. Нужен только если в настройках выбран способ построения маршрута «По дорогам» и включена галочка «Есть платный ключ „API Получения деталей маршрута“». Для новых пользователей Яндекса этот API платный.

В разделе «Подключенные продукты» видно, какие API уже подключены к вашему аккаунту, их статус, тариф («Бесплатный» / «Бесплатный с ограничениями» / платный) и сколько запросов израсходовано за сегодня. Недостающий API добавляется кнопкой «Подключить API». Проверяйте эту страницу, если расчёт внезапно перестал работать: скорее всего, исчерпана суточная квота запросов.
Затем свяжите полученные API на одном ключе в разделе «Ключи». Раньше это делалось через окно «Выберите API», теперь привязка живёт в меню-троеточии (⋯) справа от строки ключа:
- Найдите в списке нужный ключ (обычно тот, у которого продукт JavaScript API).
- Нажмите ⋯ в правой части строки.
- Выберите «Привязать продукт» и отметьте нужный API — API Геокодера, API Геосаджеста, API Получения деталей маршрута.
- Повторите для каждого API, который вам нужен. Лишний сервис можно убрать пунктом «Отвязать продукт».

В колонке «Продукт» видно, какие API уже привязаны к ключу и активны ли они. Ключ со статусом «Не настроен» у какого-либо продукта работать с этим API не будет — откройте ⋯ → «Настроить» и завершите настройку.
Способ построения маршрута и платный ключ
Расстояние до клиента модуль считает одним из трёх способов. По умолчанию маршрут строится линейно (от точки до точки), и «API Получения деталей маршрута» тогда не нужен вовсе. Способ выбирается в настройках модуля — «Сервис → Расчет стоимости доставки по зонам → Настройки → Доставка», блок «Настройки расчёта стоимости».

| Способ построения маршрута | Галочка «Есть платный ключ» | Кто строит маршрут | Что нужно от Яндекса |
|---|---|---|---|
| Линейный от точки до точки | не важна | Модуль (прямая линия) | Только JavaScript API и API Геокодера |
| По дорогам | включена | Яндекс | Дополнительно API Получения деталей маршрута |
| По дорогам | выключена | OpenStreetMap | Ничего дополнительно, карта остаётся Яндекса |
Внимание
Старый ключ пакета «JavaScript API и HTTP Геокодер» — галочку включите: маршрутизация в такой ключ уже входит. Новый ключ — галочку не включайте: маршрут по дорогам будет строиться по данным OpenStreetMap бесплатно.
Галочка включена — маршрут строит Яндекс. К ключу должен быть привязан «API Получения деталей маршрута», иначе расчёт вернёт ошибку scriptError и стоимость доставки не посчитается.
Галочка выключена — маршрут строится по данным OpenStreetMap, карта остаётся Яндекса. Дополнительные ключи не нужны.
Ключ DaData
Если используете подсказки DaData (вместо Яндекс Геосаджеста), получите ключ для пакета DaData — он не связан с ключами Яндекса.
Сохранение API-ключей
Сохраните полученные ключи в административной части вашего сайта в разделе “Сервис → Расчет стоимости доставки по зонам → Настройки”.
- В разделе Доставка вставьте ваш ключ Яндекс.Карт в поле «API-ключ Яндекс.Карт (JavaScript API)». Этого одного ключа достаточно для карты, геокодирования адресов и построения маршрутов — при условии, что к нему привязаны нужные API (см. выше).
- В разделе Подсказки выберите нужные подсказки и вставьте соответствующий API-ключ. Для подсказок Яндекса — поле API ключ Яндекс Геосаджеста, для подсказок DaData — поле API ключ DaData.
Внимание
Ограничьте API-ключи по HTTP Referer / разрешённому домену в кабинете провайдера — ключ Яндекс.Карт в разделе «Ключи» Кабинета разработчика Яндекса, а ключ DaData — в профиле DaData. Эти ключи работают на стороне клиента (карта, подсказки адресов, геокодирование и построение маршрутов выполняются в браузере), поэтому видны в исходном коде страницы. Именно ограничение по Referer/домену не даёт использовать ваши ключи на чужих сайтах.
Шаг 2. Подключите API
Для корректной работы модуля необходимо подключить Яндекс.Карты на вашем сайте, добавив тег <script>, который загрузит на страницу JS API.
<script src="https://api-maps.yandex.ru/2.1/?apikey=YOUR_MAP_API_KEY&suggest_apikey=YOUR_SUGGEST_API_KEY&lang=ru_RU"></script>
Важно проверить
Внимание
Проверьте, не подключены ли Яндекс.Карты уже на вашем сайте, так как повторное подключение не рекомендуется. Убедитесь, что карты не подключаются другим модулем.
Способы подключения
Подключение в компоненте sale.order.ajax
Вы можете добавить подключение внутри компонента sale.order.ajax. В файле template.php найдите строку с подключением Яндекс.Карт:
<script src="<?=$scheme?>://api-maps.yandex.ru/2.1/?lang=<?=$locale?>"></script>
и замените на:
<?php
$apiKey = htmlspecialcharsbx(Bitrix\Main\Config\Option::get('fileman', 'yandex_map_api_key', ''));
$apiKeyGeoSuggest = htmlspecialcharsbx(Bitrix\Main\Config\Option::get('corsik.yadelivery', 'api_key_geoSuggest'));
?>
<script src="<?= $scheme ?>://api-maps.yandex.ru/2.1/?lang=<?= $locale ?><?= $apiKey ? "&apikey=$apiKey" : "" ?><?= $apiKeyGeoSuggest ? "&suggest_apikey=$apiKeyGeoSuggest" : "" ?>"></script>
Подключение с помощью метода модуля
Модуль предоставляет публичный API Asset::addYandexMapLink(), который подключает Яндекс.Карты с нужными ключами (API-ключ + ключ подсказок) на вашей странице.
Пример подключения в <head> вашего сайта (модуль 26.3.2+):
if (Bitrix\Main\Loader::includeModule('corsik.yadelivery'))
{
Corsik\YaDelivery\Public\Service\Asset::addYandexMapLink();
}
Если нужен сам тег или URL без подключения — Asset::getYandexMapLink() / Asset::getYandexMapLink(true).
В версиях модуля до 26.3.2 используйте устаревший аналог — Corsik\YaDelivery\Handler::getYandexMapLink():
if (Bitrix\Main\Loader::includeModule('corsik.yadelivery'))
{
Bitrix\Main\Page\Asset::getInstance()->addString(Corsik\YaDelivery\Handler::getYandexMapLink(), true);
}
Автоматическое подключение
Если вы не выполнили ни один из пунктов по подключению <script>, модуль в течение 5 секунд ожидает подключения и загрузки Яндекс.Карт. Если карты не будут подключены, модуль подключит их автоматически с нужными ключами. Однако, если ранее были подключены Яндекс.Карты без ключей, расчет не будет работать.
Шаг 3. Выберите нужные настройки и сохраните их
Перейдите в настройки модуля “Сервис → Расчет стоимости доставки по зонам → Настройки”. Примените нужные настройки модуля, перейдя в разделы Доставки, Подсказки, Дополнительные поля, Визуальные настройки.
Шаг 4. Создание складов и зон доставки
Перейдите в модуль “Сервис → Расчет стоимости доставки по зонам”.
- В разделе Зоны доставки создайте нужную зону доставки или используйте предустановленные.
- В разделе Склады добавьте ваш склад и выберите зону доставки, в которой он находится.
Шаг 5. Создание профиля доставки
Служба и профиль доставки создаются во время установки модуля. Вам необходимо выбрать внутри профиля доставки нужный склад, с которого будет осуществляться доставка.