VibeFox Estafeta for PrestaShop — Помощь
Требования
PrestaShop: от 8.0 до 9.x.
PHP: 8.0 или новее с расширением cURL. Модуль не устанавливается на более старых версиях PHP или без cURL.
Учётная запись DrEnvio (только для актуальных тарифов): актуальные тарифы Estafeta поступают от DrEnvio, партнёра Estafeta в Мексике. Создайте учётную запись на drenvio.com, включите Estafeta, укажите там адрес забора и скопируйте ключ API из панели DrEnvio. Это тот же ключ, что использует официальный модуль DrEnvio. Если вы используете только собственные цены, учётная запись DrEnvio не нужна.
Товары: для актуальных тарифов товарам нужен вес.
Лицензионный ключ VibeFox: покупается на vibefox.net. Один ключ работает на одном домене.
Установка
1. В бэк-офисе перейдите в Modules > Module Manager и нажмите Upload a module. Выберите ZIP-файл модуля.
2. Когда загрузка завершится, нажмите Configure или позже найдите VibeFox Estafeta в списке модулей и нажмите Configure.
3. Введите лицензионный ключ VibeFox в поле License key в блоке лицензии вверху страницы Configure и нажмите Activate (см. Лицензионный ключ).
4. Введите DrEnvio API key и, по желанию, Origin postcode. Если основная валюта вашего магазина не MXN, введите MXN exchange rate. Задайте цену по стране для MX или Fallback cost, если перевозчик должен оставаться видимым, когда у DrEnvio нет тарифа. Нажмите Save.
При установке модуль создаёт перевозчика Estafeta с текстом срока доставки Estafeta courier (Mexico). Перевозчик назначается всем зонам и всем группам клиентов. Зоны, группы клиентов, срок доставки, логотип и ограничения по размеру можно изменить в Shipping > Carriers. Не задавайте там цены: цена всегда берётся из модуля.
Настройка
Все настройки находятся на странице модуля: Modules > Module Manager > VibeFox Estafeta > Configure. Каждый раздел имеет свою кнопку Save, которая сохраняет всю страницу. Каждое сохранение также очищает кэш тарифов DrEnvio.
Вверху страницы модуль показывает предупреждения: нет ключа API DrEnvio; основная валюта не MXN и нет курса валют; нет цены по стране для MX и нет резервной стоимости (тогда перевозчик скрыт, когда нет актуального тарифа, или никогда не показывается без ключа API); либо единица веса магазина неизвестна модулю (тогда вес товаров считается в кг; задайте единицу в International > Localization, Local units). Числовые поля принимают точку или запятую как десятичный разделитель. Значение, которое не является корректным числом, очищается и сообщается при сохранении; остальные настройки сохраняются.
Общие
Зоны, группы клиентов и ограничения по размеру перевозчика задаются в Shipping > Carriers. Эти настройки применяются ко всем зонам.
Enable/Disable: включает или выключает доставку Estafeta. Это тот же переключатель, что и статус перевозчика в Shipping > Carriers.
Name: название перевозчика, которое видит покупатель при оформлении заказа. По умолчанию: Estafeta. Обязательно. Неверное название сообщается, и сохраняется предыдущее.
Tax: правило налога перевозчика или No tax. Магазин добавляет этот налог к стоимости доставки. Включает ли DrEnvio IVA в свои цены, зависит от вашей учётной записи DrEnvio. Если IVA уже включён, выберите No tax.
Актуальные тарифы (API DrEnvio)
Предлагается самая дешёвая услуга Estafeta для адреса. Без ключа используются цены из следующего раздела.
DrEnvio API key: ключ API из панели DrEnvio. После сохранения поле остаётся пустым и показывает Saved — leave empty to keep it. Вводите новое значение, только если хотите его изменить.
Remove the saved API key: показывается, только пока сохранён ключ. Установите Yes и сохраните, чтобы удалить ключ. Тогда используются только Country prices и Fallback cost. Ключ, введённый в поле выше, заменяет сохранённый.
Origin country: двухбуквенный код страны адреса забора. По умолчанию: MX. Отправляется только вместе с почтовым индексом отправления.
Origin postcode: 5-значный почтовый индекс адреса забора. Оставьте пустым, чтобы использовать адрес отправления, сохранённый в вашей учётной записи DrEnvio. Индекс, в котором не 5 цифр, очищается и сообщается при сохранении.
MXN exchange rate: DrEnvio рассчитывает в мексиканских песо. Нужен, только если основная валюта вашего магазина не MXN: значение 1 MXN в вашей основной валюте, например 0.05. Без него актуальные тарифы не используются.
Цены без актуального тарифа
Используются, когда нет ключа API или DrEnvio не возвращает тариф Estafeta (API недоступен, неизвестный индекс, индекс ещё не введён). Цены указаны в основной валюте магазина, без налогов.
Country prices: одна страна назначения в строке в формате CC:PRICE, например MX:150. Используйте точку или запятую как десятичный разделитель, без разделителя тысяч. Части в другом формате игнорируются и сообщаются при сохранении.
Fallback cost: цена, когда нет ни актуального тарифа, ни цены по стране. Оставьте пустым, чтобы скрыть перевозчика; 0 означает бесплатную доставку.
Calculation type: Per order берёт цену один раз. Per item (price x number of items) умножает её на количество товаров в корзине. Это относится к Country prices и Fallback cost. Актуальный тариф DrEnvio всегда является ценой всей посылки.
Условия
Free shipping from: доставка бесплатна, когда сумма корзины (товары, требующие доставки, после скидок, до налогов) достигает этой суммы. Запрос к DrEnvio в этом случае не отправляется. Оставьте пустым, чтобы никогда не предлагать бесплатную доставку.
Minimum subtotal: показывать перевозчика, только когда сумма корзины (после скидок, до налогов) не меньше этой суммы. Оставьте пустым, чтобы показывать всегда.
Min weight: минимальный вес корзины в кг, при котором появляется перевозчик. 0 означает без ограничения.
Max weight: максимальный вес корзины в кг. Перевозчик скрывается, если он превышен. По умолчанию: 30. 0 означает без ограничения.
Если Min weight больше, чем Max weight, при сохранении появляется ошибка, и оба веса остаются без изменений. Веса товаров переводятся из единицы веса вашего магазина в кг.
Доступность без зон доставки
Ignore shipping zones: предлагать перевозчика для указанных ниже стран без настройки зон для него. Пока опция включена, перевозчик получает все зоны, включая те, что вы создадите позже. Выключение возвращает перевозчику его собственные зоны.
Countries: страны назначения для этого режима, выбранные из активных стран вашего магазина. Оставьте пустым для всех стран. Используется, только когда включена опция Ignore shipping zones.
Дополнительно
Debug log: записывает запросы к API и расчёты тарифов в logs/vfd_est_debug.log.php в папке модуля. Файл нельзя открыть через веб. Ошибки API записываются всегда. Ключ API и адреса покупателей никогда не записываются. Выключите журнал, когда закончите.
Log: показывает размер и последние записи журнала отладки. Нажмите Clear log, чтобы очистить его.
Remove data on uninstall: если включено, удаление модуля стирает все его настройки, перевозчика, сохранённые услуги Estafeta заказов и журнал. Если выключено, всё сохраняется для повторной установки.
Как это работает при оформлении заказа
На шаге доставки PrestaShop запрашивает у модуля цену Estafeta. Учитываются только физические товары: виртуальные товары не добавляют вес и не входят в сумму корзины. Модуль сначала проверяет условия: список Countries (когда включена Ignore shipping zones), вес корзины и минимальную сумму заказа. Если действует бесплатная доставка, цена равна 0 и запрос к DrEnvio не отправляется.
Иначе модуль отправляет DrEnvio страну и почтовый индекс назначения, вес корзины, количество товаров и сумму корзины в MXN, а также почтовый индекс отправления, если вы его задали. Мексиканские почтовые индексы должны состоять из 5 цифр; пока покупатель не введёт адрес доставки с таким индексом, запрос не отправляется. DrEnvio возвращает расчёты всех перевозчиков вашей учётной записи. Модуль использует только расчёты Estafeta, игнорирует нулевые цены, выбирает самую дешёвую и переводит её в основную валюту магазина. Затем цена отображается в валюте корзины покупателя.
Каждый ответ кэшируется на 1 час. Неудачный запрос или маршрут без тарифа Estafeta запоминаются на 5 минут, чтобы медленный или сломанный API никогда не тормозил каждое обновление при оформлении заказа. Таймаут API — 12 секунд. В этих случаях покупатель не видит ошибки: используется цена по стране или резервная стоимость, либо перевозчик скрывается, если не задано ни то, ни другое. Причина записывается в журнал.
Если вы редактируете перевозчика в Shipping > Carriers после того, как у него появились заказы, PrestaShop сохраняет его как новую версию перевозчика. Модуль автоматически следует за новой версией.
Модуль только рассчитывает тарифы. Он не создаёт отправления, не печатает накладные (guías) и не отслеживает посылки; отправление создаётся в учётной записи DrEnvio или Estafeta. Покупатель не может выбрать конкретную услугу Estafeta или отделение Estafeta, а курсы валют не обновляются автоматически.
Заказы
Когда оформляется заказ с перевозчиком Estafeta, модуль сохраняет тариф, рассчитанный для его корзины. Последующие пересчёты, например на странице заказа в бэк-офисе, его не меняют.
Страница заказов в Orders > Orders показывает блок Estafeta:
Estafeta service: услуга Estafeta из расчёта DrEnvio и её срок доставки. Показывается только для актуальных тарифов.
Price source: Live DrEnvio rate, Country price (no live rate), Fallback cost (no live rate) или Free shipping threshold.
Calculated price (excl. tax): цена доставки в основной валюте магазина.
Лицензионный ключ
Модуль работает с лицензионным ключом VibeFox с vibefox.net. Блок лицензии License — VibeFox Estafeta — это первый блок на странице Modules > Module Manager > VibeFox Estafeta > Configure, над настройками. Введите ключ в поле License key и нажмите Activate. После этого блок показывает ключ в скрытом виде, статус (например, дату, до которой действует лицензия, и ваш домен) и кнопки Check now для повторной проверки статуса, Change key для ввода другого ключа и Remove key для удаления ключа из этого магазина. Ниже находятся строка Product: presta-shipping-estafeta и ссылка 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.
Без действующего ключа перевозчик Estafeta не показывается покупателям при оформлении заказа, и тариф не рассчитывается. Витрина PrestaShop не знает, что вы вошли в бэк-офис, поэтому перевозчик скрыт и для вас: настроить модуль можно до покупки ключа, но проверить его при оформлении заказа нельзя. Напоминание появляется в Modules > Module Manager на вкладке Alerts. Существующие заказы не затрагиваются.
Когда лицензия истекает, модуль продолжает работать, но для обновлений и поддержки нужно продление. Статус автоматически проверяется, пока вы работаете в бэк-офисе: раз в день в течение первых 14 дней после ввода ключа, затем раз в неделю. Cron-задание не требуется. При удалении или сбросе модуля всегда удаляются лицензионный ключ и статус лицензии.
Устранение неполадок
Estafeta не появляется при оформлении заказа: проверьте, что лицензия действует и включена опция Enable/Disable. В Shipping > Carriers проверьте, что перевозчик охватывает зону страны покупателя и группу покупателя (или что включена Ignore shipping zones и страна разрешена). Проверьте предупреждения вверху страницы модуля, ограничения по весу и Minimum subtotal. Без ключа API или когда DrEnvio не имеет тарифа Estafeta, перевозчику нужна цена по стране назначения или резервная стоимость. Товары также могут быть ограничены определёнными перевозчиками на странице товара.
Актуальные тарифы не появляются: включите Debug log, перезагрузите оформление заказа и посмотрите поле Log на странице модуля. Оно показывает причину: нет ключа API; нет курса валют для магазина, основная валюта которого не MXN; отсутствует или неверен почтовый индекс; ключ API отклонён (HTTP 401 или 403 от DrEnvio, проверьте ключ API); нет тарифа Estafeta для маршрута (журнал перечисляет перевозчиков, которых вернул DrEnvio); или тариф в валюте, отличной от MXN.
Цена включает IVA? Это зависит от вашей учётной записи DrEnvio. Если цены DrEnvio уже включают IVA, установите Tax в значение No tax.
Тарифы выглядят устаревшими после изменения: нажмите Save на странице модуля. Это очистит кэш тарифов DrEnvio.
Страница сообщает, что перевозчик Estafeta не найден: перевозчик был удалён в Shipping > Carriers. Сбросьте модуль в Modules > Module Manager, чтобы создать его заново. То же относится к сообщению The settings were saved, but the carrier could not be updated.
На странице заказа нет блока Estafeta: блок показывается только для заказов, оформленных с перевозчиком Estafeta, пока модуль был установлен. Удаление с включённой опцией Remove data on uninstall стирает сохранённые услуги.
Удаление
Откройте Modules > Module Manager, откройте меню рядом с VibeFox Estafeta и выберите Uninstall. Лицензионный ключ и статус лицензии всегда удаляются. Кэш тарифов всегда удаляется. Если Remove data on uninstall включено, перевозчик удаляется (заказы сохраняют историю), а настройки, сохранённые услуги Estafeta заказов и журнал удаляются. Если выключено, перевозчик только отключается, а настройки и сохранённые услуги заказов сохраняются. При повторной установке модуля перевозчик получает статус, который был до удаления.
Estafeta и DrEnvio — товарные знаки их владельцев. Этот модуль не связан с Estafeta или DrEnvio и не одобрен ими.
