Модули для интернет-магазинов

Подключение магазина на MODX Revolution + miniShop2 к ILFF

Смотрите также: Виджет доставки для корзины · API ILFF · Все модули для CMS

Скачать модуль ilff-1.0.0-pl.transport.zip

Модуль «ILFF» связывает ваш магазин на MODX Revolution с miniShop2 с сервисом ILFF:

  • в оформлении заказа появляются способы доставки ILFF: курьер до двери, пункт выдачи с выбором на карте и Почта России, с ценой и сроком;
  • заказ с доставкой ILFF сам уходит в ILFF, когда получает выбранный вами статус;
  • трек-номер и статус заказа возвращаются в магазин;
  • остатки и вес товаров передаются из ILFF в магазин;
  • отмена заказа в магазине отменяет заявку в ILFF.

Обмен всегда начинает магазин: модуль сам обращается к сервису ILFF по ключу API, открывать магазин для нас не нужно.

Нужны:

  • MODX Revolution 2.8 (MODX 3 пока не поддерживается: miniShop2 4 работает только на MODX 2);
  • miniShop2 4 и pdoTools (ставятся вместе с miniShop2);
  • PHP 7.2 или новее с расширением curl (проверено на PHP 8.2);
  • валюта магазина — российский рубль: ILFF считает доставку и суммы заказа в рублях;
  • оформление заказа сниппетом msOrder (стандартное оформление miniShop2, подробнее — в шаге 4);
  • доступ к админке MODX с правами администратора, к cron сервера (или хостинга) и к личному кабинету ILFF.

Подключение занимает 20–30 минут.

Шаг 1. Подключение в личном кабинете ILFF

Личный кабинет → вкладка Интеграции → раскройте блок Интернет-магазин.

  1. Платформа — выберите MODX (miniShop2).
  2. Адрес магазина — адрес сайта, например shop.ru.
  3. Флажок Заказ с несвязанным товаром ждёт привязки: если он включён, заказ с товаром, который ещё не связан с вашим товаром в ILFF, не принимается, пока вы его не свяжете (шаг 6). Рекомендуем оставить флажок включённым.
  4. Нажмите Подключить. Кабинет создаст подключение. К магазину он при этом не обращается: связь проверит модуль на шаге 3.

Вверху вкладки Интеграции показан Ключ API. Если его нет, нажмите Сгенерировать. Ключ понадобится на шаге 3. Никому его не пересылайте: по нему сервис ILFF узнаёт ваш магазин. Там же — код клиента для виджета выбора пункта; добавьте домен магазина в список доменов виджета.

Шаг 2. Установка модуля

  1. Скачайте пакет ilff-1.0.0-pl.transport.zip со страницы модуля на сайте ILFF или получите его у менеджера. Распаковывать пакет не нужно.
  2. В админке MODX откройте Пакеты → Установщик, нажмите стрелку рядом с кнопкой Загрузить пакеты → Загрузить пакет, выберите файл и нажмите Загрузить.
  3. В списке пакетов у строки ilff нажмите Установить и подтвердите установку.

Установщик сам:

  • создаёт таблицу очереди заказов;
  • добавляет плагин ILFF, системные настройки ILFF и пункт меню Приложения → ILFF;
  • создаёт три способа доставки miniShop2: Курьер ILFF, Пункт выдачи ILFF, Почта России (ILFF) — и разрешает для них все включённые способы оплаты.

Шаг 3. Настройки модуля

Настройки → Системные настройки, в фильтре пространства имён выберите ilff. Значение меняется двойным щелчком по ячейке.

Подключение

  1. Ключ API ILFF — ключ из шага 1.
  2. Адрес сервиса ILFF — уже заполнен, менять не нужно.
  3. Код клиента для виджета — код из личного кабинета. Без кода выбор пункта выдачи на карте не работает и способ «Пункт выдачи ILFF» не рассчитывается.
  4. Вариант настроек калькулятора — код варианта из личного кабинета ILFF, например site2, если для этого сайта заведены свои настройки доставки. Пусто — настройки по умолчанию. Пороги бесплатной доставки («Бесплатно для получателя от суммы товаров») задаются в личном кабинете ILFF: когда сумма товаров дошла до порога, модуль показывает доставку как «Бесплатно».
  5. Адрес подсказки городов — необязательно. Пусто — берётся с сервиса ILFF рядом с адресом сервиса.

