miniShop2. Покупка без авторизации (anonymous)
Всем доброго времени суток!
Возникла проблема с покупкой в miniShop2 без авторизации. По какой-то непонятной причине miniShop2 регистрирует только первого покупателя, после чего все следующие покупки из этого же браузера делаются на первого зарегистрированного пользователя. С зарегистрированными пользователями еще интересней.
Я сделал 3-х покупателей делая покупки с разных браузеров. Дальше начались весёлые диалоги:
Я: Покупка на пользователя №1
miniShop2: Пользователь №1 успешно совершил покупку.
Я: Покупка на пользователя №2
miniShop2: Пользователь №2 успешно совершил покупку.
Я: Покупка на пользователя №3
miniShop2: Пользователь №1 успешно совершил покупку.
Я: What???
Я: Новый пользователь!
miniShop2: Пользователь №1 успешно совершил покупку.
Я: Анонимная сессия и встроенный VPN Оперы. Покупка на пользователя №3
miniShop2: Пользователь №1 успешно совершил покупку.
Для проверки я собрал пустой MODX 2.7.3. Из пакетов только Ace, Batcher, msDemoData, pdoTools и Theme.Bootstrap. Сайтов с MODX понаделана огромная куча. Интернет магазинов с miniShop2 немного, но они все работают с авторизацией и поэтому с такой проблемой я не сталкивался. И вот он первый магазин «без регистрации и СМС». Весь вчерашний день я потратил на тесты, чтение доков и поиск по modx.pro. Результат нулевой. Люди, помогите, я не понимаю, может я что-то пропустил?
Для желающих поучаствовать в аттракционе, могу скинуть ссылку на магазин.
Возникла проблема с покупкой в miniShop2 без авторизации. По какой-то непонятной причине miniShop2 регистрирует только первого покупателя, после чего все следующие покупки из этого же браузера делаются на первого зарегистрированного пользователя. С зарегистрированными пользователями еще интересней.
Я сделал 3-х покупателей делая покупки с разных браузеров. Дальше начались весёлые диалоги:
Я: Покупка на пользователя №1
miniShop2: Пользователь №1 успешно совершил покупку.
Я: Покупка на пользователя №2
miniShop2: Пользователь №2 успешно совершил покупку.
Я: Покупка на пользователя №3
miniShop2: Пользователь №1 успешно совершил покупку.
Я: What???
Я: Новый пользователь!
miniShop2: Пользователь №1 успешно совершил покупку.
Я: Анонимная сессия и встроенный VPN Оперы. Покупка на пользователя №3
miniShop2: Пользователь №1 успешно совершил покупку.
Для проверки я собрал пустой MODX 2.7.3. Из пакетов только Ace, Batcher, msDemoData, pdoTools и Theme.Bootstrap. Сайтов с MODX понаделана огромная куча. Интернет магазинов с miniShop2 немного, но они все работают с авторизацией и поэтому с такой проблемой я не сталкивался. И вот он первый магазин «без регистрации и СМС». Весь вчерашний день я потратил на тесты, чтение доков и поиск по modx.pro. Результат нулевой. Люди, помогите, я не понимаю, может я что-то пропустил?
Для желающих поучаствовать в аттракционе, могу скинуть ссылку на магазин.
Комментарии: 11
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Те же яйца, вид сбоку. Первая покупка ОК, а следующие уходят первому.
Регистрации на сайте нет, но где-то, как-то оставалась сессия (хотя в ходе тестов я удалял кукис сайта и закрывал все сессии из админки). Так вот у меня глючили все три браузера через которые я делал тесты. Проблема была именно в них. Поэтому я и не мог сразу найти проблему, а грешил на miniShop2. После очистки историй, кукис и всех сохранений всё заработало как надо.
Итак, выдержка из документации miniShop2 Службы->Логика работы: «Получаем id юзера, по указанному email. Если такого юзера нет, то регистрируем его со случайным паролем и заносим в группы, указанные в настройке ms2_order_user_groups.»
Это не так. Выдержка из minishop2.class.php, строка 612, создание фильтра для поиска юзера
Т.е. если у пользователя указан тот же номер телефона, что и в заказе, то поиск прерываем и заказ присуждаем пользователю с совпавшим номером. Что, на мой взгляд неправильно.
Причин, почему номера телефонов совпали, но на самом деле это совершенно разные люди полно, начиная от банальной ошибки пользователя, заканчивая тем, что организация по каким-то причинам передала телефон другому сотруднику. @Василий Наумкин собственно просьба к тебе, как к автору. Как минимум это надо отобразить в документации. В идеале или убрать поиск по телефону, или вывести это условие в настройки минишопа, хотя, может есть третье решение.
Вот мой код 4-хлетней давности, здесь нет никакой проверки телефона
Потом 2 года назад она появилась
А потом её немного переписали, но смысл тот же
Так что, увы, это не я придумал делать телефон уникальным идентификатором покупателя. Документацию ты можешь изменить сам, она открыта — github.com/bezumkin/Docs