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

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

Был в сети 29 июня 2026, 12:35
Заказы принимаю
Насколько я знаю — о такой проблеме никто не заявлял. Issue не создавали.
Будет больше пользы — если Вы расскажите о проблеме в репозитории miniShop2. Создайте Issue, опишите суть проблемы, и то какое поведение ожидается. Расскажите как такую проблему воспроизвести — и шансов на исправление станет гораздо больше.
Обычно проблемы именно так решаются в мире IT.
Tickets передан под управление нашей GitHub организации modx.pro github.com/modx-pro/Tickets
Им и правда сейчас никто не занимается, но это не потому что, не хочется. Задач очень много по всем направлениям. Банально не успеваем. На подходе MODX3 — к нему нужно готовить экосистему
Конкретно сейчас идет работа над pdoTools, над минишопом, надо сайтом сообщества, где мы сейчас находимся.
Это на самом деле очень просто делается
Вот такой метод есть у кэш менеджера для очистки кэша конкретного ресурса (товар это же ресурс)
$modx->cacheManager->delete($product_id, array(xPDO::OPT_CACHE_KEY => 'resource/web/resources'))
Это некорректно — к объекту заказа через связи привязаны и доставка и оплата и другие связные объекты. Я выше показал как можно обращаться к ним.
Кроме того у вас ошибка еще и в написании — там не строка, а число. И работало у вас вся эта конструкция только потому что нестрогое сравнение. Корректное написание будет такое:
if ($msOrder->delivery === 1) {
Вам нужно выполнить вот этот код для решения вопроса
$modx->removeExtensionPackage('amocrm');
Его можно выполнить в консоли MODX (есть такой популярный компонент)
либо создав сниппет и вызвав его где-то на произвольной странице
Вопрос решается достаточно просто.
Вам нужно расширить класс заказа своим классом, и перезаписать метод validate который и фильтрует входящие буквы. Там есть такая конструкция

$tmp = preg_replace(
                    array('/[^-a-zа-яёґєіїўäëïöüçàéèîôûäüöÜÖÄÁČĎĚÍŇÓŘŠŤÚŮÝŽ\s\.\'’ʼ`"]/iu', '/\s+/', '/\-+/', '/\.+/', '/[\'’ʼ`"]/iu', '/\'+/'),
                    array('', ' ', '-', '.', '\'', '\''),
                    $value
                );
Это не обязательно.
Если написать в начале контроллера вот так
zoomx()->autoloadResource(false);

то загрузка ресурса не потребуется.
Плюс если отправлять API запрос с заголовками (любым из них)
'Accept': 'application/json',
    'Content-Type': 'application/json'
то в этом случае также создание ресурса не потребуется.