AJAX Cart или удаление товара из корзины без перезагрузки страницы


#1

Здравствуйте. Есть ли модуль для динамического обновления корзины после удаления товаров? Сейчас очень не удобно, когда в корзине куча товаров, удаляешь один, страница перезагружается и возвращает тебя в начало страницы. Нужно чтобы это происходило по AJAX как вариант. Спасибо заранее за варианты решения задачи.


#2

design/themes/responsive/templates/views/checkout/components/cart_items.tpl

в начало файла добавьте

{assign var="ajax_class" value="cm-ajax"}

Затем почистить кэш. Должно помочь


#3

Здравствуйте. Попробовал, но страница по прежнему перезагружается и работает без изменений. Пробовал вставлять и в тему responsive и в тему abt__unitheme2 (это текущая тема), не помогает. Что не так делаю?


#4

При таком способе, если в корзине 1 товар, то при его удалении ничего не произойдет, пока не перезагрузишь страницу.

Можно так пофиксить и тогда после удаления последнего товара страница будет перезагружаться:

{if $smarty.session.cart.amount > 1}
    {assign var="ajax_class" value="cm-ajax"}
{/if}

#5

Попробуйте кэш почистить, если не чистили.


#6

Я и кэш чистил и товаров разных у меня было штук 30


#7

Типа все равно попробовать именно этот кусок кода?


#8

Я протестил, у меня работает. Возможно модуль какой-нибудь оверрайд шаблона делает.


#9

Может не туда вставляю?


#10

А если дам Вам доступ по FTP и в админку, сможете повторить у меня?


#11

попробуйте прям удалить/переименовать папку var/cache


#12

Есть! Заработало) Спасибо огромное всем за помощь!!! А можно ли такое применить и в этих двух блоках (на скриншоте указал)?


#13

Не подскажете? AJAX Cart или удаление товара из корзины без перезагрузки страницы


#14

design/themes/TEMA/templates/blocks/checkout/products_in_cart.tpl

попробуйте поставить сm-ajax перед ty-order-products__item-delete

а в корзине сверху и так аяксом должно удаляться

(!) Не тестировано


#15

У меня там нет данного файла((

А в корзине на главной дело в том, что после удаления блок скрывается, и потом приходится его также открывать и искать то место, где удалял товар. МОжно ли как-то не закрывать блок после удаления?


#16

Я попробовал в теме responsive добавить данный код вот так (скрин), но страница оформления по-прежнему обновляется при удалении каждого товара


#17

Теперь началась такая история, что если на странице корзины добавлять количество товара, то:

  1. товар не удаляется из корзины (лишь надписи об удалении, а по факту он так и торчит в корзине. Лишь если обновить страницу)
  2. счетчик товаров на корзине не меняет своего значения пока не обновишь страницу
    Как быть?

#18

По первому так попробуйте:

{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")}">&nbsp;<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")}">&nbsp;<i class="ty-delete-big__icon ty-icon-cancel-circle"></i>


#20

По первому вы написали такой же код (один в один) как писали выше в первых сообщениях)


#21

Можно похардкорней тогда, должно сработать:

{if $smarty.session.cart.products|@count > 1}
    {assign var="ajax_class" value="cm-ajax"}
{/if}