Алексей Шумаев

Алексей Шумаев

С нами с 30 ноября -0001; Место в рейтинге пользователей: #24
Алексей Шумаев
23 апреля 2021, 09:39
0
Ну да, как вариант — конкретная реализация от задачи.

Вангую немного на будущее:
— вдруг проект вырастет?
— вдруг выяснится, что народ закрывает страницу не дожидаясь отправки и не получает билеты, а потом жалуется?
— вдруг сбой отправки и вы об этом не узнаете, а повторной отправки не предусмотрено?
— вдруг надо будет ещё что-то делать вместе с отправкой билета?
Это я к тому, что лучше этот процесс перенести полностью на бэк, где вы его будете контролировать.

Чтобы БД не запрашивать (хотя для небольших проектов это не имеет особого значения, да и вообще — кому нужна БД — узкое место же :-) ) — можно в файлы json писать: есть файл -> читаем, получаем указанный заказ, отправляем, удаляем. Если отправка каких-то писем не удалась — пишем в лог и данный файл не удаляем. Однако, имхо, это немного извращение.
Алексей Шумаев
23 апреля 2021, 09:13
0
Да, именно на крон. Сохраняем очередь отправки в отдельную таблицу, потом кроном раз в ~ 1 мин отправляем накопившиеся и удаляем из таблицы. Лимит на отправку за один запуск скрипта ~ 5-10 писем, чтобы не иметь проблем с хостером (чтобы за спам 100% не принимали).
Алексей Шумаев
23 апреля 2021, 08:56
+3
Навскидку несколько моментов:
1. «Чтобы избежать повторных отправок, записываем id заказа в куки… » — лучше таки флаг отправки сохранить в БД, например в properties msOrder. Ибо на страницу domain.ru?msorder=1 можно перейти не раз + она запросто может попасть в индекс яндекса (проверено) и будет весело. Запретите индексацию таких страниц в robots.
2. Откликаться будет ТОЛЬКО на ajax запросы: if ($_SERVER['REQUEST_METHOD'] != 'POST')…
Этот код будет работать при любом запросе к данной странице постом.
Меняйте на что-то вроде:
if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') die;
3. Отправку писем нужно повесить на событие оформления заказа или иное подходящее.

И я бы такой функционал в принципе не вязал бы с MS2, он тут по факту не нужен )

За публикацию личного опыта — спасибо.
Алексей Шумаев
09 апреля 2021, 17:50
0
Версия обновлена, теперь есть сортировка файлов.
Алексей Шумаев
03 апреля 2021, 10:41
+1
Мультикатегории же, оказывается, есть ) Вроде нормально работают вроде на паре крупных сайтов.
Видимо, есть ошибка в подсчёте количества, на крупных сайтах этого можно и не заметить.
Если есть возможность дать доступ к админке — я посмотрю твой пример, поправлю.
Алексей Шумаев
01 апреля 2021, 17:38
+1
Видимо работает потому, что в любом случае перед выводом код проходит через парсер.
Почему в таком случае не срабатывает феном пока сказать не могу, надо код смотреть )
Алексей Шумаев
01 апреля 2021, 16:14
0
Не понял, что за поле «Описание» имеется ввиду.
Если в поле компонента, то там нет ни фенома, ни ресурса.
Не думаю, что это компонент.
Алексей Шумаев
31 марта 2021, 19:08
+1
Да, мультикатегорий пока нет, забыл про них. Попозже добавлю.
Алексей Шумаев
31 марта 2021, 14:50
0
Добрый! Залил новую версию. Не тестил, т.к. нет времени, но должно работать.
Прошу проверить и отписаться )
Алексей Шумаев
26 марта 2021, 11:04
0
Добрый день
Какие данные имеются ввиду? Формы, отправленные формы, отзывы?
Сортировку можно включить, если нужно (никому пока не надо было), поиск есть.
Экспорта нет — я смысла не вижу, никто больше пока не просил.
Алексей Шумаев
26 марта 2021, 00:05
0
Добрый!
Начните ввод в поле: prntscr.com/10vf694
Если у вас 30000 ресурсов — зачем их все выводить? )
Алексей Шумаев
22 марта 2021, 09:12
0
Как вариант, если речь идёт о товарах: сделайте отдельный сервер для товарной БД с api + интерфейс по управлению товарами для менеджеров. Фронт на js, бэк на чём угодно, на том же slim'е.
Синхронизируйте с ним сколько угодно сайтов.
Алексей Шумаев
19 марта 2021, 17:59
+1
Примерно так:
Js: ajax запрос к своему контроллеру, который отдаст вам чанк с данными товара. Полученный html вставить в нужный блок модального окна, запустить модалку.
Посмотрите в гугл, наверняка есть примеры.
Алексей Шумаев
19 марта 2021, 17:26
0
Нет, оно не для этого. Добавить форму какую-то в окно быстрого просмотра — это да.

Смотрите в modstore.pro, вроде было дополнение для быстрого просмотра.
Хотя я смысла не вижу — быстрый просмотр реализуется очень просто без дополнений.
Алексей Шумаев
27 февраля 2021, 17:43
0
Поставил 2.8.
Алексей Шумаев
15 февраля 2021, 11:43
+1
Добрый!

1. не очень понятно, при чём тут Самовывоз — это не order, а delivery
Ты подключаешь кастомный класс заказа, не доставки.
2. проверь, что в системной настройке ms2_services

И ещё важный момент — этот пост старый, что в текущих версиях MS2 — я не скажу сейчас, возможно, что всё уже немного иначе )

Думаю, вот тут вся информация по расширению класса доставки.
Алексей Шумаев
02 февраля 2021, 11:58
+1
К п.4 присоединяюсь сразу, действительно — очень не удобно.
Алексей Шумаев
24 января 2021, 22:59
+4
Крайне рекомендую изучить код примеров (а лучше попробовать реализовать самостоятельно) всем начинающим разработчикам под modx, даже если вам такой функционал сейчас не нужен.
Затрагивается куча важных моментов по работе с modx в целом и с ms2 в частности. Благодаря подробным комментариям фактически получился отличный урок. Однозначно поможет не наступить на кучу грабель.
Павел, спасибо!
Алексей Шумаев
24 декабря 2020, 13:01
0
Часть данных хранится на серверах сервиса; данные именно по ценам/срокам сейчас запрашиваются напрямую от ТК, затем передаются пользователям, применяя модификаторы и т.п. + кэширование.
В будущем объём данных на серверах сервиса будет увеличиваться, чтобы снизить время отклика.
Алексей Шумаев
21 декабря 2020, 11:37
+1
В чанк на фронте можно сразу добавить инфу о стоимости по отдельности и выгоде покупателя в комплекте.
Пользователям будет проще. Т.е. по отдельности сумма 35000, ваша выгода — 5000р, ~15%