партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
В начале 2026 года компания iiko сообщила своим пользователям, что использовавшийся ранее формат передачи адреса доставки с заказом объявлен устаревшим и с 01.05.2026 г. заказы с адресом в таком формате не будут приниматься api iikoTransport. Далее я расскажу вам что необходимо сделать, чтобы заказы из 1С-Битрикс при помощи модуля Интеграция с iiko по-прежнему уходили в iiko.
[spoiler]
Для начала, необходимо проверить, что версия модуля Интеграция с iiko 6.0.0 или выше, и при необходимости, установить обновления, а если срок активной поддержки модуля закончился, необходимо приобрести продление (вам также понадобится активная лицензия 1С-Битрикс).

Как быстро возобновить отправку заказов в iiko, если они перестали приниматься из-за нового формата адреса.

После установки обновления 6.0.0 модуля Интеграция с iiko, сама логика его работы не меняется, но теперь становится включенным режим совместимости, который и появляется в данной версии в настройках модуля на вкладке "Адреса и зоны" (до версии 6.0.0 вкладка называлась "Синхронизация адресов").



Чтобы просто возобновить отправку заказов в iiko без каких-либо дополнительных действий, переключите данную опцию ("Формат адреса") на "Использовать новый формат с устаревшим справочником адресов". При этом будет использоваться старый справочник улиц, который был загружен в ранее в базу данных сайта, но при отправке заказов будет использоваться новый формат адреса. Минус данного способа в том, что чтобы вы не меняли в iikoOffice относительно улиц, данные в api iikoTransport не изменятся, они были заморожены компанией iiko на состояние от февраля 2026 года.

Полноценный переход на новый формат адреса

С версии 6.0.0 модуля справочник улиц больше не будет обновляться из айко (но тот, что был загружен ранее, останется в базе данных), но теперь появилась синхронизация зон доставки, поэтому для начала необходимо выполнить их синхронизацию нажав "Запланировать сейчас", а если у вас в api iikoTransport несколько ресторанов (организаций), то необходимо нажимать "Запланировать сейчас" столько раз, сколько ресторанов, каждый раз дожидаясь окончания синхронизации и повторного появления кнопки "Запланировать сейчас". В результате, на всех ресторанах должны появится зоны доставки (где они были настроены в iiko):



Получение API-ключа Dadata

Теперь подсказки адресов работают через сервис Dadata, поэтому необходимо зарегистрироваться здесь, получить API-ключ в личном кабинете, после чего установить его в настройках модуля на той же вкладке "Адреса и зоны" (секретный ключ не нужен). На данный момент сервис предоставляет до 10 000 подсказок адреса в день бесплатно, при большем количестве будет необходимо заплатить.

Обновление шаблонов компонентов

Самые большие изменения претерпел шаблон компонента grain:iiko.location (он вызывается из grain:iiko.order), и его шаблон очень маленький, поэтому расписывать изменения я здесь не буду, просто скажу, что шаблон grain:iiko.location, если он у вас изменен, придется интегрировать заново, предварительно скопировав из системного шаблона.

Далее про модификацию шаблона компонента grain:iiko.order (изменился только файл template.php):

1. После строки

<input type="hidden" name="showAdditionalProps" value="<?=$arParams['SHOW_ADDITIONAL_PROPS']?'Y':'N'?>" />

добавляем следующий код

<?php foreach($arResult['propertyList'] as $propGroup):

   foreach(
$propGroup['PROPS'] as $property):
      if(
$property['UTIL']!='Y')
         continue;
      
?>
      <input id="<?=$property['iikoRelation']?'prop_'.$property['iikoRelation']:'prop'.$property['ID']?>" type="hidden" name="prop<?=$property['ID']?>" value="<?=$property['DEFAULT_VALUE']?>" />
   <?php endforeach;
endforeach; 
2. Проверяем наличие следующей строки:

$property['UTIL']=='Y'

а если ее нет, то вставляем ее перед строкой

$property['iikoRelation']=='street'

предварительно добавив перед ней ||, т.е. чтобы получилось

|| $property['iikoRelation']=='street'

т.е. в результате должно получится так:

if(

   
$property['UTIL']=='Y'
   
|| $property['iikoRelation']=='street'
   
|| ($property['iikoRelation']=='delivery_terminal_id' && count($arResult['deliveryTerminals'])<=0)
)
   continue;

Изменение свойств заказа и отключение режима совместимости настроек

Необходимо перейти в административной части Магазин > Настройки > Свойства заказа > Список свойств и:

1. Создать свойство "Координаты" с символьным кодом "COORDS" типа "Строка", (важно!) установить галочки "Активность" и "Служебное". Т.к. свойство служебное, и выводится оно не будет, ограничения можно не указывать.

2. Если у вас в параметрах grain:iiko.order установлена галочка "Показывать дополнительные свойства", необходимо деактивировать свойства "Город", "Дом", "Корпус" (обычно у них символьные коды "CITY", "HOME", "HOUSING"). Теперь поменяйте в настройках модуля на вкладке "Адреса и зоны" опцию "Формат адреса" на "Использовать новый формат". Если что-то пойдет не так, можно вернуться к режиму "Использовать новый формат с устаревшим справочником адресов", вернув активность данных свойств, при этом отключать активность свойства "Координаты" нет необходимости.

Настройки со стороны iiko

Если после перехода на новый формат адреса у вас некорректно отображается адрес заказов в iiko, попробуйте выполнить следующая (информация из открытых источников компании iiko):
Авторизуйтесь в iikoOffice, перейдите в раздел "Администрирование"- "Настройки торгового предприятия". Выберите нужное предприятие, перейдите во вкладку "Общие настройки" и в конце страницы найдите поля «Использовать новый формат доставки» и «Использовать подсказки в строке адреса» и установите галочки.
Некоторые особенности нового формата адресов

Если у вас существует доставка вне административных границ городов и поселков, которые явно указаны в iiko как города, то такие адреса невозможно будет выбрать в процедуре заказа. Это связано с тем, что для ограничения области для сервиса Dadata именно те самые города из iiko. Решить эту проблему можно двумя способами:
  1. Добавить такие населенные пункты в iiko как города и провести синхронизацию зон доставки
  2. Если по какой-то причине это сделать невозможно или затруднительно, вы можете воспользоваться событием модуля OnAddressSuggestDadata (третий пример здесь)

Что вы получите еще, кроме того, что заказы продолжат уходить в версии модуля 6.0.0


В данной версии меняется механизм автоматического расчета стоимости доставки (а он необходим даже если у вас доставка бесплатная, но несколько терминальных групп для доставки). Если раньше он производился запросом к api iikoTransport, то теперь полностью рассчитывается на вашем сайте, что важно, если у вас достаточно много заказов, т.к. способ, который использовался раньше, считается устаревшим в api iikoTransport, и компания может вводить ограничение на использование данного метода (/api/1/delivery_restrictions/allowed).  

Чтобы оставить сообщение, авторизуйтесь, или войдите с помощью: