
msOrderTotal
Вспомогательный сниппет для вывода итоговой суммы текущего заказа. Полезен для отображения мини-корзины или итогов в шапке сайта.
Кэширование
Сниппет работает с сессией пользователя и должен вызываться некэшированно.
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
| tpl | Чанк оформления (если пусто — возвращает данные) | |
| return | data | Формат: data, json |
Примеры
Получение данных
fenom
{set $total = '!msOrderTotal' | snippet}
{if $total.count > 0}
В корзине: {$total.count} товаров на {$total.cost} руб.
{/if}Мини-корзина в шапке
fenom
{set $cart = '!msOrderTotal' | snippet}
<a href="{'ms3_cart_page' | option}" class="header-cart">
<span class="cart-icon">🛒</span>
<span class="cart-count" data-ms-cart-count>{$cart.count}</span>
<span class="cart-total" data-ms-cart-total>{$cart.cost}</span> руб.
</a>С использованием чанка
fenom
{'!msOrderTotal' | snippet : [
'tpl' => 'tpl.msOrderTotal'
]}JSON для JavaScript
fenom
<script>
window.cartTotal = {'!msOrderTotal' | snippet : ['return' => 'json']};
</script>Структура данных
Возвращает массив:
php
[
'count' => 5, // Общее количество товаров
'positions' => 3, // Количество позиций (уникальных товаров)
'cost' => 7500, // Стоимость товаров
'weight' => 2500, // Общий вес
'delivery_cost' => 300, // Стоимость доставки
'total' => 7800, // Итого к оплате
'discount' => 0, // Сумма скидки
]Пример чанка
fenom
{* tpl.msOrderTotal *}
<div class="mini-cart" data-ms-minicart>
{if $count > 0}
<a href="{'ms3_cart_page' | option}" class="mini-cart-link">
<span class="mini-cart-count">{$count}</span>
<span class="mini-cart-cost">{$cost}</span> руб.
</a>
{else}
<span class="mini-cart-empty">Корзина пуста</span>
{/if}
</div>Автообновление
Для автоматического обновления мини-корзины при изменениях используйте data-атрибуты:
html
<span data-ms-cart-count>0</span>
<span data-ms-cart-cost>0</span>
<span data-ms-cart-total>0</span>JavaScript MiniShop3 автоматически обновит эти элементы при:
- Добавлении товара в корзину
- Изменении количества
- Удалении товара
- Очистке корзины
Отличие от msCart
| msOrderTotal | msCart |
|---|---|
| Только итоговые данные | Полная корзина с товарами |
| Лёгкий, быстрый | Загружает данные всех товаров |
| Для мини-корзины | Для страницы корзины |
| Минимум данных | Все поля товаров |
