Андрей · 22 февраля 2025, 11:06 Не приходит информация: phone, street, comment Остальные приходят. В чём может быть причина? <?php if($modx->event->name != 'msOnCreateOrder') return; $token = $modx->getOption('mstelegram_token', null, false); $recipients = explode(',', $modx->getOption('mstelegram_recipients', null, '')); $contacts = $modx->getObject('msOrderAddress', array('id'=> $msOrder->id)); $_products = $msOrder->getMany('Products'); $profile = $msOrder->getOne('UserProfile'); // Список товаров в заказе $i = 0; $products = ''; foreach ($_products as $product) { $i++; $products .= "*{$i}. {$product->name}* \n `↳ ". round($product->price) ." х {$product->count} шт. = ". round($product->price * $product->count)."` \n"; } if ($msOrder->delivery == '1') { $deli = "Сами заберут \n---------- \nТелефон: {$contacts->phone} \nКомментарий: {$contacts->comment}\n"; } else if ($msOrder->delivery == '2') { $deli = "Доставка {$contacts->city} `{$msOrder->delivery_cost} р.` \n---------- \nТелефон: {$contacts->phone} \nАдрес: {$contacts->city}, {$contacts->street} \nКомментарий: {$contacts->comment}\n"; } // Текст сообщения $message = " Новый заказ #{$msOrder->id} на сумму: {$msOrder->cart_cost} р. ---------- {$products} ---------- {$deli} _Статус заказа придёт повторно_"; $message = urlencode($message); foreach($recipients as $id){ $id = trim($id); if(!$id) continue; $url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$id}&parse_mode=markdown&text={$message}"; $ch = curl_init(); curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true,)); $result = curl_exec($ch); curl_close($ch); } Готовые решения / [msTelegram] Уведомления о заказе в telegram 72 0 1
Кушнеров Александр · 30 августа 2024, 01:32 Я тоже немного доработал, чтобы приходило больше полей, а также способ и вариант доставки текстом: <?php if($modx->event->name != 'msOnCreateOrder') return; $token = $modx->getOption('mstelegram_token', null, false); $recipients = explode(',', $modx->getOption('mstelegram_recipients', null, '')); $contacts = $msOrder->getOne('Address'); $_products = $msOrder->getMany('Products'); // Список товаров в заказе $i = 0; $products = ''; foreach ($_products as $product) { $i++; $products .= "{$i}. {$product->name} ({$product->count} шт.)"; } // Текст сообщения $message = " Новый заказ #{$msOrder->num} на сумму {$msOrder->cost} р. ----- {$products} ----- E-mail: {$contacts->email} Имя: {$contacts->receiver} Телефон: {$contacts->phone} Комментарий: {$contacts->comment}"; $deliveryMethod = $modx->getObject('msDelivery', $msOrder->delivery); if ($deliveryMethod) { $deliveryMethodTitle = $deliveryMethod->get('name'); $message .= "\nСпособ доставки: {$deliveryMethodTitle}"; } $paymentMethod = $modx->getObject('msPayment', $msOrder->payment); if ($paymentMethod) { $paymentMethodTitle = $paymentMethod->get('name'); $message .= "\nСпособ оплаты: {$paymentMethodTitle}"; } $message = urlencode($message); foreach($recipients as $id){ $id = trim($id); if(!$id) continue; $url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$id}&text={$message}"; $ch = curl_init(); curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true)); $result = curl_exec($ch); curl_close($ch); } Готовые решения / [msTelegram] Уведомления о заказе в telegram 72 0 1
Alexey · 18 мая 2022, 09:26 Привет! Попробуй в ссылке на оплату поменять money.yandex.ru на yoomoney.ru — тыц Если установлен компонент mspyacassa, то есть настройка mspyacassa_payment_url Вопросы / Яндекс.Касса. При оплате на сайте просто переводит на сайт Ю.Моней 6 +1 1
Дмитрий · 14 апреля 2021, 14:56 Может быть кому поможет. Я просто поменял адреса хоста в системных настройках MODX (шестерёнка в правом верхнем углу, где иконка профиля). В техподдержке Юкассы сказали, что это сработало и касса не должна сломаться после полной смены хостов. Замены в настройках: money.yandex.ru/eshop.xml на yoomoney.ru/eshop.xml penelope.yamoney.ru:443/webservice/mws/api/ на shop.yookassa.ru:443/webservice/mws/api/ Новые дополнения и их версии / [mspYaCassa] - Яндекс Касса метод оплаты miniShop2 80 0 1
Павел Романов · 18 февраля 2020, 17:56 Сделайте сниппет: <?php $cities = $modx->runSnippet('pdoResources', array( 'parents'=> 8, 'includeTVs'=> 'city', 'limit' =>0, 'tpl'=>'@INLINE [[+tv.city]]', 'outputSeparator' => '--' )); $cities = explode('--', $cities); $cities = array_unique($cities); natsort($cities); foreach($cities as $city){ $out .= '<option value="'.$city.'">'.$city.'</option>'; } return '<select name="city">'.$out.'</select>'; Вопросы / Возможно ли удалить дубликаты значений Tv полей перед выводом через pdoResources? 2 +1 1
Баха Волков · 21 августа 2019, 21:42 switch($modx->event->name) { case 'OnDocFormPrerender': $classes = ['msProduct', 'msCategory']; if (in_array($resource->get('class_key'), $classes)) { $template = $resource->get('template'); $templates = [1,2]; // Список шаблонов в которых нужно скрыть поле Содержимое if (in_array($template, $templates)) { $modx->regClientStartupHTMLBlock(' <script type="text/javascript"> Ext.onReady(function() { var content = Ext.getCmp("ta"); content.hide(); }); </script>'); } } break; } Вопросы / Убрать содержимое в настройке форм minishop2 7 0 1
Сергей · 16 февраля 2019, 19:18 Благодарю, но такой вариант не подошёл бы наверно, так как будет много запросов к базе, вкладки и товары должны автоматом же формироваться и их может быть n-е количество, но нашёл решение с билдером запросов, много времени потратил правда, в документации неточность была. Вот решение моей задачи если кому-то пригодится: $json = $modx->runSnippet('pdoResources', array( 'parents' => $parent_id, 'select' => array( 'modResource' => $select, 'msProductData' => 'price'), 'class' => 'modResource', 'leftJoin' => array( 'msProductData' => array( 'class' => 'msProductData', 'on' => 'msProductData.id = modResource.id') ), 'includeTVs'=> $includeTVs, 'return' => 'json' )); Вопросы / Minishop2 - цена товара через pdoResources в custom сниппете - решено 2 0 1
Павел Гвоздь · 07 ноября 2018, 20:54 условие where перестает работать.Ещё бы! 'where'=>'{"id:!=":"[[*id]]"}'Что это за колдунство?) Запишите нормально, по-человечески, массивом! Вот тоже самое: 'where' => [ 'id:!=' => $_modx->resource['id'], ], Новые дополнения и их версии / [tvSuperSelect] Тип TV: автозаполняемый список из ms2, для реализации тегов 125 +1 1
Алекс Назаренко · 09 августа 2018, 15:31 <a href="#" data-sort="ms|price:desc" data-dir="[[+mse2_sort:is=`ms|price:desc`:where=`{'Data.price:>=':2000}`]]" class="sort__link"> <span class="link-span">Дорогие от 2000 р.</span> </a> Вопросы / Как настроить сортировку товара по цене 3 0 1
Konstantin B · 21 июня 2018, 23:13 В общем и целом решение нашел, странно что в документации написано объект $order, меня честно говоря это ввело в заблуждение. Оставлю это тут, вдруг кому-то пригодится! Как оказалось достаточно такой конструкции: <?php switch ($modx->event->name) { case 'msOnCreateOrder': if($newStatus == true) { $msOrder->set("status","5"); $msOrder->save(); } break; } Вопросы / Как в плагине поменять статус заказа minishop2? 9 0 2
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
Остальные приходят. В чём может быть причина?
Если установлен компонент mspyacassa, то есть настройка mspyacassa_payment_url
Замены в настройках:
money.yandex.ru/eshop.xml на yoomoney.ru/eshop.xml
penelope.yamoney.ru:443/webservice/mws/api/ на shop.yookassa.ru:443/webservice/mws/api/
Вот решение моей задачи если кому-то пригодится:
Что это за колдунство?) Запишите нормально, по-человечески, массивом!
Вот тоже самое:
Оставлю это тут, вдруг кому-то пригодится!
Как оказалось достаточно такой конструкции: