Назад

VibeFox 99Minutos for PrestaShop — Помощь

Требования

PrestaShop: 8.0–9.x.

PHP: 8.0 или новее. Модуль не устанавливается на более старых версиях PHP.

API-ключ 99minutos (только для проверки покрытия): получите его у своего менеджера аккаунта 99minutos или в портале разработчиков 99minutos (developers.99minutos.com). Ключи sandbox и рабочие ключи различаются. Если вы используете только матрицу цен, API-ключ не нужен.

Страны: 99minutos доставляет в Мексику, Колумбию, Чили и Перу. Страны, в которые вы отправляете, должны быть активны в International > Locations.

Лицензионный ключ VibeFox: покупается на vibefox.net. Один ключ работает на одном домене.

Установка

1. В бэк-офисе перейдите в Modules > Module Manager и нажмите Upload a module. Выберите ZIP-архив модуля.

2. Когда загрузка завершится, нажмите Configure или позже найдите VibeFox 99Minutos в списке модулей и нажмите Configure.

3. Введите лицензионный ключ VibeFox в поле License key в блоке лицензии вверху страницы Configure и нажмите Activate (см. Лицензионный ключ).

4. Заполните Price matrix (минимум одна строка, например «* Default») и при необходимости API-ключ и режим проверки покрытия (см. Настройки). Нажмите Save.

При установке модуль создаёт перевозчика 99Minutos с текстом срока доставки Courier delivery. Перевозчик назначается всем зонам и всем группам клиентов. Зоны, группы клиентов, срок доставки, логотип и ограничения по размеру можно изменить в Shipping > Carriers. Зоны Мексики, Колумбии, Чили и Перу должны оставаться включёнными для перевозчика. Не задавайте там цены: цена всегда берётся из модуля.

Настройки

Все настройки находятся на странице модуля: Modules > Module Manager > VibeFox 99Minutos > Configure. У каждого раздела своя кнопка Save, которая сохраняет всю страницу. Каждое сохранение также очищает кэш результатов проверки покрытия. После сохранения страница предупреждает, если матрица цен пуста, если в ней есть строки для стран, которые 99minutos не обслуживает, если выбран режим проверки покрытия без API-ключа или если модуль не знает единицу веса магазина (тогда веса считаются в килограммах). Ничего не сохраняется, и показывается ошибка, если Method title длиннее 64 символов, если поле веса или суммы не является числом от 0 и больше, или если Min weight (kg) больше Max weight (kg). Если страница показывает The 99Minutos carrier was not found — reset the module to create it again., см. раздел Устранение неполадок.

Общие

Enable 99Minutos: включает или выключает перевозчика. Это тот же переключатель, что и статус перевозчика в Shipping > Carriers.

Method title: название перевозчика, которое покупатель видит в корзине и при оформлении заказа. По умолчанию: 99Minutos. Обязательное поле, до 64 символов.

Tax: налоговое правило перевозчика или No tax. С налоговым правилом PrestaShop добавляет налог к цене доставки из матрицы.

API 99minutos (проверка покрытия) (необязательно)

API используется только для проверки, доставляет ли 99minutos по почтовому индексу покупателя. Цена всегда берётся из матрицы.

Coverage check: проверять ли почтовый индекс и как.

Off — matrix price for every postcode: запросы к API не отправляются. По умолчанию.
Strict — show only if the API confirms coverage: перевозчик показывается только тогда, когда API 99minutos подтверждает, что почтовый индекс покрыт. Если API недоступен, индекс не введён или API-ключ не задан, перевозчик скрывается.
Soft — hide if not covered; if the API is unavailable, still show the matrix price: перевозчик скрывается, только если API сообщает, что индекс не покрыт. При ошибках API, без почтового индекса или без API-ключа используется цена из матрицы.

При проверке покрытия перевозчик появляется только после того, как покупатель введёт почтовый индекс. Результаты кэшируются: покрыто на 6 часов, не покрыто на 30 минут, ошибка API на 5 минут. В 99minutos отправляется только почтовый индекс, в верхнем регистре, только буквы и цифры.

API key: ваш API-ключ 99minutos, который передаётся как Bearer-токен на endpoint проверки покрытия 99minutos. Обязателен, когда проверка покрытия включена. После сохранения поле остаётся пустым и показывает Saved — leave empty to keep it. Вводите новое значение, только если хотите его изменить. Ключ сохраняется так, как вы его ввели; удаляются только пробелы по краям.

Remove the saved API key: показывается, только если ключ сохранён. Включите опцию и нажмите Save, чтобы удалить ключ.

Environment: Sandbox (test) (по умолчанию) или Production. Sandbox и production используют разные API-ключи, поэтому выберите среду, которая соответствует вашему ключу.

Тарифы

Цены указаны в валюте по умолчанию вашего магазина, без налогов, и используются так, как введены. Итоговая цена отображается в валюте корзины покупателя.

Price matrix: таблица стран назначения и цен. Нажмите Add country, чтобы добавить строку, и значок корзины для мусора, чтобы удалить её. В каждой строке есть Country (* Default, Мексика, Колумбия, Чили или Перу), Base price и цены для размеров XS (до 1 кг), S (до 2 кг), M (до 3 кг), L (до 5 кг) и XL (более 5 кг). Пустая или нулевая цена размера берётся из Base price. Строка * Default применяется к странам без собственной строки. Если у страны несколько строк, используется первая. Разделителем дробной части принимаются и точка, и запятая; пустые, некорректные или отрицательные цены сохраняются как 0. Пока в матрице нет хотя бы одной строки, перевозчик не показывается при оформлении заказа.

Calculation: Per order — size by the total cart weight (по умолчанию) задаёт одну цену по размеру посылки всей корзины. Per item — each unit priced by its own weight оценивает каждую единицу по размеру её собственного веса и суммирует результаты.

Free shipping: включает бесплатную доставку от суммы корзины.

Free shipping from: промежуточная сумма корзины (после скидок, без налогов), начиная с которой тариф равен 0. Используется, только если включён Free shipping.

Ограничения

Min weight (kg): скрывает перевозчика, если корзина легче. 0 означает без ограничения. Не может быть больше Max weight (kg). Веса товаров пересчитываются из единицы веса вашего магазина.

Max weight (kg): скрывает перевозчика, если корзина тяжелее. По умолчанию: 25. 0 означает без ограничения; пустое поле означает 25 кг.

Minimum subtotal: показывать перевозчика, только если промежуточная сумма корзины (после скидок, без налогов) не меньше этой суммы. Оставьте поле пустым, чтобы показывать всегда.

Restrict countries: предлагать перевозчика только для стран ниже. Это дополнительный фильтр к зонам перевозчика. Полезно, когда одна зона охватывает несколько стран.

Countries: выбор стран 99minutos (Мексика, Колумбия, Чили, Перу). Удерживайте Ctrl (Cmd), чтобы выбрать несколько. Используется, только если включён Restrict countries. Оставьте пустым, чтобы разрешить все страны 99minutos.

Дополнительно

Debug log: записывает расчёты тарифов в logs/vfd_99m_debug.log.php в папке модуля. Файл нельзя открыть из браузера. Ошибки API записываются, даже если опция выключена. API-ключи, имена и адреса покупателей никогда не записываются. Выключите журнал, когда закончите.

Log: показывает размер и последние записи журнала отладки. Нажмите Clear log, чтобы очистить его.

Remove data on uninstall: если включено, при удалении модуля удаляются настройки, перевозчик, кэш покрытия и журнал. Если выключено, всё сохраняется для повторной установки. Заказы в любом случае сохраняются.

Как это работает при оформлении заказа

На шаге доставки PrestaShop запрашивает у модуля цену 99Minutos. Учитываются только физические товары: виртуальные товары не добавляют вес и не входят в промежуточную сумму корзины. Перевозчик предлагается только тогда, когда страна доставки — Мексика, Колумбия, Чили или Перу (и она есть в списке Countries, если включён Restrict countries). Затем модуль проверяет ограничения по весу и Minimum subtotal.

Если включён режим проверки покрытия, модуль запрашивает у API 99minutos, покрыт ли почтовый индекс. Запрос имеет тайм-аут 10 секунд, а ответ кэшируется, поэтому тот же индекс не вызывает новый запрос. Ошибки API никогда не показываются покупателю: в режиме Strict перевозчик скрывается, в режиме Soft используется цена из матрицы. Бесплатная доставка не обходит проверку покрытия.

Цена берётся из строки матрицы для страны доставки или из строки * Default. Если нет ни той, ни другой, перевозчик скрывается. Если включён Free shipping и промежуточная сумма корзины достигает Free shipping from, тариф равен 0. Цена рассчитывается в валюте по умолчанию вашего магазина, а затем показывается в валюте корзины покупателя.

Если вы редактируете перевозчика в Shipping > Carriers после того, как у него появились заказы, PrestaShop сохраняет его как новую версию перевозчика. Модуль автоматически следует за новой версией.

Модуль не получает актуальные котировки тарифов от 99minutos: цены всегда берутся из вашей матрицы. Он не создаёт отправления или заказы в 99minutos, не печатает накладные (guides), не отслеживает посылки, не предлагает пункты выдачи Punto99 и не принимает оплату при получении. Создавайте отправления в своём аккаунте 99minutos, как обычно.

