[!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":"Неверный телефон"
}
}`
!]
Примечания
&ccSender=`1`
&ccSenderField=`email`
&ccSenderTpl=`orderReportBuyer`
Если форма заказа выводится на отдельной странице, то могут быть полезны такие параметры:
Больше примеров вы можете найти в папке:
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
.