Володя · 24 декабря 2017, 20:28 просто добавьте в форму товара поле в массив options <div class="form-group"> <label class="col-md-2 control-label">Add:</label> <div class="col-md-10 form-control-static"> <textarea name="options[comment]"></textarea> </div> </div>пример msdsector.vgrish.ru/index.php?id=5 поле add далее это поле будет в опциях товара Вопросы / Доп. поле товара с возможностью редакции с фронта 2 +2 1
Воеводский Михаил · 20 апреля 2017, 13:26 Алексей абсолютно прав — большую портянку кода никто не хочет изучать, тк это бесполезная трата времени. На одном из проектов решена подобная задача. Алгоритм вкратце: 1) Расширен класс заказа 2) Родной submit() переименован в _submit() 3) Создан новый submit(), который разделяет корзину на несколько по необходимой логике (cart->get(), затем разбиение на несколько разных массивов, после чего в цикле cart->set() для каждого) 4) В цикле для каждого полученного массива корзины вызывается _submit(). Вопросы / Формирование нескольких заказов в miniShop2 6 +2 1
Максим Кузнецов · 29 июня 2016, 16:05 'where' => '{ "id:!=": '~ $_modx->resource.id ~' }' Вопросы / Проблема с where и sortby в fenom 8 +2 7
Василий Наумкин · 24 марта 2016, 07:44 Лично я закрываю служебные директории через веб-сервер на случай обнаружения новой уязвимости в MODX. Например, как это было, когда движок некорректно обрабатывал запросы в несуществующий контекст в коннекторах. Там еще одна PHP авторизация не помогла бы, так как хакер получал доступ к API через обычные GET запросы к определённому файлу. Именно поэтому я закрываю для доступа снаружи и админку, и коннекторы, и ядро. Причём, не через потенциально уязвимый движок, а средствами гораздо менее потенциально уязвимого Nginx. location ~* ^/(core|manager|connectors)/ { auth_basic "Restricted Access"; auth_basic_user_file /home/site/.htpasswd; try_files $uri $uri/ @rewrite; location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-site; } } А зачем нужна вот эта инструкция — большой вопрос. Пошаговые инструкции / Двухуровневая авторизация в менеджере 20 +2 8
Константин · 04 марта 2016, 15:30 Недавно делал на сайте вот так: Вызов сниппета через AjaxForm [[!AjaxForm? &snippet=`QuickOrder` &form=`order.form` ]] И вот сам сниппет QuickOrder <?php $errors = array(); if ( empty( trim( $_POST['total'] ) ) OR !is_numeric( trim( $_POST['total'] ) ) ) { $errors['total'] = 'Вы не заполнили кол-во человек'; } if ( empty( trim( $_POST['phone'] ) ) ) { $errors['phone'] = 'Вы не заполнили телефон'; } if ( !empty( $errors ) ) { return $AjaxForm->error( 'В форме содержатся ошибки!', $errors ); } else { $miniShop2 = $modx->getService( 'minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties ); if ( !( $miniShop2 instanceof miniShop2 ) ) { return $AjaxForm->error( 'Ошибка скрипта!' ); } $miniShop2->initialize($modx->context->key, $scriptProperties); $miniShop2->order->add( 'receiver', trim( $_POST['receiver'] ) ); $miniShop2->order->add( 'email', trim( $_POST['email'] ) ); $miniShop2->order->add( 'delivery', 1 ); // id метода доставки $miniShop2->order->add( 'payment', 1 ); // id метода оплаты $miniShop2->cart->add($_POST['id'], $modx->getOption('count', $_POST, 1), $modx->getOption('options', $_POST, array())); return $AjaxForm->success( 'Форма успешно отправлена. Сейчас вы перейдете на страницу оплаты.' ); } JS Callback для отправки формы: $( document ).on('af_complete', function( event, response ) { if( response.success ) { response.form[0].submit(); } }) Вопросы / Покупка товара в один клик 3 +1 7
Пашкович Дмитрий · 27 декабря 2015, 18:08 Спасибо! Работает! Вопросы / Оrder success на отдельной странице 6 -1 1
Воеводский Михаил · 15 июня 2015, 02:44 Потребуется свой сниппет, который запустит всего 2 метода minishop2: $minishop2->cart->add($productId, $count); $orderData = array(/* Здесь много полей, имеющихся в стандартной форме заказа */); $minishop2->order->submit($orderData); Вопросы / Покупка товара в один клик 3 +3 4
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
пример msdsector.vgrish.ru/index.php?id=5 поле add
далее это поле будет в опциях товара
На одном из проектов решена подобная задача. Алгоритм вкратце:
1) Расширен класс заказа
2) Родной submit() переименован в _submit()
3) Создан новый submit(), который разделяет корзину на несколько по необходимой логике (cart->get(), затем разбиение на несколько разных массивов, после чего в цикле cart->set() для каждого)
4) В цикле для каждого полученного массива корзины вызывается _submit().
Например, как это было, когда движок некорректно обрабатывал запросы в несуществующий контекст в коннекторах. Там еще одна PHP авторизация не помогла бы, так как хакер получал доступ к API через обычные GET запросы к определённому файлу.
Именно поэтому я закрываю для доступа снаружи и админку, и коннекторы, и ядро. Причём, не через потенциально уязвимый движок, а средствами гораздо менее потенциально уязвимого Nginx.
А зачем нужна вот эта инструкция — большой вопрос.
Вызов сниппета через AjaxForm
И вот сам сниппет QuickOrder
JS Callback для отправки формы: