Skip to content

argirov83/commerceCdek

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

commerceCdek

alpha!

  • Тестовый логин брать тут
  • Айди тарифов тут
  • Поправить в JS идентификатор формы, используемой сниппетом Order

Как сделать валидацию?

В сниппете Order есть поле delivery_method. Плагин автоматически добавляет туда поля city, street, house и flat -- город, улица, дом и квартира соответственно. Другие плагины могут добавить туда свои значения! Задаём в сниппете Order свои правила валидации под названием &cdekRules. Проверяем на пустоту город, улицу и дом. (Номера квартиры может и не быть)

&cdekRules=`{
	"name":{
		"required":"Введите имя",
		"matches":{
			"params":"\/^[\\pL\\s\\-']++$\/uD",
			"message":"Введите имя правильно"
		}
	},
	"email":{
		"required":"Введите email",
		"email":"Неверная почта"
	},
	"phone":{
		"required":"Введите номер телефона",
		"phone":"Неверный телефон"
	},
	"city": {
		"lengthBetween": {
			"params": [2, 255],
			"message": "Введите город"
		}
	},
	"street": {
		"lengthBetween": {
			"params": [2, 255],
			"message": "Введите улицу"
		}
	},
	"house": {
		"required":"Введите номер дома"
	}
}`

Делаем сниппет orderSelect (название произвольное) и ставим его в &prepare. Внутри что-то подобное:

<?php
if ($FormLister->getField('delivery_method') == 'sdek') {
	$FormLister->config->setConfig(array(
		'rules'=>$FormLister->getCFGDef('cdekRules'),
	));
}
else if( $FormLister->getField('delivery_method') == 'fixed' ){
	$FormLister->config->setConfig(array(
		'rules'=>$FormLister->getCFGDef('fixedRules'),
	));
}

Где cdekRules - это и есть название ваших параметров валидации в случае, если юзер выбрал СДЭК. Для примера добавил fixedRules - это параметры, когда выбрана "Фиксированная доставка". Можно убрать. По-умолчанию, если не выбрана доставка sdek или fixed, будут использованы обычные правила валидации из параметра &rules.

Releases

No releases published

Packages

No packages published

Languages

  • PHP 89.5%
  • JavaScript 5.7%
  • Smarty 4.8%