7. Частые вопросы и ошибки
Bad signature
Проверьте совпадение API_SECRET на сайте и в плагинах.
Плагины не видят сайт
Убедитесь, что сервер имеет доступ к SITE_URL (лучше HTTPS), и время сервера не сильно отличается.
Выдача частично не выполнена
Проверьте корректность delivery_json, наличие shortname предметов, групп и команд.
Не загружаются иконки предметов
Если в админке или на сайте не отображаются иконки предметов:
- Зайдите в редактирование любого товара.
- Нажмите кнопку «Обновить» в блоке «Каталог предметов с иконками».
- Дождитесь окончания загрузки (система скачает свежие иконки в
assets/img/items/).
Также убедитесь, что папка assets/img/items/ доступна для записи.
Настройки в админке не сохраняются
Если вы меняете настройки (Название сайта, Иконки, Режим обслуживания), они применяются визуально, но после обновления страницы сбрасываются на старые значения — проблема в формате файла config/local.php.
Админ-панель дописывает новые значения в конец файла. Чтобы они работали, старые значения должны быть обернуты в проверку if (!defined(...)). Иначе PHP использует первое (старое) значение.
Неправильно:
define('SITE_NAME', 'Old Name'); // Всегда будет использоваться это значение
Правильно:
if (!defined('SITE_NAME')) define('SITE_NAME', 'Old Name'); // Будет пропущено, если ниже есть новое значение
Убедитесь, что все константы в начале файла config/local.php имеют такую проверку.
Undefined constant / методы оплаты не отображаются
Если шаблоны или линтер сообщают об «Undefined constant», убедитесь, что используется безопасная проверка констант:
if (defined('PAYMENTS_ENABLED') && constant('PAYMENTS_ENABLED')) { ... }
Флаги включения провайдеров (YOOMONEY_ENABLED, UNITPAY_ENABLED, FREEKASSA_ENABLED, ENOT_ENABLED) сохраняются в config/local.php через админку (/admin/payments). В config/config.php по умолчанию они равны false, чтобы шаблоны не падали без local.php.
На странице Checkout предусмотрен резерв: при выключенных флагах, но заполненных ключах провайдера, метод может отобразиться. На странице Order список формируется строго по флагам.
CSP блокирует внешние ресурсы/провайдеры
Включена политика Content Security Policy (CSP) для продакшн-окружения. При добавлении новых платёжных провайдеров или CDN проверьте, что их домены разрешены в заголовке CSP в разделе безопасности.