Кастомизация корзины.

Стоит задача после вывода и выбора товара сразу, без перезагрузки страницы, выводить форму обратной связи с параметрами товара. Поскольку добавление товара в корзину реализовано аяксом, то вроде как для этого нет препятствий. Логика такая - товар добавили в корзину, после этого проверили есть ли добавление и есть ли сам объект в корзине, если есть, то загружаем форму заказа. Для этих целей использую вот этот блок: div data-smodx-data="cost" class="order_data"

    {if $basket_result.success && $basket_result.object}

         {include file="blocks/order-form.tpl"} 

    {else}

        div class="sum" span class="num" span  span class="text"Корзина пуста/span  span style="white-space:nowrap;">  div

    {/if}

div Но вместо ожидаемого вывода формы ОС непосредственно после клика на кнопке "купить", выводится строка с количеством и суммой товара. Если страницу перегрузить, то тогда выводится и сама форма.

Подскажите, плиз, откуда берется строка, если в шаблоне ее нет? Какой скрипт ее туда всобачивает?

Привет. Подскажите, плиз, откуда берется строка, если в шаблоне ее нет? Какой скрипт ее туда всобачивает? За отображение измененных данных отвечает скрипт shopmodx._basket.widget.js. Там есть метод resetBasket. Он то и отвечает за визуализацию корзины. Пока я читал пост и пытался понять логику твоих действий, у меня сложилось ощущение, что ты путаешь белое с черным. Сделаю одну поправку: мы говорим о базовом функционале сборки (в частности фронтенда). Но вместо ожидаемого вывода формы ОС непосредственно после клика на кнопке "купить", выводится строка с количеством и суммой товара. Если страницу перегрузить, то тогда выводится и сама форма. Ожидать появление формы тут не стоит в принципе. При добавлении товара срабатывает событие и вызывается метод обновления корзины (js). И все. Ты же прописываешь условие для отображения в смарти-шаблоне. Но это бэкенд! При рендеринге страницы, когда еще ни одного товара не добавлено, этой формы не будет в принципе. Так что тут хоть волосы рви, а ничего не появится, даже если ты бы модифицировал метод обновления корзины…

При рендеринге страницы, когда еще ни одного товара не добавлено, этой формы не будет в принципе. Ну это само-собой, откуда ей появиться, если товаров нет. Это понятно. Но что мешает ей появится сразу же после его добавления? Данные товара грузятся в корзину аяксом, т.е. их можно получить без перезагрузки страницы по событию добавления товара в корзину. Рендерится же количество и сумма заказа по этому событию.

Но что мешает ей появится сразу же после его добавления? Вопрос не в том, что мешает, а в том как ты ее собираешься получить/отобразить. Я твоего кода вызова формы не видел, так что мне больше сказать по этому вопросу нечего. Данные товара грузятся в корзину аяксом, т.е. их можно получить без перезагрузки страницы по событию добавления товара в корзину. Рендерится же количество и сумма заказа по этому событию. Ну да, у нас в сборке получаются данные товаров и корзины (сырые данные, не html), но это все. Следует ознакомится с тем, какие данные и каким образом получаются. Потом уже придет понимание, как реализовать поставленную задачу.

Все же, спасибо за наводку. Теперь понятно в какую сторону копать

Понятно что не html, его я и сам могу вставить. Т.е. по событию добавления товара вместо вставки цены и количества, я вставлю html код корзины как innerhtml() блока, а из $basket_result.object вытащу нужные данные. Думаю, должно получиться