Проверка застряла шаг 2 (оплата)
У меня есть magento 2, работающий в живом проекте, и наши клиенты также видят некоторые странные проблемы в браузере Firefox и Chrome. Я смог воспроизвести его только один раз, и после обновления страницы все работает так, как ожидалось. Я буду рад, если у кого-то есть/была подобная проблема, и у меня есть некоторая информация о том, как ее отладить/исправить.
Предварительные условия
- Magento CE 2.1.0
- Режим производства и лак
- Последняя версия Firefox & Последние версии Chrome
Шаги по воспроизведению
- Добавить товар в корзину
- Перейдите на страницу оформления заказа
- Введите адрес для выставления счета и выберите способ доставки
- Нажмите кнопку Далее, чтобы открыть раздел оплаты
Ожидаемый результат:
Отобразить значок загрузчика, загрузить раздел оплаты и сводку по корзине, скрыть значок загрузчика
Фактические результаты:
Отобразить значок загрузчика, загрузить раздел оплаты и сводку по корзине, значок загрузчика не скрывается и не остается.
Нет ошибок JS на вкладке консоль или сеть в FF (запрос ajax в раздел получения оплаты). После обновления с помощью #payment в URL все работает нормально. Даже если открыть/оформить заказ без #оплаты (начните с 1-го шага), 2-й шаг открывается плавно.
Я поднял вопрос в github: https://github.com/magento/magento2/issues/7186
1 answers
Эта проблема все еще не устранена, но есть обходной путь от @dcabrejasazagra здесь
Обходной путь:
Переопределение vendor/magento/module-checkout/view/frontend/web/js/model/shipping-save-processor/default.js
в вашу тему
magento/app/design/frontend/Vendor/Theme/Magento_Checkout/web/js/model/shipping-save-processor/default.js
Внутри этого файла вы найдете fullScreenLoader.stopLoader();
вызываемые методы done и fail
Поэтому вам нужно заменить их на fullScreenLoader.stopLoader(true);
, что заставит остановить загрузчик и решить проблему.
stopLoader()
метод определен в vendor/magento/module-checkout/view/frontend/web/js/model/full-screen-loader.js
Редактировать: Я предполагаю, что некоторые компонент выходит из строя при проверке и методе trigger.fail(), но процессор ошибок неправильно обрабатывает ошибки, отображает ошибки и скрывает загрузчик.