
Алексей Шумаев
С нами с 30 ноября -0001; Место в рейтинге пользователей: #244 часа назад
самый просто вариант это хукЯ тоже так думаю
Этот хук обрабатывает форму "Купить в 1 клик", создает заказ в miniShop2 1
04 сентября 2025, 12:45
Нет, данную проблему не решил, потому как она мне и не мешала… Так как с сам minishop3 использовал на паре проектов где доставка и не требовалась. Буд...
[MiniShop3] - Новости, Планы 34
04 сентября 2025, 12:35
казалось бы чего, открой другой браузер, где не выполнен вход и заноси заказаМожно установить adminTools и запретить автоматическое залогинивание в ко...
Оформление заказа minishop2 1
04 сентября 2025, 12:27
modx.pro/help/12408#comment-81924
minishop2 отправить фотографию товара заказчику 11
03 сентября 2025, 19:36
Если ты просто скачал компонент из репозитория и не запускал composer install — запусти.
MiniShop3 - 1.0.0-alpha 20
31 августа 2025, 21:09
Экранировать, то есть так: $c->sortby($this->modx->escape('rank'), 'ASC');
Во всех файлах?
/core/components/pageblocks/processors/mgr/co...
PageBlocks. Удобное управление контентом сайта. 46
29 августа 2025, 18:05
Василий, здравствуйте! Очень интересное (и правильное) направление для развития modx экосистемы как мне кажется. В последнее время для разработки боль...
Новый тип дополнений: mmxDatabase и mmxForms 41
29 августа 2025, 17:29
Пересобрал шаблон для новостей которые через Collections.
В какой TV была ошибка так и не нашел (((
Мodx revo 3.1.2 при запросе страницы, связанной с Collections сервер возвращает ошибку 500 3
28 августа 2025, 21:34
Добро. Сейчас, сейчас… прольётся чья-то кровь )))
Доработки сайта сообщества modx.pro 11
Можно сразу и название деревни для примера? На всякий случай проверю ситуацию с деревнями.
2. Там, где конкретный адрес важен (Достависта), он учитывается.
но при этом адрес задаётся прямо в виджете, поэтому манипуляции с полями ms2 не имеют значения.
Причём для поля ввода адреса можно подключить dadata: yadi.sk/i/1UamsCRgwxoW9A
modx-v2.eshoplogistic.ru/documentation.html#d12
Сейчас поля ввода адреса внутри виджета и в ms2 не синхронизированы, т.е. вводить надо и там и там. Пока это касается только Достависты, поэтому отложено на недалёкое будущее.
3. Для почты — да, но это под капотом: задавать индекс посетителю сайта не нужно, он автоматом подтягивается от выбранного города.
Скорее всего обновление версии не потребуется, если баг внутри виджета, но лучше пока подождать с обновлением на боевом сайте.
Проверить как сейчас работает можно на демо-сайте: modx-v2.eshoplogistic.ru
Буду благодарен за обратную связь!
{if $delivery.class == 'eslHandler'} установить класс типа «esl-delivery-item»
и скрывать только их.
В ближайшее время что-нибудь придумаю…
Да, так работает.
Сами способы доставки должны быть на странице, но управляются «за кулисами» по событиям виджета.
Возможно, это я не совсем верно сделал, т.к., действительно могут быть иные способы доставки, которые не нужно скрывать. Я подумаю, как это поудобнее реализовать; скорее всего скрываться будут только способы доставки, созданные модулем при установке.
Пока можно переключиться на свой js-файл, скопировать туда несжатый eshoplogistic2.js и закомментировать/изменить эти строки: yadi.sk/i/XckMjOIIacnUaQ
В данном варианте все нужные данные на фронте доступны через события виджета.
Поэтому и не требуется расширять класс доставки, чтобы добавить в стандартный response недостающие данные.
Я так думаю это касается ~ 90% работающих в сфере сайтов.
Обычно при таком подходе народ моментально выгорает; да и учиться нет особого смысла — только под конкретную ситуацию.
Подзаработать потом, это хорошо; главное, чтобы проект не возвращался на доработку неожиданно, как будет что-то всплывать. А то техдолг накопится и через пару лет работа будет ради работы делаться. Ну или работать по принципу «сдал проект — и меня нет», тоже так себе подход )))
Вангую немного на будущее:
— вдруг проект вырастет?
— вдруг выяснится, что народ закрывает страницу не дожидаясь отправки и не получает билеты, а потом жалуется?
— вдруг сбой отправки и вы об этом не узнаете, а повторной отправки не предусмотрено?
— вдруг надо будет ещё что-то делать вместе с отправкой билета?
Это я к тому, что лучше этот процесс перенести полностью на бэк, где вы его будете контролировать.
Чтобы БД не запрашивать (хотя для небольших проектов это не имеет особого значения, да и вообще — кому нужна БД — узкое место же :-) ) — можно в файлы json писать: есть файл -> читаем, получаем указанный заказ, отправляем, удаляем. Если отправка каких-то писем не удалась — пишем в лог и данный файл не удаляем. Однако, имхо, это немного извращение.
1. «Чтобы избежать повторных отправок, записываем id заказа в куки… » — лучше таки флаг отправки сохранить в БД, например в properties msOrder. Ибо на страницу domain.ru?msorder=1 можно перейти не раз + она запросто может попасть в индекс яндекса (проверено) и будет весело. Запретите индексацию таких страниц в robots.
2. Откликаться будет ТОЛЬКО на ajax запросы: if ($_SERVER['REQUEST_METHOD'] != 'POST')…
Этот код будет работать при любом запросе к данной странице постом.
Меняйте на что-то вроде:
3. Отправку писем нужно повесить на событие оформления заказа или иное подходящее.
И я бы такой функционал в принципе не вязал бы с MS2, он тут по факту не нужен )
За публикацию личного опыта — спасибо.