Работа с корзиной товаров


Типовая задача

Часто возникает необходимость использовать дополнительное свойство товара при работе с корзиной товаров (к стандартным свойствам товара в системе относятся: идентификатор, количество, цена), например, цвет товара или его вес. С версии 4.33 это стало возможным. Рассмотрим задачу с подсчетом общего веса заказа на примере демонстрационного магазина, который доступен в закрытой зоне.

 

Решение

1. В catalo g _items_design.xml для функции addItem(); добавляем новый параметр $Attribute:weight$. Должно получиться следующее

onclick="addItem('$Attribute:id$', document.getElementById('ilq_$Attribute:id$').value, '$Multiply[left: $Variable[exchange_rate]$; right: $Attribute:price$; digits: 2]$')" style="cursor: hand", $Attribute:weight$)

2. В shop.js для функций addItem(); и ChangeQuantity(); добавляем параметр weight через запятую. В shop.js получим:

function addItem(id, quantity, price, weight){ ..........

function ChangeQuantity(id, quantity, price, weight){ ..........

Теперь вес товара можно получить из cookie в cart_design.xml макроподстановкой $Attribute:weight$ для отображения этого веса в дизайне корзины.

3. Чтобы вывести общий вес товара нужно воспользоваться JavaScript.

В header файла   cart_design.xml вставляем

<script>var weight=0</script>

В item в столбец для отображения веса товара добавляем

<script>var weight=weight + $Multiply[left: $Cart:quantity$; right: $Attribute:weight$; digits: 2]$</script>
$Multiply[left: $Cart:quantity$; right: $Attribute:weight$; digits: 2]$ кг .

Вес единицы продукции выводим через $Attribute:weight$ кг.  в том столбце, где это необходимо.

В footer

Вес заказа : <script>document.write(weight);</script> кг.