Skip to content
  1. Компоненты
  2. MiniShop3
  3. Сниппеты

Сниппеты MiniShop3 ​

MiniShop3 предоставляет набор сниппетов для построения интернет-магазина на фронтенде. Все сниппеты работают через pdoTools и поддерживают шаблонизатор Fenom.

Обзор сниппетов ​

СниппетНазначение
msProductsВывод списка товаров с фильтрацией и сортировкой
msCartОтображение корзины покупок
msOrderФорма оформления заказа
msGetOrderПолучение информации о заказе
msGalleryГалерея изображений товара
msOptionsВывод опций для фильтрации товаров
msProductOptionsХарактеристики конкретного товара
msCustomerЛичный кабинет покупателя
msOrderTotalИтоговая сумма заказа

Общие принципы ​

Вызов сниппетов ​

Все сниппеты можно вызывать через Fenom:

fenom
{'msProducts' | snippet : [
    'parents' => 5,
    'limit' => 10
]}

Или через стандартный синтаксис MODX:

modx
[[!msProducts?
    &parents=`5`
    &limit=`10`
]]

Кэширование

Сниппеты, работающие с сессией пользователя (msCart, msOrder, msCustomer), должны вызываться некэшированно (с !).

Параметр return ​

Значения return зависят от сниппета:

СниппетПо умолчаниюЗначения
msProductsdatadata, json, ids, sql
msCarttpltpl, data
msOrdertpltpl, data
msGetOrder—только HTML чанка (параметра return нет)
msGallerytpldata, tpl, json, sql
msOptions—только HTML чанка
msProductOptionstpltpl, data, array
msCustomertpltpl, data
msOrderTotaltpltpl, data

Default msGallery

После установки свойство return = tpl (чанк). В PHP, если свойство пустое, fallback = data (issue #823). Для массива указывайте return=data явно.

Общие значения:

ЗначениеОписание
tplРендер через чанк
dataМассив данных (или HTML строки у msProducts — см. msProducts)
jsonJSON-строка (msProducts, msGallery)
idsID через запятую (msProducts)

Числа и *_formatted ​

Плейсхолдеры цен и веса в чанках — числа (float). Для вывода на сайте используйте поля *_formatted.

СниппетПоведение
msProductsprice_formatted, old_price_formatted, weight_formatted. Символ валюты — только при withCurrency => true. Параметра formatPrices нет
msCart, msOrder, msGetOrder, msOrderTotal*_formatted всегда с валютой или единицей веса

У msOrderTotal в свойствах сниппета в админке ещё могут быть formatPrices и withCurrency — код их не читает (issue #825).

Личный кабинет и авторизация покупателя — сниппет msCustomer и страница Авторизация покупателя.

Параметр toPlaceholder ​

Вместо прямого вывода можно сохранить результат в плейсхолдер:

fenom
{'msProducts' | snippet : [
    'toPlaceholder' => 'products'
]}

{* Позже использовать *}
{$_modx->getPlaceholder('products')}

Чанки по умолчанию ​

MiniShop3 устанавливает набор готовых чанков:

СниппетЧанк по умолчанию
msProductstpl.msProducts.row
msCarttpl.msCart
msOrdertpl.msOrder
msGetOrdertpl.msGetOrder
msGallerytpl.msGallery
msOptionstpl.msOptions
msProductOptionstpl.msProductOptions
msOrderTotaltpl.msOrderTotal
msCustomertpl.msCustomer.profile / .addresses / .orders (по service)

Чанки можно переопределить, создав свои версии или указав другой чанк в параметре tpl. Для ЛК см. msCustomer.