Заказы и статусы. Статусы и способы оплаты указываются номерами (ид) из Магазин → Настройки (вкладки «Статусы» и «Способы оплаты»), несколько — через запятую:

  1. Статусы отправки заказа в ILFF — по умолчанию 2 («Оплачен»). Заказ уходит при переходе в этот статус. Если вы проверяете заказ вручную, укажите статус, в который переводите заказ после проверки.
  2. Статусы отмены — по умолчанию 4 («Отменён»). Переход отправленного заказа в такой статус отменяет заявку в ILFF.
  3. Способы оплаты при получении — по умолчанию 1. Такие заказы уходят в ILFF с наложенным платежом, остальные считаются предоплаченными.

Статусы заказа по статусам ILFF. Пусто — статус заказа не меняется:

НастройкаСтатусы ILFFПо умолчанию
Статус «Передан в доставку»Передан в КС3 («Отправлен»)
Статус «Доставлен»Доставлен клиенту, Выдан, Частичная выдачане менять
Статус «Отменён»Отменен, Аннулирован4 («Отменён»)
Статус «Возврат»Возврат принят, Полный отказне менять

Статуса «Доставлен» в miniShop2 по умолчанию нет: добавьте его на вкладке «Статусы» и укажите его номер. Письма покупателю при смене статуса отправляет miniShop2 по настройкам самого статуса.

Остатки и вес

  1. Получать остатки из ILFF — в поле «Остаток» товара записывается свободный остаток: остаток на складе ILFF за вычетом резерва и заказов, которые ещё не дошли до ILFF. Товар в зоне приёмки склада в остаток не входит, пока его не разместили.
  2. Получать вес товаров из ILFF — вес, измеренный на складе ILFF, записывается в поле «Вес» товара (в килограммах), только там, где он у нас заполнен.
  3. Получать вес и габариты заказа — вес, габариты и число мест собранного заказа сохраняются в свойствах заказа.

После настройки откройте Приложения → ILFF и нажмите Проверить связь: появится «Связь с ILFF есть». Затем нажмите Передать товары в ILFF: товары уйдут в ILFF для привязки (шаг 6).

Шаг 4. Способы доставки и оформление заказа

Способы доставки. Магазин → Настройки → Доставка:

  • Курьер ILFF — доставка до двери самой дешёвой службой с ценой и сроком, например «Курьер ILFF — 603 ₽, СДЭК (от 2 до 3 дней)». Если покупатель выбрал службу на вкладке «Курьер» виджета, считается она.
  • Пункт выдачи ILFF — пункты выдачи, постаматы и отделения Почты России с выбором на карте.
  • Почта России (ILFF) — Почта по адресу покупателя (посылка в отделение по индексу или курьер Почты), если сервис ILFF считает Почту для вашего магазина.

Название, описание, порядок и логотип способа можно менять; поля Класс-обработчик (ilffDeliveryHandler) и Свойства ({"ilff":"door"}, {"ilff":"pickup"}, {"ilff":"post"}) не меняйте — по ним модуль понимает, что это доставка ILFF. Ненужный способ выключите. Цену, «Стоимость за единицу веса» и «Бесплатно от» у способов ILFF не заполняйте: цену считает ILFF. В поле Обязательные поля указаны поля оформления, без которых способ не рассчитать; добавлять их можно, убирать город не нужно. Способы доставки магазина с фиксированной ценой выключите, если доставку выполняет ILFF.

Оформление заказа. Модуль работает со стандартной страницей оформления: ресурс со сниппетом [[!msOrder]] и формой #msOrder из чанка miniShop2 (поля «Город», «Область», «Индекс», список способов доставки #deliveries с полями delivery). На такой странице модуль сам подключает свой скрипт и стили. В шаблоне сайта должен быть подключён jQuery (его использует и miniShop2). Если форма оформления у вас переделана, сохраните у способов доставки поле <input name="delivery" id="delivery_<номер>"> внутри <label> и поля адреса с теми же именами.

