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

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

Порада: кошик - це обгортка для сніппета 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"Елемент, після натискання на який відбувається очищення кошика