Корзина заказов

    Корзина вызывается на всех страницах, где необходима работа магазина -- добавление, редактирование и удаление товаров.

    Совет: корзина - это обёртка для сниппета DocLister и в ней работают практически все его параметры.

    Как это может пригодиться? Скажем, вы хотите показывать в корзине фотографию товара. Пускай она хранится в ТВ с именем mainphoto. Как и в DocLister, вам необходимо указать сниппету, что в выборку включается это тв при помощи параметра &tvList=mainphoto.

    Пример вызова

    [!Cart
        &instance=`products`
        &theme=``
        &tpl=`tpl`
        &optionsTpl=`optionsTpl`
        &ownerTPL=`ownerTPL`
        &subtotalsRowTpl=`subtotalsRowTpl`
        &subtotalsTpl=`subtotalsTpl`
    !]

    Примеры чанков

    Больше примеров вы можете найти в папке

    assets/plugins/commerce/templates/front/

    ownerTPL

    Шаблон обёртки корзины

    <div data-commerce-cart="[+hash+]">
        <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>
                    [+subtotals+]
                    <tr>
                        <td class="text-xs-right" colspan="4">[%cart.total%]:</td>
                        <td class="text-xs-right">[[PriceFormat? &price=`[+total+]` &convert=`0`]]</td>
                    </tr>
                </tfoot>
    
                <tbody>
                    [[if? &is=`[+count+]:>:0` &then=`
                        [+dl.wrap+]
                    ` &else=`
                        <tr>
                            <td colspan="3" class="text-xs-center">
                                [%cart.no_items%]
                        </tr>
                    `]]
                </tbody>
            </table>
        </div>
    
        [[if? &is=`[+count+]:>:0` &then=`
            <div class="text-xs-right">
                <p><a href="28.html">[%cart.to_checkout%]</a></p>
            </div>
        `]]
    </div>

    Совет: для вывода различных шаблонов пустой или полной корзины вы можете воспользоваться любым сниппетом, который сможет проверить плейсхолдер [+count+]:

    [[if? &is=`[+count+]:>:0` &then=`ШАБЛОН ПОЛНОЙ КОРЗИНЫ`
    &else=`ШАБЛОН ПУСТОЙ КОРЗИНЫ`]]

    tpl

    Шаблон одного товара в корзине

    <tr data-id="[+id+]" data-commerce-row="[+row+]">
        <td>
            <img src="[[phpthumb? &input=`[+tv.mainphoto+]` &options=`w=80,h=80,zc=1,f=png`]]" class="img-fluid" alt="[+e.title+]">
        <td>
            <a href="[+url+]">[+name+]</a>
            <div class="small text-muted">
                [+options+]
            </div>
        <td>
            <input type="text" name="count" class="form-control" value="[+count+]" 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=`[+price+]` &convert=`0`!]
    
        <td class="text-xs-right">
            [!PriceFormat? &price=`[+total+]` &convert=`0`!]
    </tr>
    

    subtotalsTpl

    Обёртка для доп. опций типа "Доставка"

    [+wrap+]
    

    subtotalsRowTpl

    Один пункт в доп. опциях

    <tr>
        <td class="text-xs-right" colspan="3">[+title+]:</td>
        <td class="text-xs-right" colspan="1">[[PriceFormat? &price=`[+price+]` &convert=`0`]]</td>
    </tr>