Шаг 5. Что видит покупатель

  1. Покупатель заполняет город (и, если есть, область и индекс). Цена курьера и пунктов выдачи считается по городу, улица в расчёт не идёт: она уходит в ILFF вместе с заказом. Цены у способов ILFF обновляются после изменения города, области или индекса.
  2. Курьер ILFF — цена, служба (срок).
  3. Пункт выдачи ILFF — выберите пункт на карте: от N ₽: до выбора пункта показывается нижняя граница цены по городу. Под способом — заметная синяя кнопка Выбрать пункт на карте. Выбор этого способа тоже сам открывает карту.
  4. В окне виджета ILFF покупатель выбирает пункт выдачи, постамат или отделение Почты на карте или в списке. После выбора под способом появляется адрес пункта, у способа — точная цена и срок, итог заказа пересчитывается. Кнопка под ним — Изменить пункт выдачи.
  5. На вкладке «Курьер» виджета можно выбрать службу курьера и ввести адрес: выберется способ «Курьер ILFF» этой службы, а адрес подставится в поле «Улица».
  6. Если покупатель сменил город, выбранный пункт сбрасывается, и способ снова предлагает выбрать пункт на карте.
  7. Оформить заказ с пунктом выдачи без выбранного пункта нельзя: появится сообщение «Выберите пункт выдачи». Если по адресу доставка ILFF не считается, у способа написано «не доставляем по этому адресу», и заказ с ним не оформится.

Если в городе покупателя нет пунктов выдачи или отделений Почты, виджет открывает карту в точке адреса и показывает ближайшие пункты соседних городов с расстоянием; цена считается до выбранного пункта.

Пункт выдачи, тариф и код пункта сохраняются в заказе. Оформите пробный заказ с доставкой ILFF, переведите его в статус отправки и убедитесь, что заказ пришёл в ILFF.

Шаг 6. Привязка товаров

В личном кабинете ILFF кнопка Товары магазина в блоке «Интернет-магазин» показывает товары магазина, переданные модулем, и их связь с вашими товарами в ILFF. Связь подбирается сначала по штрихкоду, затем по артикулу:

  • штрихкод — ТВ-параметр ilff_barcode (или barcode, ean), если он есть у товаров. В miniShop2 нет поля штрихкода: создайте ТВ ilff_barcode (тип «Текст»), откройте ему доступ к шаблону товаров и заполните;
  • артикул — поле Артикул товара miniShop2.
СтатусЧто делать
СвязанНичего, связь сохранена
ПодобранПроверьте и подтвердите
Несколько совпаденийВыберите нужный товар вручную
Не найденВыберите товар вручную или заполните в магазине штрихкод или артикул

Опции товара miniShop2 (цвет, размер) отдельными товарами в ILFF не передаются: если размеры — это разные товары на складе, заведите их отдельными товарами магазина со своими артикулами.

Если заказ ждёт привязки, вверху вкладки Интеграции появляется плашка с числом таких заказов, а в блоке «Интернет-магазин» — таблица с заказами и товарами. После привязки модуль досылает заказ сам.

Заказ в магазине

В окне заказа (Магазин → Заказы) на вкладке «Заказ» в поле Комментарий менеджера появляются записи «ILFF: создана заявка …», «ILFF: заказ ждёт привязки товаров …», «ILFF: трек-номер …» и ответ на отмену. Номер заявки ILFF, состояние обмена, статус ILFF, трек-номер со ссылкой, пункт выдачи и тариф хранятся в свойствах заказа (ключ ilff).

Отмена заказа

Переход заказа в статус отмены (шаг 3) отменяет заявку в ILFF, пока её не передали в службу доставки; собранный заказ вернётся на хранение. Если заявка уже у службы доставки, которая принимает отмену (Dalli, 5Post), отмена передаётся ей, а заказ возвращается на склад. У других служб заявка в работе сама не отменяется: в комментарии менеджера появится запись «ILFF: Заявка уже в работе…», свяжитесь с менеджером.

