Разделяем регистрацию на физических и юридических лиц  RSS 2.0

    Следующая запись

Зачастую необходимо собирать при регистрации дополнительные данные с юридических лиц. Например, "Наименование организации", "ИНН/КПП" и т.д. Физическому лицу такие данные заполнять не нужно, поэтому большая форма регистрации не только может сделать покупку неудобной, но и отпугнуть покупателя.

Решить эту проблему в Webasyst Shop-Script 5 можно штатным способом, но с небольшой доработкой.

 

В админке магазина в разделе "Настройки"/"Оформление заказа"/"Контактная информация" необходимо добавить новое поле "Покупатель". Назначить этому полю тип "список (radio)" и добавить элементы списка: "физическое лицо" и "юридическое лицо". Поставьте галочку "обязательное" и перейдите в расширенные настройки этого списка. Здесь необходимо указать каждому элементу набор полей, которые будут предложены к заполнению. 

 

Теперь останется поднять наше поле "покупатель" на первое место в сортировке, чтобы предложить этот выбор в самом начале. Вот и почти всё.

 

Уже все работает, но есть несколько моментов. 

1. Нам не предлагают при создании списка выбрать значение по умолчанию (например "физическое лицо")

2. При переходе из заполнения контактной информации к следующему шагу, а затем, если мы возвратимся назад, мы увидим все поля. Не зависимо от нашего выбора.

 

Эти моменты мы сейчас и решим. Делается все в файле /wa-system/contact/waContactBranchField.class.php

 

1. В строке 18 после foreach ($this->getOptions() as $k => $v) {

заменяем строку: 

 

$html .= '<label><input type="radio"'.($k == $value ? ' checked="checked"' : '').' name="'.$radios_name.'" value="'.htmlspecialchars($k).'"> '.htmlspecialchars($v).'</label>';

 

на это: 

 

$html .= '<label><input type="radio"';

if ($k == $value){$html .= ' checked="checked"';}

else if (htmlspecialchars($k) == 'Физическое лицо'){$html .= ' checked="checked"';}

$html .= ' name="'.$radios_name.'" value="'.htmlspecialchars($k).'">'.htmlspecialchars($v).'</label>';

 

Все. Теперь по умолчанию стоит "физическое лицо".

 

2. Далее удаляем строку 

$hide_by_default += $hide_data[$option_id];

Теперь все поля четко соответствуют выбранному списку.

 

P.S. Стоит обратит внимание, что по факту эти поля присутствуют у каждого клиента, не зависимо от выбранной опции. Эта функция позволит только скрыть ненужные для заполнения поля в процессе регистрации. Поэтому обязательные для заполнения поля будут видны во всех вариантах выбора. 

 

Полноценного разделения покупателей на физические и юридические лица в Shop-Script 5 нет. Но и это решение может кому пригодится.

Рекомендуемые прочитать