31 янв. 2015 г., 10:40

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

Добрый день! Переделал свой интернет магазин на базе вашего shopModx, но когда уже все было завершено столкнулся с такой проблемой. У меня на сайте нет регистрации пользователей. Но, если клиент с одним и тем же электронным адресом оформляет разные заказы, система выдает предупреждение, что такой e-mail уже существует и нужно зарегистрироваться. Я нашел вашу рекомендацию поменять параметр protected $allowGetUserByEmail = false; на true, все заработало, но появилась другая проблема. Заказы стали добавляться, но телефон клиента ( с одинаковым e-mail) в панеле «управления заказами» оставался один и тот же. А бывают случаи, когда клиент делает первый заказ, пишет телефон, потом делает второй заказ, но телефон пишет другой (так как например в поле «адрес» и «коментарии»), но в панеле управления телефон один и тот же. Мне подсказали, что в базовом варианте сборки в объекте заказа хранится только айдишник клиента, оформившего заказ. Согласно нему и выводится номер телефона. Необходимо модифицировать модель заказа, чтобы можно было хранить номер телефона прямо в заявке и при создании новых ордеров записывать туда соответствующие номера телефонов. Но, как это сделать я так и не понял. Можно ли от вас получить помощь в реализации этой задачи?
На самом деле этот вопрос актуален для многих пользователей, так как многие не имеют регистрации пользователей на сайте. А в базовой версии хорошо бы было сделать две версии ( с регистрацией и без регистрации) как во многих движках интрнет магазинов.
Здравствуйте, Николай! Дело в том, что данный параметр я изменил и теперь предупреждение не появляется, и заказы от одного клиента (с одинаковым 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(); }
Спасибо большое Николай, теперь все работает.
Добрый день Николай, а подскажите алгоритм действий, чтобы наоборот запретить заказывать без полной регистрации
Причем чтобы это разумеется только в чекаунте проявлялось. Добавил в корзину и при подтверждении заказа если не авторизирован — предлагалась форма регистрации
Простейший способ: в шаблоне прописать условие
{if !$modx->user->id} .... {else} .... {/if}
мне нужно замаскировать регистрацию, как бы сделать это все из чекаунта, чтобы его не перекидывало на страницу регистрации если он не зарегистрирован. это выходит и шаблон и процессор переопределять придется, чтобы у пользователя не только имя и почта в бд добавлялась но и пароль
Андрей, я дал направление, а вы уже развивайте под свои нужды. И если вопросы еще есть — создавайте отдельную тему и там спрашивайте. Не стоит флудить, ведь все уведомления идут топикстартеру, а это уже оффтоп.

Добавить комментарий