Всего 125 654 комментария

Артур Шевченко
8 минут назад
0
minishop3 недавно вышел, он ещё не прошёл обкатку и без опыта в разработке переезжать, наверное, не стоит. Многое из того, что тебе нужно @Николай Савин уже либо сделал, либо это у него в планах. Поддержать Николая можно донатом.

Отправить на карту СберБанка messenger.online.sberbank.ru/sl/kPLh3bewMs93eW9Hl
Отправить на карту Тинькофф www.tinkoff.ru/sl/2V9U9RrcJZP
Отправить на YooMoney yoomoney.ru/fundraise/RPkkYwNcL7A.230131
QIWI к сожалению недоступен до восстановления их банковской лицензии
Казахстан Каспи по номеру +7 701 282 77 37
Если Вы находитесь в Казахстане и хотите сделать пожертвование на счет ИП, можем сделать официальные документы (при условии адекватной суммы).

Крипта
USDT TRON (TRC20) TU3gzTp2Rt3wPcts1xiXtwWiu7riC8s56q
Bitcoin — BTC 1LxpXEBBCEQYoswu8tGo6TEU1C8JfmRT18
The Open Network — TON UQAeMteI6GWxyCan_QOXX8sKnDAr5ApF-9FK7f-g2qxVlz-e

Со своей стороны обещаю скорый выпуск интеграции со СДЕК.
Олег Захаров
3 часа назад
0
Компонент очень нужный и мне кажется будет востребован.
У меня тут задача стоит сделать что-то подобное на сайте на движке на MODX 2.8 — там есть старые другие решения.
Но задумываюсь о глобальном переносе на 3-ю версию.
Олег Захаров
3 часа назад
0
ну я подумал что возможно ты сам лично уже где-то у себя на заказе рабочем внедрил и есть рабочий сайт
Олег Захаров
3 часа назад
0
А какой компонент для личного кабинета и авторизации используется?
Андрей
3 часа назад
+1
вот нашел еще проще решение для текущего пользователя, без id
$profile = $modx->user->getOne('Profile');
return $profile->get('extended')[$input];
и вызов
[[!userField? &input=`tv_name`]]
но все равно хотелось бы понять причины и может есть штатное решение.
Олег Захаров
4 часа назад
0
тут пришла мысль что никто не захочет просто так делиться своим опытом за бесплатно. Можно было бы сделать статьи и кейсы платными? Типа хочешь прочитать инструкцию или кейс по настройке того или иного компонента — ведь кто-то потратил время на написание инструкции — стоимость 100 руб.
Тут желательно конечно не переусердствовать. Но и обидно не будет тратить время на написание кейсов и инструкций.
А чтобы было понятно что больше всего интересует людей — было бы неплохо сделать список вопросов, на которые нужны ответы — типа голосование или например в описании компонентов добавить голосование за необходимость написания кейсов и готовность оплатить или сбор средств на написание инструкций. Понятно что есть стандартные инструкции, но они не всегда понятные.
И часто бывают брошенные компоненты. Можно было бы собирать средства на его дальнейшее развитие.
Николай Савин
5 часов назад
0
А ты думаешь люди прям десятками уже интернет-магазины на моих решениях клепают? Это очень оптимистично ))
Постараюсь на этой неделе добить и выложить демо-сайт. Там будет и обычный miniShop3 и поиск с фильтрами, и демонстрация вариантов в том числе.
Олег Захаров
5 часов назад
0
Можете прислать примеры живых сайтов не решении? На которых данное решение уже установлено?
Дмитрий
8 часов назад
0
и вот еще какой вопрос…

в документации прописано вот так:

if (!class_exists('msDeliveryInterface')) {
  require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}

