Подключение магазина на OpenCart к ILFF
Смотрите также: Виджет доставки для корзины · API ILFF · Все модули для CMS
Расширение ILFF связывает ваш магазин на OpenCart с сервисом ILFF:
- в оформлении заказа появляются способы доставки ILFF: до двери и в пункт выдачи, с ценой и сроком;
- заказ с доставкой ILFF сам уходит в ILFF, когда получает выбранный вами статус;
- трек-номер и статус заказа возвращаются в магазин;
- остатки, вес и габариты товаров передаются из ILFF в магазин;
- отмена заказа в магазине отменяет заявку в ILFF.
Обмен всегда начинает магазин: расширение само обращается к сервису ILFF по ключу API, открывать магазин для нас не нужно.
Нужны OpenCart 4.0.2 или новее, PHP 8 с расширением curl, права администратора магазина, доступ к серверу для настройки cron и доступ к личному кабинету ILFF. Подключение занимает 15–20 минут.
Шаг 1. Подключение в личном кабинете ILFF
Личный кабинет → вкладка Интеграции → раскройте блок Интернет-магазин.
- Платформа — выберите OpenCart.
- Адрес магазина — адрес сайта, например
shop.ru. - Флажок Заказ с несвязанным товаром ждёт привязки: если он включён, заказ с товаром, который ещё не связан с вашим товаром в ILFF, не принимается, пока вы его не свяжете (шаг 5). Рекомендуем оставить флажок включённым.
- Нажмите Подключить. Кабинет создаст подключение. К магазину он при этом не обращается: связь проверит расширение на шаге 3.
Вверху вкладки Интеграции показан Ключ API. Если его нет, нажмите Сгенерировать. Ключ понадобится на шаге 3. Никому его не пересылайте: по нему сервис ILFF узнаёт ваш магазин.
Шаг 2. Установка расширения
- Скачайте архив
ilff.ocmod.zipсо страницы модуля на сайте ILFF или получите его у менеджера. Имя архива не меняйте: по нему OpenCart определяет код расширения. - В админке откройте Расширения → Установщик и загрузите архив, затем нажмите Установить в строке ILFF.
- Откройте Расширения → Расширения, выберите тип Доставка, найдите ILFF: доставка и обмен заказами и нажмите Установить (зелёная кнопка), затем Изменить (карандаш).
При установке расширение само:
- создаёт таблицы очереди заказов;
- подключает обработчики событий: запоминание тарифа заказа, отправку и отмену заказа по статусу, окно выбора пункта выдачи на странице оформления;
- создаёт задание ILFF: заказы, трек, статусы, остатки во встроенном cron OpenCart (Расширения → Cron Jobs), раз в час.
Шаг 3. Настройки расширения
- Адрес сервиса ILFF — уже заполнен, менять не нужно.
- Ключ API клиента ILFF — ключ из шага 1. После сохранения поле остаётся пустым, сохранённый ключ не показывается. Чтобы поменять только настройки, оставьте поле пустым.
- Статус, при котором заказ уходит в ILFF — например «В обработке» (Processing). Заказ уходит при переходе в этот статус. Если вы проверяете заказ или ждёте оплату, выберите статус, в который переводите заказ после проверки.
- Статусы отмены — отметьте статусы, при которых заказ отменён, обычно «Отменён» (Canceled). Переход в такой статус отменяет заявку в ILFF.
- Статусы сайта для статусов ILFF. Значение «Не менять» оставляет статус заказа как есть:
| Настройка | Статусы ILFF |
|---|---|
| Статус сайта: передан в доставку | Передан в КС |
| Статус сайта: доставлен | Доставлен клиенту, Выдан, Частичная выдача |
| Статус сайта: отменён | Отменен, Аннулирован |
| Статус сайта: возврат | Возврат принят, Полный отказ |
При первой установке расширение выставляет статусы само: заказ уходит в ILFF в статусе Processing, по ILFF ставятся Shipped (передан в доставку), Complete (доставлен), Canceled (отменён) и Refunded (возврат). Их можно поменять.
- Коды способов оплаты при получении — через запятую. По умолчанию
cod(стандартный способ «Оплата при доставке»). Наложенный платёж в заявке будет только у этих способов, остальные заказы считаются предоплаченными. - Получать остатки из ILFF — в количество товаров записываются свободные остатки: остаток на складе ILFF за вычетом резерва и заказов, которые ещё не дошли до ILFF. Товар в зоне приёмки склада в остаток не входит, пока его не разместили.
- Получать вес и габариты товаров — вес (кг) и размеры (см) товаров из ILFF записываются в товары, только там, где они у нас заполнены.
- Упрощённый адрес для России (по умолчанию включено) — в оформлении скрыты страна (всегда Россия), регион, «Компания» и «Адрес, строка 2». Поле «Город» стоит перед улицей и подсказывает города, регион и индекс заполняются по выбранному городу. В оценке доставки корзины остаётся только индекс.
- Доставка в карточке товара (по умолчанию выключено) — под кнопкой «В корзину» показывается цена доставки курьером и в пункт выдачи «от» для города покупателя.
- Окно выбора пункта выдачи — «Виджет ILFF» (по умолчанию: карта, службы и цены) или «Простое окно». Для виджета укажите Код клиента ILFF для виджета из личного кабинета и добавьте домен магазина в список доменов виджета в кабинете. Без кода открывается простое окно. Вариант настроек калькулятора — код варианта из личного кабинета ILFF, например
site2, если для этого сайта заведены свои настройки доставки. Пусто — настройки по умолчанию. Пороги бесплатной доставки («Бесплатно для получателя от суммы товаров») задаются в личном кабинете ILFF, когда сумма товаров дошла до порога, модуль показывает доставку как «Бесплатно». - Адрес подсказки городов — необязательно. Пусто — подсказка берётся с сервиса ILFF рядом с адресом сервиса.
- Геозона — если доставка ILFF нужна не везде, выберите геозону. Статус — включите. Порядок сортировки — место способа среди других.
- Отметьте Передать список товаров сейчас и нажмите Сохранить и проверить связь. Вверху появится «Связь с ILFF есть, клиент: …», число переданных товаров и, если включены остатки, число обновлённых остатков.
Шаг 4. Оформление заказа
- Для расчёта нужен адрес доставки: город и улица с домом. При упрощённом адресе для России страна и регион заполняются сами. В оценке доставки корзины город берётся по индексу; если его не определить, вместо цены показывается «рассчитаем при оформлении».
- Доставка до двери ILFF показывается с ценой и сроком самого дешёвого тарифа.
- Пункт выдачи ILFF: под кнопкой выбора способа доставки появляется кнопка Выбрать пункт выдачи ILFF. Она открывает список и карту пунктов города. После выбора пункта способы доставки обновятся, и в них появится «Пункт выдачи ILFF: адрес» с ценой и сроком.
- Отключите способы доставки магазина с фиксированной ценой, если доставку выполняет ILFF.
- Оформите пробный заказ с доставкой ILFF, переведите его в статус отправки и убедитесь, что заказ пришёл в ILFF.
Шаг 5. Привязка товаров
В личном кабинете ILFF кнопка Товары магазина в блоке «Интернет-магазин» показывает товары магазина, переданные расширением, и их связь с вашими товарами в ILFF. Связь подбирается сначала по штрихкоду (поле EAN, если пусто — UPC), затем по артикулу (поле SKU, если пусто — модель).
| Статус | Что делать |
|---|---|
| Связан | Ничего, связь сохранена |
| Подобран | Проверьте и подтвердите |
| Несколько совпадений | Выберите нужный товар вручную |
| Не найден | Выберите товар вручную или заполните в магазине EAN или SKU |
Размеры и цвета можно вести двумя способами:
- Варианты OpenCart 4 (рекомендуем). Каждый размер или цвет — отдельный вариант товара со своими EAN и SKU. Связь подбирается по штрихкоду сама, остаток и заказ идут по варианту.
- Опции товара. Один товар со списком значений (например, «Размер: S, M, L»). У значения опции нет своего штрихкода, поэтому в «Товарах магазина» каждое значение показывается отдельной строкой «Товар / Опция: значение», и его нужно один раз связать с вашим товаром вручную. После этого остаток ILFF записывается в количество значения опции, а заказ с этим значением приходит в ILFF с нужным товаром. Непривязанное значение опции не подменяется основным товаром: такой заказ ждёт привязки.
Если заказ ждёт привязки, вверху вкладки Интеграции появляется плашка с числом таких заказов, а в блоке «Интернет-магазин» — таблица с заказами и товарами. После привязки расширение досылает заказ само.
Если в городе покупателя нет пунктов выдачи или отделений Почты, окно выбора пункта (виджет ILFF) открывает карту в точке адреса и показывает ближайшие пункты соседних городов с расстоянием; цена считается до выбранного пункта. Если улицы нет в справочнике адресов (сёла, новые улицы), цена курьера считается по городу.
Отмена заказа
Переход заказа в статус отмены (шаг 3) отменяет заявку в ILFF, пока её не передали в службу доставки; собранный заказ вернётся на хранение. Если заявка уже у службы доставки, которая принимает отмену (Dalli, 5Post), отмена передаётся ей, а заказ возвращается на склад. У других служб заявка в работе сама не отменяется: в истории заказа появится запись «ILFF: Заявка уже в работе…», свяжитесь с менеджером.
Шаг 6. Cron
Задание ILFF выполняется встроенным cron OpenCart раз в час:
- досылает заказы, которые не ушли сразу (после сбоя связи или из ожидания привязки): через 1, 5, 15, 60 и 180 минут, но не чаще запуска задания;
- забирает трек-номера и статусы заказов: трек записывается комментарием в историю заказа, статус меняется по таблице из шага 3;
- обновляет остатки, вес и габариты;
- раз в сутки передаёт список товаров и сверяет все остатки.
Встроенный cron OpenCart запускается системным cron сервера. Добавьте на сервере задание, которое раз в 5–15 минут вызывает cron OpenCart (команду показывает OpenCart на странице Расширения → Cron Jobs). Без него трек-номера, статусы и остатки обновляться не будут. Заказы уходят в ILFF сразу при смене статуса и без cron.
В OpenCart 4.1.0.4 запуск php cron.php из командной строки может завершаться ошибкой ядра («Class Twig\Loader\FilesystemLoader not found»). Тогда вызывайте cron через адрес магазина, например curl -s https://ваш-магазин/index.php?route=cron/cron.
Обновление расширения
Установщик OpenCart 4 не ставит архив поверх уже установленного расширения («Расширение уже установлено!» или «Путь ilff/ уже существует!»). Поэтому обновляйте так:
- Скачайте новый архив
ilff.ocmod.zipс этой страницы и распакуйте его на компьютере. - Скопируйте содержимое архива по FTP или через панель хостинга в каталог
extension/ilff/магазина поверх старых файлов. Настройки расширения сохраняются. - Если в новой версии появились события (например, для карточки товара или корзины), откройте настройки расширения и нажмите Сохранить и проверить связь: недостающие события добавятся сами.
Другой путь — удалить расширение в Расширения → Доставка и в Установщике и поставить новый архив заново. При этом настройки придётся ввести снова.
Если что-то не работает
| Сообщение или симптом | Причина и решение |
|---|---|
| «Связи с ILFF нет: Неверный ключ API» | Ключ введён с ошибкой или заменён. Скопируйте ключ из личного кабинета и сохраните настройки |
| «Связи с ILFF нет: В личном кабинете ILFF не подключён магазин OpenCart» | Не выполнен шаг 1: выберите платформу OpenCart и нажмите «Подключить» |
| «Связи с ILFF нет: Сервис ILFF не ответил» | Сервер магазина не может обратиться к ILFF: проверьте исходящие соединения по HTTPS на порт 8443 и расширение curl в PHP |
| В оформлении нет способов доставки ILFF | Проверьте статус расширения, геозону и адрес доставки: город и регион должны быть заполнены |
| «Не удалось разобрать адрес» | В адресе доставки нет города или улицы с домом |
| Нет кнопки «Выбрать пункт выдачи ILFF» | Проверьте, что расширение установлено и включено и что в Расширения → События включено событие ilff_checkout. Если тема оформления своя, кнопка может не найти место: сообщите менеджеру |
| Заказ не пришёл в ILFF | Проверьте статус заказа и настройку «Статус, при котором заказ уходит в ILFF», строку «Очередь заказов» в настройках и блок «ждут привязки» в кабинете. Заказ должен быть с доставкой ILFF |
| Трек-номер и статус не приходят | Не настроен cron сервера (шаг 6): смотрите «последний запуск» в настройках расширения |
| Остаток в магазине не совпадает с остатком в кабинете | В магазин уходит свободный остаток: без резерва, неотправленных заказов и товара в приёмке |
| Вместо виджета открывается простое окно со списком | Не указан код клиента для виджета или домен магазина не добавлен в список доменов виджета в личном кабинете |
php cron.php: «Class Twig\Loader\FilesystemLoader not found» | Ошибка ядра OpenCart 4.1.0.4 при запуске из командной строки. Вызывайте cron через адрес магазина (шаг 6) |
По остальным вопросам обращайтесь к вашему менеджеру ILFF.