Оформление заказа

    Оформление заказа

    Пример

    [!Order
        &formTpl=`formTpl`
        &deliveryTpl=`deliveryTpl`
        &deliveryRowTpl=`deliveryRowTpl`
        &paymentsTpl=`paymentsTpl`
        &paymentsRowTpl=`paymentsRowTpl`
        &reportTpl=`reportTpl`
        &ccSenderTpl=`ccSenderTpl`
    !]

    Расширенный вызов

    Примечания

    Любые параметры в вызове сниппета аналогичны по функционалу параметрам в FormLister'е.

    Пример:

    [!Order?
    &from=`from@email.com`
    &formTpl=`bigCartOrderTpl`
    &deliveryTpl=`deliveryTpl`
    &deliveryRowTpl=`deliveryRowTpl`
    &paymentsTpl=`paymentsTpl`
    &defaultsSources=`param:defaults;user:web:`
    &defaults=`{
        "payment_method":"sberbank"
    }`
    &paymentsRowTpl=`paymentsRowTpl`
    &to=`to@email.com`
    &fromName=`Магазин "Магазин"`
    &ccSenderFromName=`Магазин "Магазин"`                   
    &subject=`Новый заказ на сайте Магазин`
    &reportTpl=`orderReportAdmin`
    &ccSender=`1`
    &ccSenderField=`email`
    &ccSenderTpl=`orderReportBuyer`
    &errorClass=` has-error`
    &requiredClass=` has-warning`
    &successTpl=`order_successTpl`
    &rules=`{
    "fullname":{
        "required":"Введите имя",
        "matches":{
             "params":"\/^[\\pL\\s\\-']++$\/uD",
             "message":"Введите имя правильно"
        }
    },
    "email":{
        "required":"Введите email",
        "email":"Неверная почта"
    },
    "phone":{
        "required":"Введите номер телефона",
        "phone":"Неверный телефон"
    }
    }`
    !]

    Примечания

    • defaultsSources - может пригодиться, когда нужно заранее заполнить поля у авторизированного юзера либо задать некие предопределённые значения (см. источники данных).
    • reportTpl - шаблон письма админу А эти параметры зададут поле, шаблон и возможность отправить уведомления о заказе непосредственно покупателю.
      &ccSender=`1`
      &ccSenderField=`email`
      &ccSenderTpl=`orderReportBuyer`

      Если форма заказа выводится на отдельной странице, то могут быть полезны такие параметры:

    • skipTpl - шаблон, который выводится, если корзина пуста;
    • exitTo - перенаправляет пользователя на указанную страницу (см. перенаправление после обработки).

    Больше примеров вы можете найти в папке:

    assets/plugins/commerce/templates/

    По умолчанию шаблон формы заказа содержит всего 3 поля — имя, телефон и email. Добавить недостающие, например, регион, город, адрес доставки, сообщение можно точно также, как и и при использовании сниппета FormLister.

    Необходимо указать эти поля в шаблоне формы (параметр &formTpl) и добавить их валидацию в параметр &rules.

    Данные будут записаны в массив заказа. Для их отображения в модуле уже необходимо написать плагин.

    Плагин для отображения доп. полей заказа

    Пусть мы добавили в форму input с name=address. Создадим плагин на событие OnManagerBeforeOrderRender.

    Пример

    $params['groups']['contact']['fields']['address'] = 
      [
      'title'   => 'Адрес',
      'content' => function($data) {
        return $data['fields']['address'];
      },
      'sort'    => 40,
     ];

    Обратите вниманиеб что значение ключа $params['groups']['contact']['fields']['address'] совпадает с именем поля из formTpl.