Skip to content
MiniShop3
MiniShop3
Современный компонент интернет-магазина для MODX 3
  1. Компоненты
  2. MiniShop3
  3. Сниппеты
  4. msOrderTotal

msOrderTotal

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

Кэширование

Сниппет работает с сессией пользователя и должен вызываться некэшированно.

Параметры

ПараметрПо умолчаниюОписание
tplЧанк оформления (если пусто — возвращает данные)
returndataФормат: 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

msOrderTotalmsCart
Только итоговые данныеПолная корзина с товарами
Лёгкий, быстрыйЗагружает данные всех товаров
Для мини-корзиныДля страницы корзины
Минимум данныхВсе поля товаров