Задание cron

У MODX нет своего планировщика: добавьте задание в cron сервера (или в планировщик хостинга) раз в 15–60 минут, от пользователя, которому принадлежат файлы сайта. Точная команда — на странице Приложения → ILFF, например:

*/15 * * * * php /var/www/shop/core/components/ilff/cron/cron.php

Задание:

  • досылает заказы, которые не ушли сразу (после сбоя связи или из ожидания привязки): через 1, 5, 15, 60 и 180 минут, но не чаще запуска задания;
  • забирает трек-номера и статусы заказов: трек записывается в комментарий менеджера и свойства заказа, статус меняется по таблице из шага 3;
  • обновляет остатки и вес;
  • раз в сутки передаёт список товаров и сверяет все остатки.

Заказы уходят в ILFF сразу при смене статуса и без задания. Время последних запусков видно на странице Приложения → ILFF; там же кнопка Выполнить обмен сейчас.

Обновление модуля

Загрузите новый пакет так же, как при установке (Пакеты → Установщик → Загрузить пакет) и нажмите Установить у новой версии. Настройки, способы доставки, очередь заказов и данные заказов сохраняются.

Удаление модуля

Пакеты → Установщик → у строки ilff Удалить пакет. Плагин, настройки и пункт меню удаляются, способы доставки ILFF выключаются (не удаляются: на них ссылаются заказы), номера заявок, трек-номера и пункты выдачи в заказах остаются. Строку задания из cron сервера удалите сами.

Если что-то не работает

Сообщение или симптомПричина и решение
«Нет связи с ILFF: Неверный ключ API»Ключ введён с ошибкой или заменён. Скопируйте ключ из личного кабинета в настройку «Ключ API ILFF»
«Нет связи с ILFF: В личном кабинете ILFF не подключён магазин»Не выполнен шаг 1: выберите платформу MODX и нажмите «Подключить»
«Нет связи с ILFF: Сервис ILFF не ответил»Сервер магазина не может обратиться к ILFF: проверьте исходящие соединения по HTTPS на порт 8443 (хостинг может их закрывать) и расширение curl в PHP
У способов ILFF нет цены, написано «укажите город доставки»В форме не заполнен город, или поле города названо не city
У способов ILFF нет никаких надписейСтраница оформления без сниппета msOrder, не подключён jQuery, или в форме нет блока #deliveries; проверьте ключ API (без ключа модуль не подключает скрипт)
Нет кнопки «Выбрать пункт на карте»Не указан код клиента для виджета (шаг 3)
Карта открывается, но пункты не загружаютсяДомен магазина не добавлен в список доменов виджета в личном кабинете ILFF
«Не доставляем по этому адресу»Службы ILFF не возят в этот город с вашими настройками доставки, или в адресе нет города
Заказ не пришёл в ILFFПроверьте статус заказа и настройку «Статусы отправки заказа в ILFF», комментарий менеджера заказа (ошибка обмена) и блок «ждут привязки» в кабинете. Заказ должен быть со способом доставки ILFF
Трек-номер и статус не приходятНе настроено задание cron: смотрите время последних запусков на странице Приложения → ILFF
Остаток в магазине не совпадает с остатком в кабинетеВ магазин уходит свободный остаток: без резерва, неотправленных заказов и товара в приёмке
Цены доставки странныеВалюта магазина не рубль: модуль рассчитан на магазин в рублях

Ошибки обмена модуль пишет в журнал ошибок MODX (Отчёты → Журнал ошибок, строки с [ILFF]) — без ключа API и данных покупателей. По остальным вопросам обращайтесь к вашему менеджеру ILFF.

WeChat

QR-код WeChat

Отсканируйте QR-код в WeChat · 用微信扫码添加

Перезвоним за пару минут

В рабочее время позвоним сразу, в другое время перезвоним утром. Пн–пт с 11:00 до 20:00.