Вставить 2 компонента на страницу вообще не вариант, так как внутри sale.order.ajax уже есть список товаров. И он встроен в общую структуру заказа, выше расположенный компонент sale.basket.basket вообще не к месту.
Сделал следующим образом:
1.Добавил шаблон sale.basket.basket который отдаёт json(html-код+js-объект настроек).
2.Полностью переписал функцию createBasketItem таким образом что она не формирует список товаров, а аяксом запрашивает с левой страницы мой sale.basket.basket и вставляет в блок списка товаров html, попутно подключая js объект и вытягивает с того компонента script.js, плюс назначаем обработчик событий для ссылок "отложить", "удалить", "добавить из отложенного", который перехватывает переход по ссылке и отправляет его же по аякс, вызывая попутно метод this.sendRequest();
3.В компоненте sale.basket.basket добавил событие для кнопок (уменьшение/увеличение количества товаров)
Код |
---|
BX.onCustomEvent(this, 'updateBasketQuantity', [result.BASKET_DATA.allSum, result.BASKET_DATA.allSum_FORMATED]); |
4.в файле order_ajax.js в init функцию добавил следующий код:
Код |
---|
BX.addCustomEvent('updateBasketQuantity', function(a,b){
_this.result.TOTAL.ORDER_PRICE=a;
_this.result.TOTAL.ORDER_PRICE_FORMATED=b;
_this.result.TOTAL.ORDER_TOTAL_PRICE=(a*1+_this.result.TOTAL.DELIVERY_PRICE*1);
_this.result.TOTAL.ORDER_TOTAL_PRICE_FORMATED=BX.Currency.currencyFormat(_this.result.TOTAL.ORDER_TOTAL_PRICE, 'RUB', true);
_this.editTotalBlock();
_this.totalBlockFixFont();
}); |
5.Получилось довольно универсальное решение.
6.Закралась мысль что с новым компонентом что-то не так.