13. Дебаг та діагностика

Якщо ваше правило не працює як очікується (метод не показується, націнка не застосовується, умова не спрацьовує) - дебаг допоможе зрозуміти що саме відбувається. FCR має два рівні дебагу для різних задач.

Два рівні дебагу

РівеньПризначенняЩо пишеЛог-файл
Дебаг умов (рівень 1) Для адміністратора магазину Зрозумілою мовою: які методи перевіряються, які умови пройшли/не пройшли, чому метод приховано storage/logs/fcr_conditions.log
Дебаг розробника (рівень 2) Для розробника / технічної підтримки Технічна інформація: значення змінних, стан сесії, JSON-дампи об’єктів, виклики методів storage/logs/fcr_debug.log
Окремі лог-файли

FCR не пише в загальний error.log OpenCart. Це зроблено навмисно щоб не засмічувати загальний лог технічними повідомленнями. Усі логи FCR живуть у власних файлах.

Увімкнення дебагу

  1. Перейдіть на вкладку "Додатково"
  2. Знайдіть блок "Дебаг та діагностика"
  3. Увімкніть потрібний перемикач:
    • Дебаг умов - для звичайної діагностики
    • Дебаг розробника - для глибокого аналізу (тільки коли просить підтримка)
  4. Натисніть Save вгорі сторінки
  5. Виконайте дію яку треба продіагностувати (наприклад, оформіть тестове замовлення)
  6. Прочитайте лог-файл
Перемикачі дебагу
Перемикачі дебагу у вкладці "Додатково"
Дебаг впливає на швидкість

Запис у лог-файли уповільнює роботу модуля. Не залишайте дебаг увімкненим на продакшн-магазині постійно - тільки на час діагностики. Після завершення обов’язково вимкніть.

Як читати fcr_conditions.log

Цей лог пише зрозумілою мовою що відбувається з умовами. Приклад вмісту:

[14:23:11] === Фільтрація доставки (кошик: 350.00 UAH, вага: 2.5 кг) ===
[14:23:11] Доставка "Кур’єр по Києву" (custom_courier.kyiv)
[14:23:11]   ✓ $0 "city: [Київ] (actual: Київ)": PASSED
[14:23:11]   ✓ $1 "weight <= 30 (actual: 2.5)": PASSED
[14:23:11]   Результат: ПОКАЗАНО
[14:23:11] Доставка "Нова Пошта - Відділення" (nova_poshta.warehouse)
[14:23:11]   ✗ $0 "country: [UA] (actual: PL)": FAILED
[14:23:11]   Результат: ПРИХОВАНО
[14:23:11] === Фільтрація оплати ===
[14:23:11] Оплата "Накладений платіж" (cod)
[14:23:11]   ✗ $0 "total >= 200 (actual: 150)": FAILED
[14:23:11]   Результат: ЗАГЛУШКА

Як читати:

  • === рядки - початок нової фази (фільтрація доставки/оплати)
  • - умова пройдена (true)
  • - умова не пройдена (false)
  • (actual: ...) - фактичне значення яке FCR обчислив для цієї умови
  • Результат: - підсумкова дія: ПОКАЗАНО / ПРИХОВАНО / ЗАГЛУШКА

Типові сценарії використання

Метод не показується

  1. Увімкніть дебаг умов
  2. Зайдіть на чекаут (під клієнтом якого треба перевірити)
  3. Відкрийте лог - знайдіть назву методу
  4. Подивіться які умови FAILED і яке там actual
  5. Виправте умову (наприклад, помилкове значення) і перевірте знову

Націнка не застосовується

Те ж саме що і з методом - дивіться чи з’являється запис про націнку у лозі. Якщо немає взагалі - проблема з обраним методом оплати або з тим що націнка вимкнена. Якщо є але "ПРОПУЩЕНО" - значить умови не пройшли.

Складний вираз дає неочікуваний результат

Дебаг покаже значення кожної умови плюс розрахований результат виразу:

[14:25:33]   ✓ $0 "category: [Меблі]": PASSED
[14:25:33]   ✗ $1 "weight > 20 (actual: 15)": FAILED
[14:25:33]   ✓ $2 "customer_group: [VIP]": PASSED
[14:25:33]   Expression: ($0 AND $1) OR $2 = TRUE

Тут видно: $1 провалилось, але через OR $2 загальний результат = TRUE.

Дебаг у браузері (console.log)

На чекаутах SmartCheckout (OCTemplates) "Режим розробника" додатково виводить у JavaScript-консоль браузера перелік методів доставки, які пройшли фільтрацію, і вибраний покупцем метод. Керується тим же перемикачем у розділі "Додатково".

Щоб побачити повідомлення:

  1. Натисніть F12 у браузері
  2. Перейдіть на вкладку Console
  3. Шукайте повідомлення, що починаються з FCR [
На інших чекаутах вивід у консоль не виконується

На стандартному чекауті OpenCart і на OnePageCheckout діагностика йде виключно у файли fcr_conditions.log і fcr_debug.log. Нічого при цьому не втрачається: у логах той самий перелік методів і значно більше подробиць - умови, розрахунок вартості, підсумки.

Приклад вмісту лог-файлу
Приклад вмісту fcr_conditions.log при оформленні замовлення