Настройки

08 июля 2016, 18:17

Настройки 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.