15. Сумісність з checkout-модулями

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

Стандартний OpenCart Checkout

Повна сумісність

Зі стандартним багатокроковим чекаутом OpenCart (checkout/checkout) FCR працює без обмежень. Усі функції доступні: умови, націнки, кастомні методи, заглушки.

OnePageCheckout (OPC)

Найпопулярніший одно-сторінковий чекаут для OpenCart від розробника OneStepCheckout. FCR сумісний, але має кілька нюансів.

Що працює добре

  • Фільтрація доставки за умовами
  • Фільтрація оплати за умовами
  • Власні методи доставки і оплати
  • Кастомні підсумки з умовами
  • Заглушки

Можливі проблеми

Перерахунок націнки за оплату

OPC при зміні методу оплати може не зробити повного перерахунку підсумків. У результаті націнка/знижка за оплату може не з’явитись одразу або відображатись з затримкою.

Рішення:

  • Перевірте налаштування OPC-модуля - чи увімкнено опцію "Reload totals on payment change"
  • Якщо не допомагає - оновіть сторінку (F5) після зміни методу оплати
  • На етапі замовлення (admin) націнка завжди буде правильна, бо тотали перераховуються остаточно при order/save
Detection request

OPC робить тестовий запит до getQuote() з мінімальною адресою (без iso_code_2) для виявлення доступних методів. FCR коректно обробляє цей запит, але якщо у вас встановлений ще один сторонній модуль доставки який не очікує detection request - можуть бути конфлікти.

SmartCheckout

Інший популярний одно-сторінковий чекаут. Сумісність часткова - основні функції працюють, але деякі можуть потребувати додаткових налаштувань.

QuickCheckout (D_QuickCheckout)

Швидкий чекаут від розробника D-Modules. Сумісність експериментальна. Основні функції FCR працюють, але адмінка SmartCheckout/QuickCheckout використовує ionCube-encoded контролери, які FCR не може автоматично визначити для admin-detection.

AJAX чекаути загалом

Будь-який чекаут який змінює структуру DOM після завантаження сторінки (через AJAX, reloadAll, перемальовування форм) може ламати JavaScript-логіку FCR. Симптоми:

  • Кастомні методи не з’являються або з’являються кілька раз
  • Націнки не оновлюються при зміні методу оплати
  • Опції доставки не видно на іноземних адресах

Для таких випадків FCR має систему ajaxComplete handlers яка повторно "вішає" обробники після AJAX-перемальовувань. Якщо у вас проблеми з AJAX-чекаутом - звертайтесь у підтримку, ми можемо додати підтримку конкретного модуля.

Інші модулі що можуть конфліктувати

  • Модулі-конкуренти FCR (інші менеджери правил доставки/оплати) - не використовуйте одночасно з FCR. Виберіть один
  • Модулі що замінюють cart/cart або checkout/checkout - можуть втручатися в підсумки
  • Кастомні total-розширення з рекурсивними залежностями - можуть викликати петлі при обчисленні

Якщо ви плануєте складну інтеграцію - тестуйте на копії магазину перед впровадженням на продакшні.