Всего 123 769 комментариев

Алексей Соин
22 июля 2024, 07:21
0
Для тех кто будет переезжать на spaceweb, готовьтесь к тому, что будете ещё платить за ssl сертификат, бесплатного letsencrypt у них нет
Alexey
22 июля 2024, 01:32
0
Мы немного уходим в сторону от темы топика)) Но все же рискну завершить оффтоп: мне кажется немного странной логика, в которой определяется привязка пользователя к заказу по неуникальному полю. Юзернейм и емайл — по умолчанию уникальные поля для пользователя в MODX, телефон — нет. То есть, в принципе есть вероятность прикрепления не к тому юзеру, разве нет?

Бывает, что уникальным полем для регистрации пользователя служит телефон, для этого случая — как вариант — можно добавить в настройки минишопа опцию, которая включает поиск зарегистрированного юзера по номеру телефона из формы заказа.
Скаут
21 июля 2024, 22:47
0
ниже мой коммент с решением проблемы.

идентификатор адреса — что-то странное, не очень понял где и как он используется… Но получается, что проблема в модуле, неправильно там написан запрос, оттуда и вся возня на два дня… (
Скаут
21 июля 2024, 22:44
0
проблема решилась изменением запроса, а именно
было
$user = $this->modx->getObject('msOrderAddress', $order_id);
сделал
$user = $this->modx->getObject('msOrderAddress', ['order_id' => $order_id]);
Артур Шевченко
21 июля 2024, 22:43
0
Что за id и order_id?
order_id — идентификатор заказа
id — идентификатор адреса
Скаут
21 июля 2024, 22:27
0
спасибо за инфу, но нет, не в этом проблема)
Скаут
21 июля 2024, 22:26
0
а, об этом речь, думал какое-то еще логирование)
проверил эти два метода — там всё ок.

Отложил процесс покупки, проблема именно в получении объекта
modx->getObject('msOrderAddress', 523);
Проверил на заранее уже существующем заказе в консоли и получил вообще другие заказ.
[_fields] => Array
        (
            [id] => 523
            [order_id] => 515
            [user_id] => 208
            [createdon] => 2024-07-21 11:38:48
            [updatedon] => 
            [receiver] => Пример ФИО
            [phone] => +79999999
            [email] => test@test.test
            [country] => 
            [index] => 
            [region] => 
            [city] => 
            [metro] => 
            [street] => 
            [building] => 
            [entrance] => 
            [floor] => 
            [room] => 
            [comment] => 
            [text_address] => 
            [properties] => 
        )
То есть я запросил данные заказа 523, а мне вернулся заказ 515.
Что за id и order_id?
Артур Шевченко
21 июля 2024, 22:12
0
А почему менеджеры не могут указывать разные номера?
Alexey
21 июля 2024, 22:04
0
Понятное дело, что это сделано из благих побуждений. Но в случае, если заказ на сайте совершают несколько менеджеров из одной компании, у которых разные email, но один телефон на всех, это может быть проблемой. Так как уникальным полем для регистрации в основном служит email.
Артур Шевченко
21 июля 2024, 21:38
0
Возможно, этот момент уже пофиксил в новых версиях минишопа, не знаю
Нет, не пофиксили, так как это не баг. Поиск пользователя происходит по username, email и modilephone.
Alexey
21 июля 2024, 21:11
0
Привет! В минишопе раньше была бага(или фича), связанная с привязкой юзера по НОМЕРУ ТЕЛЕФОНА, если его вводить в форму заказа. То есть, если вводишь новый email, а телефон использован у ранее зареганого юзера, то заказ прикрепится к этому юзеру, а не зарегает нового.

Сам нарывался на это, нужно было в файле минишопа закомментить пару строк, но в каком — сейчас не вспомню. Может, опытные товарищи подскажут?

Возможно, этот момент уже пофиксил в новых версиях минишопа, не знаю… но раньше точно была такая проблема
Артур Шевченко
21 июля 2024, 20:50
0
$this->modx->log(1, print_r($data,1))
Так можно вывести в журнал ошибок необходимые данные. проверять нужно работу методов submit() и getCustomerId()
Артур Шевченко
21 июля 2024, 19:28
0
Тогда выход один логгировать процесс.
Скаут
21 июля 2024, 19:21
0
ни в modx логах, ни в логах php ошибок в процессе формирования не возникает (только что проверил и под гостем и под админом).
В логах проскакивают ошибки и notice, но они связаны с другими страницами, модулями и возникают совершенно в другие временные эпизоды.
Скаут
21 июля 2024, 17:40
0
да, передавались не те. Еще одну особенность обнаружил: всё вышеописанное происходит, когда я тестирую из-под админа. Если же пробую всё то же самое из-под гостя, то объект $user возвращает NULL.
При этом в админке если проверять заказ, то там данные верны (имя записывает то, что указано, если почта уникальный — создается новый пользователь, если почта уже есть в базе, то цепляется к существующему пользователю).
Как так происходит не понимаю…
Артур Шевченко
21 июля 2024, 10:57
0
Да, если вводится уникальная почту, то новый пользователь создаётся.
При этом данные в платёжный сервис всё равно передаются не те?
Скаут
21 июля 2024, 10:49
0
Да, если вводится уникальная почту, то новый пользователь создаётся.

Идеи есть, куда копать, как разобраться?

Кстати, в объекте $user если смотреть данные вложенных объектов (modRequest, msProductRemains), то там данные покупателя корректные.
Артур Шевченко
21 июля 2024, 10:09
0
Нужно проверить создаётся ли пользователь с корректными данными. Потом разобраться почему в заказ передаётся id другого пользователя.