Настройки miniShop2
Настройки miniShop2 находятся в отдельном разделе сайта, доступном через меню.
Все таблицы запоминают настройки ширины и положения колонок. Везде работает множественное выделение строк через Ctrl ⌘ Cmd или Shift.
Доставка
Вы можете создавать разные методы доставки со своей логикой, за которую будет отвечать кастомный класс, указанный в настройках. Класс необязателен, вы можете его не указывать и тогда никакой особой обработки заказа не будет.
Каждому методу доставки привязываются свои методы оплаты в окне редактирования.
Оплата
Методы оплаты привязываются к заказам и должны реализовывать какую-то свою логику. Обычно они отправляют пользователя для оплаты заказа на сторонний сервис.
Указание класса-обработчика оплаты необязательно.
Статусы заказа
Существует несколько обязательных статусов заказа:
- Черновик
- новый
- оплачен
- отправлен
- отменён
Их можно настраивать, но нельзя удалять, так как они необходимы для работы магазина. Вы можете указать свои статусы для расширенной логики работы с заказами в своём классе.
Статус может быть окончательным. Это значит, что его нельзя переключить на другой. Например, "отправлен" и "отменён".
Статус может быть зафиксирован. То есть, с него нельзя переключаться на более ранние статусы (порядок задаётся перетаскиванием). Например, "оплачен" нельзя переключить на "новый".
Каждый статус может отправлять свои письма покупателю и администраторам магазина, указанным в системной настройке ms2_email_manager.
Для оформления писем используются указанные в статусе чанки. Все они обрабатываются pdoTools, так что вы можете использовать Fenom для наследования одного общего шаблона писем.
Производители
В этом разделе вы можете задать производителей товаров, которые потом будут выбираться в свойствах товара.
Каждому производителю можно указать разные свойства и связь с ресурсом сайта, например, для вывода его персональной страницы.
Связи товаров
Это простой инструмент, который позволяет создавать группы товаров по любому признаку.
Типы связи нужно выбрать из четырех доступных:
- Один к одному - двухстороння равная связь товаров.
- Один ко многим - связь одного товара с несколькими. Дочерние товары не связаны друг с другом, только с родителем.
- Многие к одному - тоже самое, что и предыдущая связь, только наоборот - дочерний товар связывается с главным. Возможно, этот тип избыточен, но пусть будет для симметрии.
- Многие ко многим - самый интересный тип связи - равнозначная многосторонняя связь нескольких товаров, при добавлении в группу нового товара он связывается со всеми ее членами.
Эта связь нужна для указания товаров, которые отличаются, например, по одному параметру. Или все товары этой группы могут быть участниками какой-то акции (и вы легко сделаете вывод ссылок на другие предложения на странице товара).
Хранение
Для добавления новой записи нужно выбрать заранее созданную связь и товар, к которому ее применить.
На уровне базы данных связанность товаров представляет таблица msProductLink, в которой всего 3 столбика:
- link - то есть id связи в таблице
msLink
, которую мы создали чуть выше, в настройках - master - это id главного товара
- slave - а это id подчиненного товара
Давайте разберемся, какие записи создаются у разных типов связей.
Один к одному - добавляем товар с id = 10 к товару с id = 15, создаётся 2 записи в БД:
master = 10, slave = 15
master = 15, slave = 10
Один ко многим - добавляем 3 товара с разными id к товару с id = 10, получаем такие записи:
master = 10, slave = 15
master = 10, slave = 16
master = 10, slave = 17
Многие к одному - добавляем 3 товара с разными id к товару с id = 10, получаем такие записи:
master = 21, slave = 10
master = 22, slave = 10
master = 23, slave = 10
Многие ко многим - и, наконец, добавляем 3 товара с разными id к товару с id = 10.
master = 10, slave = 31
master = 10, slave = 32
master = 10, slave = 33
master = 31, slave = 10
master = 31, slave = 32
master = 31, slave = 33
master = 32, slave = 10
master = 32, slave = 31
master = 32, slave = 33
master = 33, slave = 10
master = 33, slave = 31
master = 33, slave = 32
Все товары группы перелинкованы друг с другом.
Выборка
Тут всё просто: создаём сниппет и выбираем id товаров группы, указывая link и master (у связи многие к одному - slave вместо master).
$q = $modx->newQuery('msProductLink', array(
'link' => 1,
'master' => 10,
));
$q->select('slave');
if ($q->prepare() && $q->stmt->execute()) {
$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
print_r($ids);
}
Ну а получив id связанных товаров, можно делать с ними всё, что угодно. Возможности применения ограничены только вашей фантазией.
Примеры
Разные цвета (несколько копий товаров со своими фотографиями и ценами)
Рекомендованные товары (выводятся в корзине, при оформлении заказа)
Комплекты товаров (выводятся ссылки на другие товары комплекта в карточке)
Опции товаров
Для создания новой характеристики необходимо нажать кнопку "Создать" и заполнить в появившемся окне дополнительную информацию:
- Ключ - идентификатор характеристики в системе, определяющий ее плейсхолдер на фронтэнде. Обязательно к заполнению.
- Название - отображаемый заголовок характеристики.
- Описание
- Единица измерения
- Группа - категория в системе MODX, будет выводиться в табе на странице опций товара
- Тип свойства - определяет допустимый формат заполнения значения
Вы можете фильтровать уже созданные характеристики при помощи дерева категорий товаров, расположенной в левой части страницы. Также при создании характеристики можно сразу определить ее к соответствующим категориям товаров, выбрав их при помощи дерева слева.
Созданные характеристики товаров отображаются на странице товара в соответствующей вкладке.
Для вывода опций товара нужно использовать сниппет msProducts.