Путаница с email и phone в miniShop2

Привет!

Разжуйте немного)

Еще в версии miniShop2 2.4.15 modx.pro/components/16079 было объявлено, что email теперь не обязательное поле при оформлении заказа. Ура, круто!

Но дальше начинается интересное…

Допустим, телефон обязателен, email нет, оформляем заказ… и важно, я не хочу регистрировать пользователей на каждый заказ. Мои покупатели делают по одному заказу в магазине, смысла в личном кабинете нет!
Итак, оформляем заказ, почту не указали… что произойдет? Создастся пользователь с фейковой почтой? Или вот в статье, куда я дал ссылку, написано, что можно все такие заказы привязать к одному пользователю Гость.

А если указали почту?.. Нужно обязательно регистрировать пользователя!!! Так как в заказе нет поля email! Вот поле телефон есть, а почты нет.. почему?

Где логика то? Может я что-то не понимаю. Я всегда выходил из этой ситуации регистрируя пользователей и генерируя им фейковые адреса почты, но это не айс…
Наумов Алексей
23 апреля 2021, 12:12
modx.pro
331
+1
Поблагодарить автора Отправить деньги

Комментарии: 6

Наумов Алексей
23 апреля 2021, 12:26
0
Да и вообще, если посмотреть код метода getCustomerId, увидим что:

— если email пустой, то сделаем его в формате «Получатель_заказа@мой сайт.ру». Класс… т.е. первый купивший Алексей зарегистируется на сайте и создаст пользователя с такой почтой, а заказ от второго Алексея внезапно попадет к первому, т.к. почта-то одинаковая…
Ладно, если мы на фронте этого не выводим всего… но в админке то выглядит так, как-будто все эти заказы от одного пользователя!
    Aleksandr Huz
    23 апреля 2021, 16:04
    0
    Согласен, не очень логично, но и не критично.
    Ну попадает заказ к одному анониму, ничего страшного, в заказе адрес и номер будет разный. Врятли, менеджеры переходят к пользователю, чтобы посмотреть его контактные данные.

    А если это сильно смущает то можно удалять этого же пользователя, если его имя совпадает с почтой
    Вешаем плагин на событие: OnUserSave
    if($mode == 'new' && $user->get('username') == $user->Profile->get('email')) {
       $user->remove();
    }
    Но, только если при регистрации почта не используется как логин.

    Конечно, это все костыли, и более правильно будет не создавать пользователя, но дать возможность решать это через системную настройку.
      Наумов Алексей
      23 апреля 2021, 16:09
      0
      Ну да, вот как-то не очень логично, посыл скорее ребятам, кто активно занят с miniShop2 сейчас.
      Каждый раз костыли лепить не нравится)))

      Ну а если мы удалим пользователя — мы удалим и информацию об оставленной электронной почте.

      На мой взгляд было в 10 раз логичнее сохранять и почту и телефон в заказе, а если уже выставлена соответствующая настройка — регистрировать пользователя по этим данным!
        Aleksandr Huz
        23 апреля 2021, 16:24
        0
        Ну а если мы удалим пользователя — мы удалим и информацию об оставленной электронной почте.
        Да, это подходит только если почта вообще не нужна.
    Николай Савин
    23 апреля 2021, 16:30
    0
    Посыл замечен и принят к рассмотрению. Спасибо.
      Николай Савин
      23 апреля 2021, 16:31
      0
      @Наумов Алексей можешь сделать Issue по этой теме в репозитарий minishop2? Вот прям текст отсюда со ссылкой.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6