Типовая задача
Часто возникает необходимость использовать дополнительное свойство товара при работе с корзиной товаров (к стандартным свойствам товара в системе относятся: идентификатор, количество, цена), например, цвет товара или его вес. С версии 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> кг.