Николай Савин

Николай Савин

Был в сети 29 июня 2026, 12:35
Заказы принимаю
Зачем так сложно? Задания очередей можно писать в таблицу базы данных. Я обычно использую simpleQueue. Есть также встроенный механизм очередей в MODX.
Для выполнения заданий запускаете ежеминутно крон, который будет по одной записи за раз дергать и выполнять.
Вообще-то да. Ровно та же проблема при отправке заказа в CRM какой-нибудь.
Решение тоже общее. Нужно использовать очереди. И вместо отправки заказа просто записывать задачу в очередь. Тогда нагрузки не будет никакой. Ну а очереди читать и выполнять, как фоновый процесс.
А почему у тебя в объекте методы внутри метода? Это же нелогично. Вынеси их в корень объекта. Для чего нужна вложенность?
И я правильно понимаю, что в твоем варианте оригинальный ajaxForm все равно нужно подключать, а потом этой штукой перезаписывать метод initialize?
У меня есть мобильное приложение, которое как раз через ZoomX к минишопу прикручено. В основном буду опираться на этот опыт. Возможно позже я покажу как изготовить и запустить и само мобильное приложение. Получился бы полноценный курс Мобильное приложение + MODX
Дополню. В планах адаптировать ms2 под тройку, чтобы он работал сразу на обеих платформах. И далее уже спокойно работать над отдельной версией которая точно будет, и своим выходом похоронит и второй минишоп, и modx 2. План работ и конкретные изменения для ms3 давно составлены.
Я на всякий случай уточню. Вообще, то есть метод
$ms->cart->remove($key);
Но в вашем конкретном случае мне показалось, что больше подойдет приведенный выше код.
Потому что все равно корзину перебирать и проверять наличие товара.
Товары находятся не в заказе, а в корзине.
Корзина это массив данных. Получить его можно через метод
$ms2->cart->get();
Далее просто удалите ненужный элемент массива и обновите корзину через
$ms->cart->set();
У вас некорректная логика. Такую ошибку нужно выводить при попытке положить товар в корзину и не давать это сделать изначально.
Здесь этот вопрос обсуждался неоднократно. Воспользуйтесь поиском.
Вот например
modx.pro/help/9381

Функционал ошибок есть. Основан на плагинах. На каждое действие (почти) есть свое событие.
Список событий найдете в документации. Создаете плагин на нужное событие. Выполняете проверку — возвращаете нужный ответ
Куда вернуть ошибку? Клиенту вывести на экран в момент добавления товара в корзину? Тогда товар нужно удалять не из заказа, а из корзины.
Или же удалить из уже созданного заказа? Тогда совсем не понятно куда вернуть ошибку.
Это разные сущности, и реализация разная будет.