Корзина вызывается на всех страницах, где необходима работа магазина -- добавление, редактирование и удаление товаров.
Совет: корзина - это обёртка для сниппета DocLister и в ней работают практически все его параметры.
Как это может пригодиться?
Скажем, вы хотите показывать в корзине фотографию товара. Пускай она хранится в ТВ с именем mainphoto. Как и в DocLister, вам необходимо указать сниппету, что в выборку включается это тв при помощи параметра &tvList=mainphoto.
[!Cart
&instance=`products`
&theme=``
&tpl=`tpl`
&optionsTpl=`optionsTpl`
&ownerTPL=`ownerTPL`
&subtotalsRowTpl=`subtotalsRowTpl`
&subtotalsTpl=`subtotalsTpl`
!]
Больше примеров вы можете найти в папке
assets/plugins/commerce/templates/front/
Шаблон обёртки корзины
<div data-commerce-cart="">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<td colspan="2">[%cart.item_title%]</td>
<td>[%cart.count%]</td>
<td class="text-xs-right">[%cart.item_price%]</td>
</tr>
</thead>
<tfoot>
<tr>
<td class="text-xs-right" colspan="4">[%cart.total%]:</td>
<td class="text-xs-right"></td>
</tr>
</tfoot>
<tbody>
</tbody>
</table>
</div>
</div>
Совет: для вывода различных шаблонов пустой или полной корзины вы можете воспользоваться любым сниппетом, который сможет проверить плейсхолдер :
Шаблон одного товара в корзине
<tr data-id="" data-commerce-row="">
<td>
<img src="" class="img-fluid" alt="">
<td>
<a href=""></a>
<div class="small text-muted">
</div>
<td>
<input type="text" name="count" class="form-control" value="" data-commerce-action="recount">
<button type="button" data-commerce-action="decrease">-</button>
<button type="button" data-commerce-action="increase">+</button>
<button type="button" data-commerce-action="remove">x</button>
<td class="text-xs-right">
[!PriceFormat? &price=`` &convert=`0`!]
<td class="text-xs-right">
[!PriceFormat? &price=`` &convert=`0`!]
</tr>
Обёртка для доп. опций типа "Доставка"
Один пункт в доп. опциях
<tr>
<td class="text-xs-right" colspan="3">:</td>
<td class="text-xs-right" colspan="1"></td>
</tr>