Здравствуйте. Есть ли модуль для динамического обновления корзины после удаления товаров? Сейчас очень не удобно, когда в корзине куча товаров, удаляешь один, страница перезагружается и возвращает тебя в начало страницы. Нужно чтобы это происходило по AJAX как вариант. Спасибо заранее за варианты решения задачи.
design/themes/responsive/templates/views/checkout/components/cart_items.tpl
в начало файла добавьте
{assign var="ajax_class" value="cm-ajax"}
Затем почистить кэш. Должно помочь
Здравствуйте. Попробовал, но страница по прежнему перезагружается и работает без изменений. Пробовал вставлять и в тему responsive и в тему abt__unitheme2 (это текущая тема), не помогает. Что не так делаю?
При таком способе, если в корзине 1 товар, то при его удалении ничего не произойдет, пока не перезагрузишь страницу.
Можно так пофиксить и тогда после удаления последнего товара страница будет перезагружаться:
{if $smarty.session.cart.amount > 1}
{assign var="ajax_class" value="cm-ajax"}
{/if}
Попробуйте кэш почистить, если не чистили.
Я и кэш чистил и товаров разных у меня было штук 30
Типа все равно попробовать именно этот кусок кода?
Я протестил, у меня работает. Возможно модуль какой-нибудь оверрайд шаблона делает.
Может не туда вставляю?
А если дам Вам доступ по FTP и в админку, сможете повторить у меня?
попробуйте прям удалить/переименовать папку var/cache
Есть! Заработало) Спасибо огромное всем за помощь!!! А можно ли такое применить и в этих двух блоках (на скриншоте указал)?
design/themes/TEMA/templates/blocks/checkout/products_in_cart.tpl
попробуйте поставить сm-ajax перед ty-order-products__item-delete
а в корзине сверху и так аяксом должно удаляться
(!) Не тестировано
У меня там нет данного файла((
А в корзине на главной дело в том, что после удаления блок скрывается, и потом приходится его также открывать и искать то место, где удалял товар. МОжно ли как-то не закрывать блок после удаления?
Я попробовал в теме responsive добавить данный код вот так (скрин), но страница оформления по-прежнему обновляется при удалении каждого товара
Теперь началась такая история, что если на странице корзины добавлять количество товара, то:
- товар не удаляется из корзины (лишь надписи об удалении, а по факту он так и торчит в корзине. Лишь если обновить страницу)
- счетчик товаров на корзине не меняет своего значения пока не обновишь страницу
Как быть?
По первому так попробуйте:
{if $smarty.session.cart.amount > 1}
{assign var="ajax_class" value="cm-ajax"}
{/if}
По второму скорее всего нужны дополнительные доработки, сложно сказать.
Попробуйте cart_items.tpl
заменить
<a class="{$ajax_class} ty-cart-content__product-delete ty-delete-big" href="{"checkout.delete?cart_id=
$key&redirect_mode=
$runtime.mode"|fn_url}" data-ca-target-id="cart_items,checkout_totals,cart_status*,checkout_steps,checkout_cart" title="{__("remove")}"> <i class="ty-delete-big__icon ty-icon-cancel-circle"></i>
на
<a class="{$ajax_class} cm-ajax-full-render ty-cart-content__product-delete ty-delete-big" href="{"checkout.delete?cart_id=
$key&redirect_mode=
$runtime.mode"|fn_url}" data-ca-target-id="cart_items,checkout_totals,cart_status*,checkout_steps,checkout_cart" title="{__("remove")}"> <i class="ty-delete-big__icon ty-icon-cancel-circle"></i>
По первому вы написали такой же код (один в один) как писали выше в первых сообщениях)
Можно похардкорней тогда, должно сработать:
{if $smarty.session.cart.products|@count > 1}
{assign var="ajax_class" value="cm-ajax"}
{/if}