class msDeliveryHandlerMsk extends msDeliveryHandler implements msDeliveryInterface {
пример подключения собственного класса доставки.

ИИ говорит мне, что интерфейс не нужно подключать для msOrderHandler

т.е. этот кусок получается лишний в моем случае?
if (!class_exists('msDeliveryInterface')) {
  require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}
Наумов Алексей
9 часов назад
0
Добрый день! Я этот компонент давно делал, и еще лет 5 не возвращался к нему… он работоспособен, все в этом плане нормально (ну по крайней мере с php не выше 8 версии я думаю).

Что касается интеграции с mSync — вам придется самим думать как это сделать, руками создавать записи в БД. Никаких других механизмов нет.

Смотрите схему БД, там всё просто: github.com/createit-ru/msProductKits/blob/master/core/components/msproductkits/model/schema/msproductkits.mysql.schema.xml
Дмитрий
9 часов назад
0
Спасибо! Но есть ряд вопросов, в рамках того, что я сильно не сведущ…
я уже как-то подключал свой обработчик доставки.
имеет ли значение в какой папке будет лежать новый файл my_msOrderHandler

метод это когда начинается с «public function»?

Т.е. посути в новом файле должно остаться метод submit с теми изменениями что вы написали и мой метод, который я постил в предыдущем комментарии?
Алексей Корчагин
Сегодня в 07:22
0
Доброго времени суток.
Подскажите, как правильно составлять наборы при выгрузке товаров через mSync? Делать прямые запросы на добавление этих связей? Собираюсь делать в событии где известен id ресурса.
Тодор
Вчера в 19:45
0
  • Расширяешь класс msOrderHandler (поключение)
  • Копируете из старого submit
  • Заменяешь там
    $user_id = $this->ms2->getCustomerId();
    на
    $user_id = $this->getReceiverId();
  • Добавляешь новый метод getReceiverId в новообразованный класс и меняешь его как хочешь
Андрей
Вчера в 10:22
0
Вижу, спасибо.
Ошибочно решил, что если есть в документации minishop2, то в старых версиях есть и сам код не посмотрел.
Иван Бочкарев
Вчера в 09:27
+1
Привет, Алексей.

1. Как определяем ботов
Проверка идёт по User-Agent в ms3rv_is_bot() (helpers.php). Используется regex по типичным маркерам краулеров:
bot|crawl|slurp|spider|mediapartners|googlebot|bingbot|yandex|baiduspider|duckduckbot|teoma|ahrefs|semrush|mj12bot|dotbot|rogerbot|screaming|petalbot|bytespider
Проверка выполняется до сохранения в БД — при block_bots=true (по умолчанию) запросы от таких User-Agent не пишутся. Это не идеально (подделка UA, новые боты), но отсекает большую часть краулеров.

2. Большой каталог и много пользователей
Есть несколько механизмов, чтобы таблица не росла бесконечно:

Ограничение дублей. UNIQUE по (user_id, session_id, product_id) — для каждой пары «пользователь + товар» хранится одна строка. Повторный просмотр того же товара только обновляет viewed_at, новых строк не добавляется.
TTL и автоочистка. По умолчанию ttl_days=90 и auto_cleanup_enabled=true. Плагин на OnWebPageInit раз в день удаляет записи старше 90 дней.
Месячное архивирование. При archive_enabled=true (по умолчанию) данные за прошедший месяц агрегируются в ms3recentlyviewed_monthly (product_id, view_count, unique_users), а детальные строки из основной таблицы удаляются. Объём основной таблицы остаётся ограниченным.

Итог: Рост таблицы ограничен числом уникальных пар «пользователь × товар» за последние 90 дней, а не количеством просмотров. Архив уменьшает объём основной таблицы, сохраняя агрегаты для аналитики.
Наумов Алексей
Вчера в 07:51
+2
Привет! Дай распрошу)
как ботов отслеживаешь? Пару раз сталкивался, интересны подходы.
И вот что думаешь, большой каталог + большое кол-во пользователей не убьет таблицу просмотров в БД? Как ни крути именно просмотров может быть ну очень много, особенно если не всех ботов получится отсечь.
Дмитрий
18 февраля 2026, 21:55
0
minishop2-4.4.2-pl
Артур Шевченко
18 февраля 2026, 21:22
0
Версия минишопа какая?