Восстановили сайт интернет-магазин из бекапа, обновили ядро и решение. И столкнулись с такой проблемой - кнопка «Оформить заказ» не отображается, несмотря на то что:
- Все поля заполнены
- Доставка выбрана
- Ошибок в консоли нет
- Сумма заказа корректно рассчитывается
При этом в HTML кнопка присутствует, но скрыта через display: none !important.

В чем была проблема
Причина оказалась в кастомной логике проверки минимальной суммы заказа в файле:
/bitrix/templates/папка_решения/components/bitrix/sale.order.ajax/.default/order_ajax.js
В этом файле используется проверка:
checkMinimumPrice: function () {
this.switchOrderSaveButtons(
Number(this.params.MIN_SUM_TO_PAYMENT) <= Number(this.result.TOTAL.ORDER_TOTAL_PRICE)
);
},
Если параметр MIN_SUM_TO_PAYMENT не передан в компонент, то:
Number(undefined)превращается вNaN- Сравнение
NaN <= суммавсегда возвращает false - Вызывается
switchOrderSaveButtons(false) - Кнопка скрывается через JS
Именно поэтому кнопка «Оформить заказ» не отображалась.
Где нужно править
Файл подключения компонента:
/personal/cart/order/index.php
В параметрах компонента необходимо добавить:
"MIN_SUM_TO_PAYMENT" => "0",Пример блока с исправлением:
<? $APPLICATION->IncludeComponent(
"bitrix:sale.order.ajax",
".default",
array(
"ACTION_VARIABLE" => "soa-action",
"ALLOW_AUTO_REGISTER" => "Y",
"DELIVERY_NO_AJAX" => "N",
"MIN_SUM_TO_PAYMENT" => "0",
"SHOW_ORDER_BUTTON" => "final_step"
),
false
); ?>После добавления параметра кнопка начинает корректно отображаться.
Почему это происходит
В шаблоне заказа реализована дополнительная логика контроля минимальной суммы оплаты. Если параметр MIN_SUM_TO_PAYMENT отсутствует, JavaScript считает, что минимальная сумма не достигнута, и принудительно скрывает кнопку.
Это не ошибка ядра Битрикс, а особенность конкретного шаблона.
Альтернативное решение (через JS)
Если по каким-то причинам нельзя менять параметры компонента, можно защититься от undefined в JS:
checkMinimumPrice: function () {
var min = Number(this.params.MIN_SUM_TO_PAYMENT);
if (isNaN(min)) min = 0;
var total = Number(this.result?.TOTAL?.ORDER_TOTAL_PRICE);
if (isNaN(total)) total = 0;
this.switchOrderSaveButtons(min <= total);
},Но, правильнее — передавать параметр в PHP.
Если в 1С-Битрикс не отображается кнопка «Оформить заказ»:
- Проверьте наличие параметра
MIN_SUM_TO_PAYMENT - Добавьте
"MIN_SUM_TO_PAYMENT" => "0"в компонент - Очистите кеш
После этого кнопка будет работать корректно.
До внесения любых правок в файлы сайта убедитесь в наличии резервной копии.