Лицензионный ключ

Модуль работает с лицензионным ключом VibeFox с vibefox.net. Блок лицензии License — VibeFox 99Minutos — это первый блок на странице Modules > Module Manager > VibeFox 99Minutos > Configure, над настройками. Вставьте ключ в License key и нажмите Activate. После этого блок показывает ключ в скрытом виде, статус (например, дату, до которой действует лицензия, и ваш домен) и кнопки Check now, чтобы снова проверить статус, Change key, чтобы ввести другой ключ, и Remove key, чтобы удалить ключ из этого магазина. Ниже находятся строка Product: presta-shipping-99minutos и ссылка Manage licenses and domains in your account, которая открывает ваш аккаунт vibefox.net. Изменить ключ могут только сотрудники с правом Configure для модуля. Тексты блока следуют языку бэк-офиса (включены английский и русский).

Если ключ не принят, блок указывает причину, например Key not found, This key belongs to another product, Domain limit reached или License expired on и дату. После смены адреса магазина или после освобождения слота домена в аккаунте нажмите Check now. Если сервер лицензий недоступен, модуль продолжает работать по последнему известному статусу.

Один ключ работает на одном домене: домен основного магазина, в том числе при мультимагазинной настройке. Удаление ключа из магазина не освобождает слот домена. Освободите слот в своём аккаунте vibefox.net.

Без активного ключа перевозчики 99Minutos не показываются покупателям при оформлении заказа, и тариф не рассчитывается. Витрина PrestaShop не знает, что вы вошли в бэк-офис, поэтому перевозчик скрыт и для вас: вы можете настроить модуль до покупки ключа, но не можете проверить его при оформлении заказа. Напоминание появляется в Modules > Module Manager на вкладке Alerts. Существующие заказы не затрагиваются.

Когда срок лицензии истекает, модуль продолжает работать, но для обновлений и поддержки нужно продление. Статус автоматически проверяется во время работы в бэк-офисе: раз в день в первые 14 дней после ввода ключа, затем раз в неделю. Cron-задача не нужна. Удаление или сброс модуля всегда удаляет лицензионный ключ и статус лицензии.

Устранение неполадок

99Minutos не появляется при оформлении заказа: проверьте, что лицензия активна и включён Enable 99Minutos. Страна доставки должна быть Мексика, Колумбия, Чили или Перу и быть активной в International > Locations. В Shipping > Carriers проверьте, что перевозчик охватывает зону страны покупателя и его группу. Проверьте, что в Price matrix есть строка для этой страны или строка * Default, а также ограничения по весу, Minimum subtotal и Restrict countries. Также товары могут быть ограничены определёнными перевозчиками на странице товара.

Перевозчик появляется только после ввода почтового индекса: это ожидаемо при проверке покрытия. В режиме Strict он появляется, только когда API подтверждает покрытие.

Перевозчик всегда скрыт в режиме Strict: включите Debug log, обновите оформление заказа и посмотрите поле Log на странице модуля. Ошибка HTTP 401 или 403 означает, что API-ключ отклонён: проверьте ключ и соответствие Environment (ключи sandbox и production различаются). Используйте режим Soft, если покупатели должны видеть цену из матрицы, пока API недоступен.

Цена не такая, как вы ожидали: проверьте Calculation (по заказу или по товару), веса товаров и единицу веса вашего магазина (International > Localization). Пустая или нулевая цена размера берётся из Base price. С налоговым правилом в Tax налог добавляется к цене из матрицы.

Результаты покрытия выглядят устаревшими после изменения: нажмите Save на странице модуля. Это очистит кэш результатов проверки покрытия.

Страница сообщает, что перевозчик 99Minutos не найден: перевозчик был удалён в Shipping > Carriers. Сбросьте модуль в Modules > Module Manager, чтобы создать его заново. То же относится к сообщению The settings were saved, but the carrier could not be updated. Reset the module to create it again.

Удаление

Откройте Modules > Module Manager, откройте меню рядом с VibeFox 99Minutos и выберите Uninstall. Лицензионный ключ и статус лицензии всегда удаляются. Кэш покрытия также всегда удаляется. Если включено Remove data on uninstall, перевозчик удаляется (заказы сохраняют свою историю), а настройки и журнал удаляются. Если выключено, перевозчик только отключается, и все настройки сохраняются. При повторной установке модуля сохранённый перевозчик возвращает статус, который был у него до удаления, поэтому Reset не включит отключённого перевозчика.

99minutos — товарный знак соответствующего правообладателя. Этот модуль не связан с компанией 99minutos и не одобрен ею.