VibeFox Packeta for PrestaShop — Помощь
Требования
PrestaShop: 8.0–9.x.
PHP: 8.0 или новее. Модуль не устанавливается на более старых версиях PHP.
API-ключ Packeta: его можно найти в разделе клиента Packeta (client.packeta.com) в разделе Client support. Он состоит из 16 букв и цифр. Виджет использует его, чтобы открыться на этапе оформления заказа, поэтому перевозчик показывается покупателям только после ввода API-ключа.
Страны: Чехия, Словакия, Венгрия или Румыния должны быть активными странами вашего магазина, входящими в зону, с которой связан перевозчик.
Лицензионный ключ VibeFox: приобретается на vibefox.net. Один ключ работает на одном домене.
Установка
1. В панели администратора перейдите в раздел Modules > Module Manager и нажмите Upload a module. Выберите ZIP-архив модуля.
2. Когда загрузка завершится, нажмите Configure или позже найдите VibeFox Packeta в списке модулей и нажмите Configure.
3. Введите лицензионный ключ VibeFox в поле License key в блоке лицензии вверху страницы настроек и нажмите Activate (см. Лицензионный ключ).
4. Введите API key Packeta и свои цены: как минимум одну строку в Country prices (например * Default) или Fallback cost. Нажмите Save. На странице будет показано, принял ли Packeta ключ.
При установке модуль создаёт перевозчика Packeta pickup point с текстом срока доставки Packeta pickup point or Z-BOX. Он связан с зонами Чехии, Словакии, Венгрии и Румынии и со всеми группами клиентов. Зоны, группы клиентов, срок доставки и логотип можно изменить в разделе Shipping > Carriers. Не задавайте там цены: цена всегда берётся из модуля.
Настройка
Все настройки находятся на странице модуля: Modules > Module Manager > VibeFox Packeta > Configure. У каждого раздела есть своя кнопка Save, которая сохраняет всю страницу.
Перевозчик предлагается только для стран собственной сети пунктов выдачи Packeta: CZ, SK, HU и RO. Над настройками страница показывает результат проверки API-ключа и предупреждения о проблемах: нет API-ключа, нет цены, выбраны страны вне сети Packeta, отсутствует перевозчик или магазин использует единицу веса, которую модуль не распознаёт.
Все цены и ограничения принимают запятую или точку как десятичный разделитель (4,99 или 4.99). Некорректное или отрицательное число отклоняется с сообщением, и сохраняется предыдущее значение.
Общие
Enable/Disable: включает или выключает Packeta на этапе оформления заказа.
Name: название перевозчика, которое видит покупатель. Оно же является названием перевозчика в Shipping > Carriers. По умолчанию: Packeta pickup point. Обязательное поле, не более 64 символов.
API key: ваш API-ключ Packeta из раздела client.packeta.com > Client support. Можно также вставить 32-символьный API-пароль: сохраняются только его первые 16 символов, то есть API-ключ. API-ключ публичен: он передаётся в браузер покупателя, чтобы открыть виджет. При сохранении нового ключа он проверяется по ленте перевозчиков Packeta, и страница показывает Packeta API key verified или сообщение о том, что Packeta отклонила ключ. Если проверку выполнить не удалось, ключ сохраняется и будет проверен снова при следующем сохранении.
Widget language: язык виджета выбора пункта выдачи. Store / visitor language (по умолчанию) следует языку страницы. Можно также зафиксировать чешский, словацкий, венгерский, румынский, английский, немецкий, польский или украинский.
Pickup point types: какие пункты Packeta предлагает виджет.
Tax status: налоговые правила, применяемые к стоимости доставки. None (no tax on shipping) или Taxable с одной из ваших групп налоговых правил. Выбор сохраняется у перевозчика.
Цены
У Packeta нет публичного API тарифов. Цены берутся из этой таблицы и вводятся в основной валюте вашего магазина без налогов. Покупатели, которые платят в другой валюте, видят пересчитанную цену.
Calculation type: Per order берёт цену один раз. Per item (price x quantity) умножает её на количество физических товаров в корзине.
Country prices: цена для каждой страны назначения и веса посылки. Нажмите Add country, чтобы добавить строку, и крестик, чтобы удалить строку. В каждой строке есть Price и колонки веса: XS до 1 кг, S 1–2 кг, M 2–3 кг, L 3–5 кг и XL свыше 5 кг. Колонка веса, оставленная со значением 0, использует колонку Price. Строка * Default применяется к странам, у которых нет собственной строки. Новая строка создаётся как * Default со всеми ценами 0, что означает бесплатную доставку. Перед сохранением выберите страну и введите цены или удалите строку. Если одна и та же страна (или * Default) есть в двух строках, при сохранении остаётся только первая. Если значение в таблице не является корректным числом, таблица не сохраняется, и страница показывает неверные значения.
Fallback cost: используется, когда в таблице стран нет строки для страны назначения и нет строки * Default. Оставьте поле пустым, чтобы не предлагать перевозчика в этом случае.
Free shipping from: сумма корзины (после скидок, без налогов), начиная с которой доставка Packeta бесплатна. Проверка выполняется до таблицы цен: от этой суммы доставка бесплатна во всех странах Packeta, где предлагается перевозчик, даже в стране без строки в таблице или без запасной стоимости. Оставьте поле пустым, чтобы никогда не предлагать бесплатную доставку.
Доступность
Minimum weight (kg): скрывает перевозчика, если корзина весит меньше. Вес корзины пересчитывается из единицы веса вашего магазина. Пустое значение или 0 означает отсутствие ограничения.
Maximum weight (kg): скрывает перевозчика, если корзина весит больше. По умолчанию: 15. Пункты выдачи и Z-BOX Packeta обычно принимают посылки до 15 кг; уточните это в своём договоре с Packeta. Пустое значение или 0 означает отсутствие ограничения. Минимальный вес больше максимального отклоняется при сохранении, и сохраняются оба предыдущих значения.
Minimum cart subtotal: предлагать перевозчика только тогда, когда сумма корзины (после скидок, без налогов) достигает этой суммы.
Ignore shipping zones: если включено, перевозчик привязывается ко всем зонам и предлагается для стран, выбранных ниже. Зоны, созданные позже, привязываются сразу. Если выключить, перевозчик вернёт зоны, которые были у него раньше. Если выключено, перевозчик предлагается только в зонах, заданных для него в Shipping > Carriers.
Countries (ignore zones mode): страны назначения для этого режима. Оставьте пустым, чтобы использовать все страны Packeta. Страны вне сети пунктов выдачи Packeta пропускаются. Чтобы выбрать несколько стран, удерживайте Ctrl и кликайте. Это поле используется только при включённой опции Ignore shipping zones.
Дополнительно
Debug log: записывает расчёты стоимости и выбор пунктов выдачи в modules/vfd_packeta/logs/. Файл нельзя открыть через веб. Персональные данные покупателей и API-ключ не записываются. Ошибки и неудачные проверки API-ключа записываются всегда. Выключите журнал, когда закончите.
Log (last lines): показывает последние записи журнала отладки. Нажмите Clear log, чтобы очистить его.
Remove data on uninstall: если включено, при удалении модуля удаляются настройки и журнал. Пункт выдачи, сохранённый в заказах, всегда сохраняется.
Как это работает на этапе оформления заказа
На этапе доставки PrestaShop запрашивает у модуля цену Packeta. Учитываются только физические товары: виртуальные товары не добавляют вес и не входят в сумму корзины. Модуль проверяет условия: страна доставки входит в сеть Packeta, наличие API-ключа, список стран в режиме игнорирования зон, вес корзины и минимальная сумма корзины. Если применяется бесплатная доставка, цена равна 0. Иначе цена берётся из таблицы стран, а затем из запасной стоимости. Если цены нет, перевозчик скрывается.
Когда покупатель выбирает перевозчика Packeta, под ним появляется кнопка Choose pickup point. Она открывает в браузере покупателя официальный виджет Packeta с указанием страны назначения, веса корзины, выбранных типов пунктов и языка виджета. После выбора пункта его название и адрес отображаются под перевозчиком, а кнопка меняется на Change pickup point. Пункт сохраняется вместе с корзиной и не сбрасывается при перезагрузке страницы. Пункт, выбранный для другой страны, удаляется при смене адреса доставки.
Ваш сервер при оформлении заказа ничего не запрашивает у Packeta. Скрипт виджета загружается с widget.packeta.com. Если он заблокирован (блокировщиком рекламы или приватности, политикой безопасности контента или из-за сбоя Packeta), покупатель видит сообщение: «The Packeta pickup point widget could not be loaded. Please reload the page or choose another shipping method.»
Если вы измените перевозчика в Shipping > Carriers после того, как по нему появились заказы, PrestaShop сохранит его как новую версию перевозчика. Модуль автоматически следует за новой версией.
Цены Packeta не запрашиваются в режиме реального времени — они берутся из вашей таблицы. Модуль не создаёт отправления Packeta, не печатает этикетки и не отслеживает посылки, а также по умолчанию не предлагает доставку на дом и пункты выдачи других партнёрских перевозчиков. Передайте ID пункта выдачи из заказа в Packeta обычным способом, например импортом в client.packeta.com.
Пункты выдачи
Пункт выдачи обязателен. Если покупатель нажимает Continue на этапе доставки, не выбрав пункт, этап не завершается, и покупатель видит сообщение: «Please choose a Packeta pickup point.» Если выбранный пункт находится в другой стране, чем адрес доставки, покупатель видит сообщение: «The selected Packeta pickup point is not in your shipping country. Please choose a pickup point again.» Модуль не проверяет ID пункта в Packeta — он проверяет только то, что пункт выбран и что его страна совпадает.
Пункт привязывается к заказу при его создании:
Страница заказа в панели администратора: блок Packeta pickup point с названием, адресом, Pickup point ID и страной. Если у заказа Packeta нет пункта, блок показывает сообщение: «No pickup point was selected for this order.»
Страницы подтверждения и сведений о заказе: Packeta pickup point: с названием и адресом.
Письма о заказе: название и адрес пункта добавляются к перевозчику в письме с подтверждением заказа. Письмо продавцу о новом заказе также содержит Pickup point ID.
Пункт хранится в таблице модуля vfd_pckt_point (корзина, заказ, ID пункта, название и адрес, страна).
Лицензионный ключ
Модуль работает с лицензионным ключом VibeFox с vibefox.net. Блок лицензии License — VibeFox Packeta находится первым на странице Modules > Module Manager > VibeFox Packeta > Configure, над настройками. Введите ключ в поле License key и нажмите Activate. После этого блок показывает ключ в замаскированном виде, статус (например, дату, до которой лицензия действует, и ваш домен) и кнопки Check now для повторной проверки статуса, Change key для ввода другого ключа и Remove key для удаления ключа из этого магазина. Ниже находятся строка Product: presta-shipping-packeta и ссылка 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.
Без активного ключа перевозчик Packeta не показывается покупателям на этапе оформления заказа, и стоимость доставки не рассчитывается. Витрина PrestaShop не знает, что вы вошли в панель администратора, поэтому перевозчик скрыт и для вас: модуль можно настроить до покупки ключа, но нельзя проверить на этапе оформления заказа. Напоминание появляется в Modules > Module Manager на вкладке Alerts. Существующие заказы не затрагиваются.
Когда срок лицензии истекает, модуль продолжает работать, но для обновлений и поддержки нужно продление. Статус автоматически проверяется во время работы в панели администратора: раз в день в первые 14 дней после ввода ключа, затем раз в неделю. Cron-задача не нужна. Удаление или сброс модуля всегда удаляет лицензионный ключ и статус лицензии.
Устранение неполадок
Packeta не отображается при оформлении заказа: проверьте, что лицензия активна, опция Enable/Disable включена, API key введён, а страна доставки — CZ, SK, HU или RO. Проверьте, что для страны задана цена (строка страны, строка * Default или Fallback cost), ограничения по весу и сумме корзины, а также что перевозчик охватывает зону страны покупателя и группу покупателя в Shipping > Carriers (или включена опция Ignore shipping zones). Товары также могут быть ограничены определёнными перевозчиками на странице товара. Страница настроек вверху показывает проблемы конфигурации. Включите Debug log, чтобы увидеть причину в Log (last lines).
Packeta отклонила API-ключ: скопируйте API-ключ заново из раздела client.packeta.com > Client support и сохраните. До этого виджет не сможет открыться при оформлении заказа.
Виджет не открывается: скрипт Packeta заблокирован блокировщиком рекламы или приватности, политикой безопасности контента либо из-за сбоя Packeta. Разрешите widget.packeta.com в политике безопасности контента. Разработчики могут изменить URL скрипта с помощью хука actionVfdPcktWidgetUrl.
Доставка бесплатна по ошибке: проверьте Country prices на строки с Price 0, особенно на строку * Default, добавленную через Add country и не заполненную, а также проверьте Free shipping from.
Ограничения по весу или колонки веса выглядят неправильно: если страница предупреждает о единице веса магазина, задайте kg, g, lb или oz в International > Localization (Local units). Другие единицы считаются килограммами.
Другие страны или перевозчики: по умолчанию перевозчик работает для CZ, SK, HU и RO. Разработчики могут добавить страны с помощью хука actionVfdPcktCountries и передать ID перевозчиков в виджет с помощью хука actionVfdPcktWidgetOptions.
На странице сообщается, что перевозчик Packeta отсутствует: перевозчик был удалён в Shipping > Carriers. Сбросьте модуль в Modules > Module Manager, чтобы создать его заново.
Удаление
Перейдите в Modules > Module Manager, откройте меню рядом с VibeFox Packeta и выберите Uninstall. Лицензионный ключ и статус лицензии всегда удаляются. Перевозчик Packeta всегда удаляется (заказы сохраняют своего перевозчика), вместе с сохранённым результатом проверки API-ключа. Если Remove data on uninstall включено, удаляются настройки, журнал и пункты выдачи корзин, которые так и не стали заказами. Если выключено, настройки сохраняются для повторной установки, при которой перевозчик создаётся заново. Существующие заказы всегда сохраняют сохранённый пункт выдачи.
Packeta — товарный знак его владельца. Этот модуль не связан с Packeta и не одобрен ею.
