Объект cart доступен во всех шаблонах темы.
{% if cart.enable_coupon? %}
<form action="{{ cart_url }}" method="post" >
<input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
<button type="submit">
Применить купон
</button>
{% if cart.invalid_coupon? %}
<div class="discounts-notice notice notice-error">
{{ cart.coupon_error }}
</div>
{% endif %}
{% if cart.discounts.size > 0 %}
{% for discount in cart.discounts %}
<div class="discount">
<div class="discount-title">
{{ discount.description }}
</div>
<div class="discount-prices prices">
<span class="prices-current">
- {{ discount.amount | money }}
</span>
</div>
</div>
{% endfor %}
{% endif %}
</form>
{% endif %}
{% if cart.enable_coupon? %}
<form action="{{ cart_url }}" method="post" >
<input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
<button type="submit">
Применить купон
</button>
{% if cart.invalid_coupon? %}
<div class="discounts-notice notice notice-error">
{{ cart.coupon_error }}
</div>
{% endif %}
{% if cart.discounts.size > 0 %}
{% for discount in cart.discounts %}
<div class="discount">
<div class="discount-title">
{{ discount.description }}
</div>
<div class="discount-prices prices">
<span class="prices-current">
- {{ discount.amount | money }}
</span>
</div>
</div>
{% endfor %}
{% endif %}
</form>
{% endif %}
{% if cart.discounts.size > 0 %}
{% for discount in cart.discounts %}
<div class="discount">
<div class="discount-title">
{{ discount.description }}
</div>
<div class="discount-prices prices">
<span class="prices-current">
- {{ discount.amount | money }}
</span>
</div>
</div>
{% endfor %}
{% endif %}
{% if cart.enable_coupon? %}
<form action="{{ cart_url }}" method="post" >
<input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
<button type="submit">
Применить купон
</button>
{% if cart.invalid_coupon? %}
<div class="discounts-notice notice notice-error">
{{ cart.coupon_error }}
</div>
{% endif %}
{% if cart.discounts.size > 0 %}
{% for discount in cart.discounts %}
<div class="discount">
<div class="discount-title">
{{ discount.description }}
</div>
<div class="discount-prices prices">
<span class="prices-current">
- {{ discount.amount | money }}
</span>
</div>
</div>
{% endfor %}
{% endif %}
</form>
{% endif %}
{% if cart.enable_coupon? %}
<form action="{{ cart_url }}" method="post" >
<input type="text" name="cart[coupon]" value="{{ cart.coupon }}" placeholder="Введите купон">
<button type="submit">
Применить купон
</button>
{% if cart.invalid_coupon? %}
<div class="discounts-notice notice notice-error">
{{ cart.coupon_error }}
</div>
{% endif %}
{% if cart.discounts.size > 0 %}
{% for discount in cart.discounts %}
<div class="discount">
<div class="discount-title">
{{ discount.description }}
</div>
<div class="discount-prices prices">
<span class="prices-current">
- {{ discount.amount | money }}
</span>
</div>
</div>
{% endfor %}
{% endif %}
</form>
{% endif %}
{% for item in cart.items %}
<div class="item">
<div class="item-title">
{{ item.title }}
</div>
<div class="item-title">
{{ item.quantity | money }} × {{ item.sale_price }} = {{ item.total_price | money }}
</div>
</div>
{% endfor %}
Товаров в корзине: {{ cart.items_count }}
Итого: {{ cart.items_price | money }}
{% if cart.items_weight %}
Сумарный вес товаров в корзине: {{ cart.items_weight }}
{% endif %}
Суммарная стоимость заказа с учетом доставки: {{ cart.total_price | money }}
Для работы данного функционала нужно включить настройку в бэк-офисе: Настройки -> Карточка магазина -> Включить комментарии к позициям заказа
<!-- Вывод комментария в корзине -->
<form action="{{ cart_url }}" method="post">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="make_order" value="">
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
<div class="item-comment">
<!-- изменить комментарий в корзине -->
<input type="text" name="cart[order_line_comments][{{ item.id }}]" value="{{ item.comment }}" />
<!-- Просто вывести комментарий -->
<span>
{{ item.comment }}
</span>
</div>
</div>
{% endfor %}
<input type="submit" value="Оформить">
</form>
<!-- Форма добавления товара с комментарием -->
<form action="{{ cart_url }}" method="post" data-product-id="{{ product.id }}">
{% if product.show_variants? %}
<select name="variant_id" data-product-variants>
{% for variant in product.variants %}
<option value="{{ variant.id }}">{{ variant.title | escape }}</option>
{% endfor %}
</select>
{% else %}
<input type="hidden" name="variant_id" value="{{product.variants.first.id}}" >
{% endif %}
<!-- Комментарий к позиции заказа. -->
<input type="text" name="comment" value="">
<div data-quantity>
<input type="text" name="quantity" value="1" />
<span data-quantity-change="-1">-</span>
<span data-quantity-change="1">+</span>
</div>
<button type="submit" data-item-add>
Добавить в корзину
</button>
</form>
Активно используется в атрибутах name полей формы корзины.
Например:
<input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" />
<input type="text" name="cart[order_line_comments][{{ item.id }}]" value="{{ item.comment }}" />
<form action="{{ cart_url }}" method="post">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="make_order" value="">
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
{% if item.weight %}
<div class="item-weight">
Вес товара: {{ item.weight }} {{ item.unit }}
</div>
<div class="item-weight">
Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
</div>
{% endif %}
<div class="item-quantity">
Изменить количество товаров позиции:
<input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
</div>
<a href="{{ item.url }}" data-item-target="{{ item.id }}" class="item-remove js-item-remove">
Удалить
</a>
</div>
{% endfor %}
<input type="submit" value="Оформить">
</form>
<!-- jQuery скрипт удаления -->
<script type="text/javascript">
$(document).ready(function() {
$('.js-item-remove').click(function(event) {
event.preventDefault();
var itemUrl = $(this).attr('href');
var removeUrl = itemUrl + '.json';
var _targetId = $(this).data('item-target');
var $itemBlock = $('[data-item-block="'+ _targetId +'"]')
$.ajax({
url: itemUrl,
type: 'POST',
data: { _method: 'delete'}
})
.done(function() {
console.log("Товар успешно удален");
$itemBlock.remove();
})
.fail(function() {
console.log("Что то пошло не так");
})
});
});
</script>
{% for item in cart.items %}
<div class="cart-item">
<div class="item-image">
<a class="item-image-link" href="{{item.product.url}}?variant_id={{item.variant.id}}">
<img src="{{ item.product.first_image.medium_url }}">
</a>
</div>
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
</div>
{% endfor %}
<form action="{{ cart_url }}" method="post">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="make_order" value="">
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
<div class="item-quantity">
Изменить количество товаров позиции:
<input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
</div>
</div>
{% endfor %}
<input type="submit" value="Оформить">
</form>
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
<div class="item-price">
{{ item.sale_price | money }} × {{ item.quantity }} = {{ item.total_price | money }}
</div>
</div>
{% endfor %}
Если у товара позиции есть модификация, помимо имени товара, в скобках через слеш будет выведена информация о модификации.
Например: Футболка (Белая / XL)
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.title }}
</a>
</div>
{% endfor %}
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
<div class="item-price">
{{ item.sale_price | money }} × {{ item.quantity }} = {{ item.total_price | money }}
</div>
</div>
{% endfor %}
<form action="{{ cart_url }}" method="post">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="make_order" value="">
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
{% if item.weight %}
<div class="item-weight">
Вес товара: {{ item.weight }} {{ item.unit }}
</div>
<div class="item-weight">
Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
</div>
{% endif %}
<div class="item-quantity">
Изменить количество товаров позиции:
<input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
</div>
</div>
{% endfor %}
<input type="submit" value="Оформить">
</form>
<form action="{{ cart_url }}" method="post">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="make_order" value="">
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
{% if item.weight %}
<div class="item-weight">
Вес товара: {{ item.weight }} {{ item.unit }}
</div>
<div class="item-weight">
Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
</div>
{% endif %}
<div class="item-quantity">
Изменить количество товаров позиции:
<input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
</div>
</div>
{% endfor %}
<input type="submit" value="Оформить">
</form>
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<div class="item-image">
<a class="item-image-link" href="{{item.product.url}}?variant_id={{item.variant.id}}">
<img src="{{ item.product.first_image.medium_url }}">
</a>
</div>
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
<a href="{{ item.url }}" data-item-target="{{ item.id }}" class="item-remove js-item-remove">
Удалить
</a>
</div>
{% endfor %}
<!-- jQuery скрипт удаления -->
<script type="text/javascript">
$(document).ready(function() {
$('.js-item-remove').click(function(event) {
event.preventDefault();
var itemUrl = $(this).attr('href');
var removeUrl = itemUrl + '.json';
var _targetId = $(this).data('item-target');
var $itemBlock = $('[data-item-block="'+ _targetId +'"]')
$.ajax({
url: itemUrl,
type: 'POST',
data: { _method: 'delete'}
})
.done(function() {
console.log("Товар успешно удален");
$itemBlock.remove();
})
.fail(function() {
console.log("Что то пошло не так");
})
});
});
</script>
{% for item in cart.items %}
<div class="cart-item">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.title }}
</a>
{% if item.variant.option_values.size > 0 %}
<div class="item-option_values">
{% for option_value in item.variant.option_values %}
<div class="item-option_name">
<span>{{ option_value.option_name.title }}</span> - <span>{{ option_value.title }}</span>
</div>
{% endfor %}
</div>
{% endif %}
</div>
{% endfor %}
<form action="{{ cart_url }}" method="post">
<input type="hidden" name="_method" value="put">
<input type="hidden" name="make_order" value="">
{% for item in cart.items %}
<div class="cart-item" data-item-block="{{ item.id }}">
<a href="{{ item.product.url }}?variant_id={{ item.variant.id }}" class="item-title">
{{ item.product.title }}
</a>
{% if item.weight %}
<div class="item-weight">
Вес товара: {{ item.weight }} {{ item.unit }}
</div>
<div class="item-weight">
Суммарный вес товаров позиции: {{ item.total_weight }} {{ item.unit }}
</div>
{% endif %}
<div class="item-quantity">
Изменить количество товаров позиции:
<input type="text" name="cart[quantity][{{ item.id }}]" value="{{ item.quantity }}" class="item-quantity-input">
</div>
</div>
{% endfor %}
<input type="submit" value="Оформить">
</form>