Удаление и добавление товаров в краткой корзине HostCMS

По умолчанию краткая корзина в магазине HostCMS очень скудная, в ней есть только название товара и его цена.

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

Если взять 2 основных шаблона:

Демонстрационный магазин
Демонстрационный сайт

То корзины в них примерно одинаковые.

Для редактирования возьмем шаблон "Демонстрационный магазин", в котором краткая корзина выглядит так:

Изменения в ТДС:

Открываем типовые динамические страницы интернет магазина, далее "Интернет-магазин корзина" и "Настройки страницы"

Находим:

// Добавление товара в корзину
if (Core_Array::getRequest('add'))
...

И выше добалвяем:

Находим:

// Ajax
if (Core_Array::getRequest('_', FALSE) && (Core_Array::getRequest('add') || Core_Array::getRequest('loadCart')))

И заменяем на:

// Ajax
if (Core_Array::getRequest('_', FALSE) && (Core_Array::getRequest('add') || Core_Array::getRequest('loadCart') || Core_Array::getRequest('updateCart') || Core_Array::getRequest('deleteCart')))

Изменения в JS:

Открываем скрипт магазина /templates/template_НОМЕР/script.js

Находим:

// Функции без создания коллекции
$.extend({
...

И добалвяем в них 3 функции:

Изменения в XSL-шаблоне:

В XSL-шаблон добавляем для товара:

В итоге получим нечто подобное:

Красивее не стало, но стало функциональнее

Для вывода общей суммы покупок можно добавить:

<xsl:value-of select="sum(shop_cart[postpone = 0]/quantity)"/>

Смотрите также:

Добавить комментарий:

Ваш комментарий отправлен!

Комментарии:

  • Игорь:

    Добрый день! У меня, почему-то, не хотят данные обновляться через ajax. С обновление страницы данные меняются, а через ajax нет. Вы можете возмездно помочь?

    Ответить
  • Мария:

    спасибо за решение

    Ответить