Помогите убрать регистрацию на сайте

Добрый день!

Переделал свой интернет магазин на базе вашего shopModx, но когда уже все было завершено столкнулся с такой проблемой.

У меня на сайте нет регистрации пользователей. Но, если клиент с одним и тем же электронным адресом оформляет разные заказы, система выдает предупреждение, что такой e-mail уже существует и нужно зарегистрироваться.

Я нашел вашу рекомендацию поменять параметр protected $allowGetUserByEmail = false; на true, все заработало, но появилась другая проблема.

Заказы стали добавляться, но телефон клиента (с одинаковым e-mail) в панели «управления заказами» оставался один и тот же. А бывают случаи, когда клиент делает первый заказ, пишет телефон, потом делает второй заказ, но телефон пишет другой (так как например в поле «адрес» и «коменнтарии»), но в панели управления телефон один и тот же.

Мне подсказали, что в базовом варианте сборки в объекте заказа хранится только айдишник клиента, оформившего заказ. Согласно нему и выводится номер телефона. Необходимо модифицировать модель заказа, чтобы можно было хранить номер телефона прямо в заявке и при создании новых ордеров записывать туда соответствующие номера телефонов.

Но, как это сделать я так и не понял.

Можно ли от вас получить помощь в реализации этой задачи?

На самом деле этот вопрос актуален для многих пользователей, так как многие не имеют регистрации пользователей на сайте. А в базовой версии хорошо бы было сделать две версии (с регистрацией и без регистрации) как во многих движках интернет магазинов.

Comments

Здравствуйте, Николай!

Дело в том, что данный параметр я изменил и теперь предупреждение не появляется, и заказы от одного клиента (с одинаковым e-mail) добавляются.

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

Например: я сделал первый заказ, оформил его, мой e-mail: test@mail.ru, номер телефона 111-11-11, затем я сделал второй заказ с тем же e-mail: test@mail.ru, но номер телефона теперь другой: 222-22-22, этот заказ был принят.

Но, в «панеле управления заказами» администратор увидит эти два разных заказа, но с номером телефона 111-11-11 и этот номер теперь привязан к e-mail: test@mail.ru.

Как сделать так, чтобы менялся номер телефона в разных заказах от клиента с одинаковым e-mail?

В beforeSave() получения объекта заказчика можете переписать вместо $this->getContractor():

if (
    $contractor =  $this->getContractor()
    AND $phone = $this->getProperty('phone')
){
    $contractor->Profile->phone = $phone;
    $contractor->setDirty();
}

Добрый день Николай, а подскажите алгоритм действий, чтобы наоборот запретить заказывать без полной регистрации

Причем чтобы это разумеется только в чекаунте проявлялось. Добавил в корзину и при подтверждении заказа если не авторизирован — предлагалась форма регистрации

мне нужно замаскировать регистрацию, как бы сделать это все из чекаунта, чтобы его не перекидывало на страницу регистрации если он не зарегистрирован. это выходит и шаблон и процессор переопределять придется, чтобы у пользователя не только имя и почта в бд добавлялась но и пароль

Андрей, я дал направление, а вы уже развивайте под свои нужды. И если вопросы еще есть — создавайте отдельную тему и там спрашивайте. Не стоит флудить, ведь все уведомления идут топикстартеру, а это уже оффтоп.