bitrix.sale.order.ajax раскрыть блоки доставки и оплаты. Если в компоненте одношагового оформления ...

Михаил Базаров

Дата последнего входа: 50 минут назад
Дата регистрации: 7 Февраля 2012 21:17
День рождения: 7 ноября
Пол: Мужской
Михаил Базаров -> Всем
20 марта 2019 10:57
bitrix.sale.order.ajax раскрыть блоки доставки и оплаты.

Если в компоненте одношагового оформления заказа, нужно раскрыть блоки доставки и оплаты:
В самый низ template.php добавляем
$(window).on('ready', function(event){
    BX.Sale.OrderAjaxComponent.editDeliveryBlock(true);
    BX.Sale.OrderAjaxComponent.editPaySystemBlock(true);
});
Для блоков оплаты и доставки добавляем селектор bx-selected

Тоже самое, можно делать со всеми блоками:
BX.Sale.OrderAjaxComponent.editActiveBasketBlock(true);
BX.Sale.OrderAjaxComponent.editActiveRegionBlock(true);
BX.Sale.OrderAjaxComponent.this.editActiveDeliveryBlock(true);
BX.Sale.OrderAjaxComponent.editActivePaySystemBlock(true);
BX.Sale.OrderAjaxComponent.editActivePickUpBlock(true);
BX.Sale.OrderAjaxComponent.editActivePropsBlock(true);

И можно убрать кнопки "Далее - Назад" в файле order_ajax.js

Для доставки: найти и закомментировать
this.getBlockFooter(deliveryContent);
Для оплаты:
this.getBlockFooter(paySystemContent);

Денис Чучумашев
работает, только после выбора доставки или оплаты, блоки все равно оказываются закрытыми.
Денис Чучумашев
Запускать

   BX.Sale.OrderAjaxComponent.editActiveDeliveryBlock(true);
   BX.Sale.OrderAjaxComponent.editActivePaySystemBlock(true);
...

после каждой валидации - тоже не вариант. Должно быть более гибкое решение
Денис Чучумашев
Нашел способ другой. Причем, блоки изначально остаются открытыми. Я сделал так:

1. комментируем строчки:
/*if (this.activeSectionId !== this.regionBlockNode.id)
this.editFadeRegionContent(this.regionBlockNode.querySelector('.bx-soa-section-content'));

if (this.activeSectionId != this.propsBlockNode.id)
this.editFadePropsContent(this.propsBlockNode.querySelector('.bx-soa-section-content'));*/

2. меняем:
var active = section.id == this.activeSectionId,

на:
var active = true,

3. скрываем кнопки "далее" и "назад" и изменить стилями:
.pull-left.btn-default.btn-md, .pull-right.btn-default.btn-md, .bx-soa-editstep {
   display: none!important;
}

Авторизация

На сайте работает вход через социальные сети. Просто, выберите наиболее удобную сеть и авторизация произойдет автоматически:
Проходя авторизацию, Вы безоговорочно принимаете условия политики конфеденциальности