Александр Кулеша написал: а зачем это делать в оформлении ? просто тогда наверно проще совместить 2 компонента на одной странице.
Оба компонента на аяксе обновляются. Т.е. целый ряд дублирующих запросов. У меня так на одном сайте сделано - в планах (если битриксный компонент не будет допилен - свой компонент ваять). В чем особый геморой то? Содержимое корзины есть... Пересчеты производятся и без этого в ряде случаев... Это было бы полезной фичей.
На мой взгляд, не просто полезной а необходимой, раз уж заказ оформляется на одной странице, то пользователь должен иметь возможность как изменить количество, так и удалить/добавить товар....
Вставить 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 добавил событие для кнопок (уменьшение/увеличение количества товаров)
Тут ещё по ходу изучения нового шаблона возникла идея: Предлагаю ввести новую компетенцию - "Специалист по управлению компонентом sale.order.ajax", ну или как-то так.
Ещё интересный момент: событие "OnSaleComponentOrderOneStepOrderProps" срабатывает ТОЛЬКО при включенном режиме совместимости (параметр COMPATIBLE_MODE=Y), все остальные старые события работают при любых режимах. С чем это связано, понять затрудняюсь, техподдержка, кстати, о такой особенности не знает.