Jump to content

Статус "Add to Cart" / "In Cart" для товаров


Recommended Posts

Есть суть задачи - аналогично ozon.ru выводить сменяющуюся кнопку для товара "Добавить в корзину" / "В корзине". Делал ли кто-то, но не через проверку товара в корзине а как-то иначе?

 

Я обычно назначаю товару класс с его айдишниками свойств и перевожу кнопку если классы совпадают через hasClass, но скриптов бывает слишком много, надо упростить и сделать легче.

Link to comment
Share on other sites

Я делал, можно глянуть тут как работает http://www.charmante.ru/prod11954

 

Суть в том что возле кнопки скрыта другая кнопка, при клике на кнопку добавить в корзину, первая кнопка скрывается, и открывается другая кнопка с надписью "Перейти в корзину"..при выборе другого цвета или размера, кнопки меняются обратно и снова появляется кнопка "Добавить в корзину"...

Link to comment
Share on other sites

..

 

Статус не сохранится после обновления страницы.

Статус должен быть постоянным, на всех страницах магазина, по техзаданию.

Link to comment
Share on other sites

..

Решаю задачи ТЗ, по сути это не критично, важен сам статус.

В корзине они есть, и если список используется для проверки на наличие id/class в списке, на карточке товара - это еще ладно, один класс или айдишник пробежать даже по большой корзине можно, но когда дело касается product-list страницы, тут начинается напряг. Повторюсь, что скриптов много и нужно другое решение, рабочее, пусть не оригинальное, но не грузящее сайт.

 

Возможно я чего-то не знаю и этот статус можно использовать куда легче.

post-174460-0-43464300-1371132899_thumb.png

Edited by Andrey I. Egorov (see edit history)
Link to comment
Share on other sites

В product-list, в кнопке есть свойство rel, в котором указан id продукта. В JS-функцию ajaxCart.add можно прописать проверку на наличие продукта в корзине и добавлять соответствующий css-класс

  • Like 2
Link to comment
Share on other sites

Я же написал что если выбрать другой цвет или размер то кнопка добавить в корзину снова поевляется...

Link to comment
Share on other sites

Я же написал что если выбрать другой цвет или размер то кнопка добавить в корзину снова поевляется...

 

Она исчезнет если просто обновить страницу без кеширования.

Но есть спан, который статус ловит: <span class="sh_cart_q_ty">У Вас в корзине 2 товаров</span>

Поделитесь как вывели статус в спан?

 

Кстати, "У Вас в корзине.." лучше поменять на "В корзине 2 тов." или "В корзине 2 шт.", чтобы не портить настроение девушкам филологам :)

Link to comment
Share on other sites

Разобрался как сделать тоже самое на престашопе, надо в модуле blockcart в файле ajax-cart.js, в нутри функции добавить свой код:

 

success: function(jsonData,textStatus,jqXHR)
  {}

 

Код туда необходимо установить который идет уже после события.

Link to comment
Share on other sites

В blockcart.tpl есть вывод в класс или id кодов товара, его комбинаций и адреса доставки.

То же самое можно вытаскивать практически на любой странице, за исключением адреса доставки (зачем он нам?).

 

Через var в верху задаются или изменяются переменные, можно пользоваться ими же чтобы не усложнять себе задачу.

Проверка на jquery класса с таким названием как на карточке товара (вообще просто), в блоках товаров на продакт-лист или аналогичных уже сложнее, так как их множество, но сделать можно. Пробуйте.

 

Это решение железно работает, но по-идее код должен быть проще. Правда при том, что я не кодер, а верстальщик мне пока что фиолетово, как он выглядит, главное что дает результат.

Edited by Andrey I. Egorov (see edit history)
Link to comment
Share on other sites

А в самом js файле внутри той функции что я написал можно указать свои классы или айди куда выводить что то сразу же после нажатия на кнопку добавить в корзину, например указать свои классы для вывода кол-ва товаров в корзине и их общей стоимости, а так же добавить какие ни будь свои эффекты или новые функции при добавлении товара в корзину, например смена кнопки добавить в корзину на перейти в корзину...

Edited by Kerm (see edit history)
Link to comment
Share on other sites

..

..

Для быстрого решения можно обойтись небольшим скриптом в самом шаблоне. Его же, но с учетом переменных, раскидать по другим шаблонам тоже легче. Один и тот же скрипт для всех страниц где есть кнопка "Купить" не подходит.

Link to comment
Share on other sites

×
×
  • Create New...