4 часа назад
Добавил сиcтемную настройку ms3recentlyviewed.block_bots_detector и интегрировал jaybizzle/crawler-detect
ms3RecentlyViewed - Недавно просмотренные товары для MiniShop3 5
Вчера в 15:20
Всем привет!
Версия модуля 1.4.0
Необходимо обновить наименования товаров.
Выбираем Тип импорта — Обновить данные товаров
Соответствие Столбца Наз...
msImportExport 919
27 февраля 2026, 21:26
Настройками нельзя, только написанием своего плагина, который будет проверять необходимые условия. Если сами не справитесь, могу написать его за отдел...
Вопрос по msProductDiscounts 4
25 февраля 2026, 17:49
Добавлен также генератор разнообразных типов опций товара в разном количестве для разных наборов и их заполнение у товаров.
ms3DemoData - компонент для быстрой генерации демо-данных MiniShop3 3
25 февраля 2026, 15:21
Сложно сказать. Впервые про такую проблему слышу. Вы можете написать мне в телеграм доступы — вместе посмотрим
MiniShop3 1.2.0 - 1.3.0 Самое интересное 19
24 февраля 2026, 18:29
это сделал ИИ.
Я взял код из файла /core/components/minishop2/model/minishop2/minishop2.class.php
я скопировал этот метод function getReceiverId(), ...
Кастомизация minishop'a (номер телефона вместо емейла у пользователя при совершении заказа) 13
23 февраля 2026, 03:33
Вот так отображаются поля довольно красиво! Нужно создать поля: allowed_resources, date_start, date_end в базе данных в таблице modx_user_attributes. ...
Дополнительные поля профиля юзера (не extended) 138
22 февраля 2026, 19:58
Кто реально внедрил MODX с Vue. js — каков опыт?Опыт — реактивные переменные благословение и проклятие Vue. С ними можно делать почти мнгновенно реаги...
Вопрос по будущему MODX и стратегии развития. 4
Всего 125 683 комментария
select id=«delivery_shop» name=«extfld_delivery_shop» value="{$form['extfld_delivery_shop']}" class=«form-control»
Нужно вот так?
$properties = $msOrder->get('properties');
$delshop = $properties['extfld_delivery_shop'];
И просто вывод {$delshop} )?
Подзаработать потом, это хорошо; главное, чтобы проект не возвращался на доработку неожиданно, как будет что-то всплывать. А то техдолг накопится и через пару лет работа будет ради работы делаться. Ну или работать по принципу «сдал проект — и меня нет», тоже так себе подход )))
Вангую немного на будущее:
— вдруг проект вырастет?
— вдруг выяснится, что народ закрывает страницу не дожидаясь отправки и не получает билеты, а потом жалуется?
— вдруг сбой отправки и вы об этом не узнаете, а повторной отправки не предусмотрено?
— вдруг надо будет ещё что-то делать вместе с отправкой билета?
Это я к тому, что лучше этот процесс перенести полностью на бэк, где вы его будете контролировать.
Чтобы БД не запрашивать (хотя для небольших проектов это не имеет особого значения, да и вообще — кому нужна БД — узкое место же :-) ) — можно в файлы json писать: есть файл -> читаем, получаем указанный заказ, отправляем, удаляем. Если отправка каких-то писем не удалась — пишем в лог и данный файл не удаляем. Однако, имхо, это немного извращение.
1. «Чтобы избежать повторных отправок, записываем id заказа в куки… » — лучше таки флаг отправки сохранить в БД, например в properties msOrder. Ибо на страницу domain.ru?msorder=1 можно перейти не раз + она запросто может попасть в индекс яндекса (проверено) и будет весело. Запретите индексацию таких страниц в robots.
2. Откликаться будет ТОЛЬКО на ajax запросы: if ($_SERVER['REQUEST_METHOD'] != 'POST')…
Этот код будет работать при любом запросе к данной странице постом.
Меняйте на что-то вроде:
3. Отправку писем нужно повесить на событие оформления заказа или иное подходящее.
И я бы такой функционал в принципе не вязал бы с MS2, он тут по факту не нужен )
За публикацию личного опыта — спасибо.
Я поменял количество запрашиваемых данных
в файле /core/components/msync/model/msync/msynccataloghandler.class.php
в функции prepareProducts()
в вызове $productsData = $this->getProductTempData(500, $lastProduct);
Поэкспериментируйте со значением.
Я тут во время теста обнаружил один момент, при оплате не подтягивает стоимость доставки