Кошик замовлень

    Кошик викликається на всіх сторінках, де необхідна робота магазину - додавання, редагування та видалення товарів.

    Порада: кошик - це обгортка для сніппета DocLister і в ньому працюють практично всі його параметри.

    Як це може стати в нагоді? Скажімо, ви хочете показувати в кошику фотографію товару. Нехай вона зберігається у ТБ з ім'ям mainphoto. Як і в DocLister, вам необхідно за допомогою параметра &tvList=mainphoto вказати сніппету, що у вибірку включається ТВ.

    Приклад виклику

    [!Cart
        &instance=`products`
        &tvList=`image`
    !]

    Параметри

    Параметр Опис
    instance

    Тип кошика.

    За допомогою сніпету можна вивести кошик із товарами, або списки обраного чи порівняння. Відповідно, значення може бути products, wishlist або comparison. Значення за промовчанням - products

    Це значення встановлено. Якщо потрібні інші списки, їх можна створити в плагіні на подію OnInitializeCommerce:

    ci()->carts->addCart(new \Commerce\Carts\ProductsList($modx, 'listname')));
    theme

    Префікс імені шаблонів.

    За промовчанням пусте значення. Можна використовувати темизацію кошика, щоб не вказувати всі шаблони окремо. Може бути префіксом імен файлів, або ім'ям вкладеної папки (тоді в кінці потрібно вказати слеш).

    Спочатку доступні шаблони без префіксу та з префіксом "mini", наприклад minicart_wrap та ін. - для мінікошика.

    tpl

    Шаблон рядка кошика, що відповідає такому ж параметру DocLister

    Окрім стандартних, у шаблоні доступні наступні плейсхолдери:
    [+original_title+] - назва товару з таблиці site_content,
    [+hash+] - хеш-код рядка,
    [+count+] - кількість даного товару,
    [+price+ ] - ціна товару,
    [+total+] - повна вартість цього товару,
    [+options+] - опції товару (оброблені чи ні) , залежить від параметра defaultOptionsRender).

    ownerTPL

    Шаблон обгортки кошика, відповідає такому ж параметру DocLister

    Крім стандартних, у шаблоні доступні такі плейсхолдери:
    [+hash+] - хеш-код козини ,
    [+items_price+] - сумарна вартість товарів,
    [+total+] - повна вартість кошика, з урахуванням додаткових зборів,
    [+subtotals+] - додаткові збори,
    [+count+] - кількість товарів у кошику,
    [+rows_count+] - кількість рядків у кошику,
    [+settings+] - масив налаштувань плагіна Commerce.

    noneTPL

    Шаблон порожнього кошика.

    optionsTpl

    Шаблон рядка опцій товару. Має сенс лише за &defaultOptionsRender=`1`. Мається на увазі, що опції товару задані як масив пар ключ => значення.

    У шаблоні доступні такі значення:
    [+key+] - ключ,
    [+option+] - значення опції.

    defaultOptionsRender

    Чи потрібно рендерувати опції товару. Приймає значення 0 або 1, за замовчуванням - 1.

    Якщо структура опцій має складніший формат, можна поставити значення 0, а опції обробляти в prepare.

    subtotalsTpl

    Шаблон обгортки для додаткових зборів.

    subtotalsRowTpl

    Шаблон рядка додаткових зборів.

    Доступні такі плейсхолдери:
    [+title+] - назва,
    [+price+]< /code> - ціна.

    prepareSubtotalsWrap

    prepare для обгортки додаткових зборів, дія аналогічна параметру prepareWrap

    prepareSubtotalsRow

    prepare для рядків додаткових зборів, дія аналогічна параметру prepare

    Інші параметри абсолютно аналогічні таким у сніпеті DocLister.

    Шаблони

    Усі шаблони за замовчуванням лежать у папці assets/plugins/commerce/templates/front/. Щоб змінити вигляд кошика, можна вказати свої чанки за допомогою параметрів сніпета, або скопіювати всі чанки кошика в нову папку та вказати ім'я папки у параметрі theme.

    Не змінюйте чанки за замовчуванням безпосередньо - так при оновленні ви втратите всі зміни.

    Схема шаблону кошика

    У розмітці кошика мають бути обов'язкові атрибути, необхідні коректної роботи скриптів.

    <... data-commerce-cart="[+hash+]">
    <... data-id="[+id+]" data-commerce-row="[+row+]" ...>
    <input type="text" name="count" value="[+count+]" data-commerce-action="recount">
    <... data-commerce-action="decrease" .../>
    <... data-commerce-action="increase" .../>
    <... data-commerce-action="remove" .../>
    </...>
    
    <... data-commerce-action="clean" .../>
    </...>
    data-commerce-cart="[+hash+]"Атрибут обгортки кошика, весь вміст даного тега оновлюється при зміні в кошику
    data-id="[+id+]"Ідентифікатор товару, присвоюється рядку кошика
    data-commerce-row="[+row+]"Хеш-код рядка кошика, використовується для оновлення даних у цьому рядку
    data-commerce-action="recount"Поле з кількістю товару
    data-commerce-action="decrease"Елемент, за натисканням на який відбувається зменшення товару в рядку на 1
    data-commerce-action="increase"Елемент, після натискання на який відбувається збільшення товару в рядку на 1
    data-commerce-action="remove"Елемент, за натисканням на який відбувається видалення рядка з кошика
    data-commerce-action="clean"Елемент, після натискання на який відбувається очищення кошика