16 января 2023, 13:15 Привет, разобрались?) Новые дополнения и их версии / [utmMark] - сохранения UTM меток для форм 16 0
16 января 2023, 13:15 Привет, разобрались?) Новые дополнения и их версии / [utmMark] - сохранения UTM меток для форм 16 0
13 октября 2020, 14:26 Пообщались и сделали следующее, может кому пригодится. Добавьте в настройку msstatorders_grid_order_fields поле address_properties Если вы хотите сделать вывод столбцов меток, нужно написать плагин на событие msStatOrdersOnPrepareObjectRow пример для utm_source <?php if (!is_object($self) OR $self->classKey !== 'msOrder' OR $type !== 'getlist') { return; } $data = is_array($data) ? $data : array(); $properties = is_array($data['address_properties']) ? $data['address_properties'] : json_decode($data['address_properties'], 1); $data['utm_source'] = isset($properties['utm_source']) ? $properties['utm_source'] : ''; $modx->event->returnedValues['data'] = $data;и уже потом в msstatorders_grid_order_fields добавить utm_source Новые дополнения и их версии / [utmMark] - сохранения UTM меток для форм 16 0 1
07 сентября 2020, 15:50 Добавлено в версию 1.0.5-beta :) Новые дополнения и их версии / [utmMark] - сохранения UTM меток для форм 16 0
15 июля 2020, 19:59 Да, планируется. В minishop2 есть поле properties :) Новые дополнения и их версии / [utmMark] - сохранения UTM меток для форм 16 0
12 июля 2018, 02:24 Ну если хотите сделать вывод заказов на своем сайте, имею ввиду не в админке, то ничего сложного в этом нет. Читаете документацию и вперед. Есть кстати уже готовое, только не приходилось использовать https://modstore.pro/packages/integration/mslistorders Вопросы / [MiniShop2] Мобильная страница заказов для менеджера 3 -1
28 декабря 2017, 21:04 Ах да, ещё docs.modx.pro/components/pdotools/general-settings#Способы-вызова-чанков Вопросы / pdoResources + phpThumbOn с @INLINE 11 0
28 декабря 2017, 20:50 А пробовали phpThumbOn запускать без кеша? Вопросы / pdoResources + phpThumbOn с @INLINE 11 0
28 декабря 2017, 19:07 А зачем использовать @INLINE? Вопросы / pdoResources + phpThumbOn с @INLINE 11 0
16 ноября 2017, 21:42 Наверное попробую реализовать через AjaxSnippet Новые дополнения и их версии / [QuickView] - быстрый просмотр в модальном окне. 81 0
16 ноября 2017, 17:39 Здравствуйте. У меня возник вопрос. Мне необходимо вывести каталог с товарами в модальном окне. Прежде чем приобрести, попробовал на тестовом хостинге это воплотить, товары выводятся, всё гуд, но у меня не работает пагинация, то есть страница обновляется. Вызов pdopage осуществляется в чанке. При включении ajax в pdopage, товары не появляются вообще. Не подскажите возможно ли это сделать данным дополнением? Спасибо! P.S. также пробовал через сниппет с параметрами, тоже самое. Новые дополнения и их версии / [QuickView] - быстрый просмотр в модальном окне. 81 0
02 мая 2017, 16:08 PS Совсем забыл выложить готовый код. Сейчас пользователя не перекидывает на оплату, а просто выводиться страница с его оформленными заказами и там уже ссылки на оплату. А как это сделать, уже совсем другая история :) Сейчас после оформления заказов формируются след. вида ссылки: domain.ru/cart?msorder=23,24. Просто нужно скопировать сниппет msGetOrder и немного его переделать :) <?php class msTest extends msOrderHandler { public function submit($data = array()) { $response = $this->ms2->invokeEvent('msOnSubmitOrder', array( 'data' => $data, 'order' => $this, )); if (!$response['success']) { return $this->error($response['message']); } if (!empty($response['data']['data'])) { $this->set($response['data']['data']); } $response = $this->getDeliveryRequiresFields(); if ($this->ms2->config['json_response']) { $response = json_decode($response, true); } $requires = $response['data']['requires']; $errors = array(); foreach ($requires as $v) { if (!empty($v) && empty($this->order[$v])) { $errors[] = $v; } } if (!empty($errors)) { return $this->error('ms2_order_err_requires', $errors); } $cart = $this->ms2->cart->get(); $products = array(); $partners = array(); $idOrders = array(); foreach ($cart as $v) { if(!in_array($v['vendor'],$partners)){ $partners[] = $v['vendor']; } } foreach ($partners as $partner){ $user_id = $this->ms2->getCustomerId(); $cart_status = $this->ms2->cart->status(); $delivery_cost = $this->getCost(false, true); $createdon = date('Y-m-d H:i:s'); $cart_cost = 0; $weight_cost = 0; // Adding products foreach ($this->ms2->cart->get() as $v) { if ($partner == $v['vendor']){ if ($tmp = $this->modx->getObject('msProduct', $v['id'])) { $name = $tmp->get('pagetitle'); } else { $name = ''; } /** @var msOrderProduct $product */ $product = $this->modx->newObject('msOrderProduct'); $product->fromArray(array_merge($v, array( 'product_id' => $v['id'], 'name' => $name, 'cost' => $v['price'] * $v['count'], ))); $cart_cost = $cart_cost + ($v['price'] * $v['count']); //собираем стоимость заказа для партнера $weight_cost = $weight_cost + $v['weight']; $products[] = $product; $key = md5($v['id'] . $v['price'] . $v['weight'] . $v['vendor'] . (json_encode($v['options']))); $remove = $this->ms2->cart->remove($key); //Удаляем товар из корзины } } /** @var msOrder $order */ $order = $this->modx->newObject('msOrder'); $order->fromArray(array( 'user_id' => $user_id, 'createdon' => $createdon, 'num' => $this->getNum(), 'delivery' => $this->order['delivery'], 'payment' => $this->order['payment'], 'cart_cost' => $cart_cost, 'weight' => $weight_cost, 'delivery_cost' => $delivery_cost, 'cost' => $cart_cost + $delivery_cost, 'status' => 0, 'context' => $this->ms2->config['ctx'], 'partner' => $partner, )); // Adding address /** @var msOrderAddress $address */ $address = $this->modx->newObject('msOrderAddress'); $address->fromArray(array_merge($this->order, array( 'user_id' => $user_id, 'createdon' => $createdon, ))); $order->addOne($address); $order->addMany($products); $response = $this->ms2->invokeEvent('msOnBeforeCreateOrder', array( 'msOrder' => $order, 'order' => $this, )); if (!$response['success']) { return $this->error($response['message']); } if ($order->save()) { $response = $this->ms2->invokeEvent('msOnCreateOrder', array( 'msOrder' => $order, 'order' => $this, )); if (!$response['success']) { return $this->error($response['message']); } if (empty($_SESSION['minishop2']['orders'])) { $_SESSION['minishop2']['orders'] = array(); } $_SESSION['minishop2']['orders'][] = $order->get('id'); // Trying to set status "new" $response = $this->ms2->changeOrderStatus($order->get('id'), 1); if ($response !== true) { return $this->error($response, array('msorder' => $order->get('id'))); } unset($products); } else{ $this->modx->log(1, 'Oh no, the wand failed to save!'); } $idOrders[] = $order->get('id'); } $this->ms2->cart->clean(); $this->clean(); /*$this->modx->sendRedirect( $this->modx->context->makeUrl( $this->modx->resource->id, array('msorder' => $response['data']['msorder']) ) );*/ /** @var msPayment $payment */ /*if ($payment = $this->modx->getObject('msPayment', array('id' => $order->get('payment'), 'active' => 1)) ) { $response = $payment->send($order); if ($this->config['json_response']) { @session_write_close(); exit(is_array($response) ? json_encode($response) : $response); } else { if (!empty($response['data']['redirect'])) { $this->modx->sendRedirect($response['data']['redirect']); } elseif (!empty($response['data']['msorder'])) { $this->modx->sendRedirect( $this->modx->context->makeUrl( $this->modx->resource->id, array('msorder' => $response['data']['msorder']) ) ); } else { $this->modx->sendRedirect($this->modx->context->makeUrl($this->modx->resource->id)); } return $this->success(); } } else {*/ if ($this->ms2->config['json_response']) { return $this->success('', array('msorder' => implode(",", $idOrders))); } else { $this->modx->sendRedirect( $this->modx->context->makeUrl( $this->modx->resource->id, array('msorder' => implode(",", $idOrders)) ) ); } return $this->success(); return $this->error(); } } Вопросы / Формирование нескольких заказов в miniShop2 6 +2
20 апреля 2017, 15:43 Спасибо большое за алгоритм!!! Вопросы / Формирование нескольких заказов в miniShop2 6 0
20 апреля 2017, 12:34 Ахах ну хорошо, буду думать дальше)) Пока понял только то, что я return $this->success(); в цикле, а не после его выполнения, из-за этого приходится несколько раз нажимать оформить заказ. Вопросы / Формирование нескольких заказов в miniShop2 6 0
19 апреля 2017, 17:03 Вот так получить можно содержимое корзины. P.S/ смотрите в журнале ошибок $tmp = $cart->get(); $modx->log(1, print_r($tmp, 1)); Вопросы / MiniShop 2 плагин msOnBeforeAddToCart 3 +2 1
16 февраля 2017, 02:14 Здравствуйте. В обновлении указано что добавили пункты доставок, скажите пожалуйста как их получить? Как еще получить выбранный город после Ajax запроса? Просто написал свой сниппет, который получает город, но только он работает после перезагрузки. Спасибо! Новые дополнения и их версии / msCDEK 1.0.0: расчет доставки ТК СДЕК 59 0
10 февраля 2017, 18:08 Московское метро. Только без МЦК. Просто нет API Яндекс.Метро, ну или я не нашел :c Готовые решения / Сборка сайта агентства недвижимости 47 0
10 февраля 2017, 17:54 Если необходим поиск по карте метро, то могу выслать исходники. (сама схема png + JS) Что-то сравнение в демо не работает Готовые решения / Сборка сайта агентства недвижимости 47 0
03 февраля 2017, 20:15 Спасибо за смайлики. А не подскажите, как сделать, чтобы в <code></code> они не отображались? Спасибо! Готовые решения / [Tickets] Комментарии со смайликами 7 0
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Вложенный migx тоже переведет??
PageBuilder — визуальный конструктор страниц для MODX 3 Класс! Пара моментов смутила: 1. Почему бы чанки сразу не вынести в файлы? 2. На фронте грузится свой CSS для стандартных блоков<link rel="stylesheet" href="/a...
mxDadata — интеграция DaData (Suggest, Clean, Party) с MODX 3 и MiniShop3 Вышла новая версия: [1.0.2-pl] — 2026-10-06 Fixed #9 Права mxdadata_edit, mxdadata_logs, mxdadata_cache_clear теперь проверяются в connector.php и в Processors\Mgr\Pr...
msp3PaymentSkeleton — шаблон для создания платёжных дополнений MiniShop3 вот круто. я как то писал платежное дополнение и парился как что. а теперь надеюсь все проше будет :-)
MiniShop3 1.2.0 - 1.3.0 Самое интересное Пообщались с клиентом он сказал что тыкал в позицию т.к. она не добавлялась (видимо лагал инет) и вот она размножилась таким образом.
Modx Revo 2.8.8 + Minishop 2 (4.4.2) + Babel 3.5.2 - превью товаров в админке у дополнител... Сначала сравните ответ connector для исходного товара и его перевода во вкладке Network. Если у перевода поле миниатюры пустое, смена чанка или рендерера сама картинку не добавит: ...
Сайт тормозит сервер, грузит процессор на 100% полезно посмотреть, какие URL запрашивают эти боты и сколько времени занимает их обработка. Частые обращения к поиску и фильтрам могут нагружать PHP сильнее, чем обычные страницы. ...
Подскажите насколько это рабочее решение Спасибо за ответ. У меня время создания заказа равно времени оплаты. Заказ оплачивается сразу через iframe на сайте. При нажатии на кнопку «оформить заказ» всплывает окошко робокас...
Не всегда срабатывает JS-событие Здесь лучше разделить «заказ создан» и «заказ оплачен». Первое событие фиксируется при успешном создании заказа, второе — после проверенного уведомления платёжной системы на сервер...
Добавьте в настройку msstatorders_grid_order_fields поле address_properties
Если вы хотите сделать вывод столбцов меток, нужно написать плагин на событие msStatOrdersOnPrepareObjectRow
пример для utm_source
и уже потом в msstatorders_grid_order_fields добавить utm_source
В minishop2 есть поле properties :)
Есть кстати уже готовое, только не приходилось использовать https://modstore.pro/packages/integration/mslistorders
docs.modx.pro/components/pdotools/general-settings#Способы-вызова-чанков
Мне необходимо вывести каталог с товарами в модальном окне. Прежде чем приобрести, попробовал на тестовом хостинге это воплотить, товары выводятся, всё гуд, но у меня не работает пагинация, то есть страница обновляется.
Вызов pdopage осуществляется в чанке. При включении ajax в pdopage, товары не появляются вообще.
Не подскажите возможно ли это сделать данным дополнением? Спасибо!
P.S. также пробовал через сниппет с параметрами, тоже самое.
Сейчас после оформления заказов формируются след. вида ссылки: domain.ru/cart?msorder=23,24.
Просто нужно скопировать сниппет msGetOrder и немного его переделать :)
Пока понял только то, что я в цикле, а не после его выполнения, из-за этого приходится несколько раз нажимать оформить заказ.
P.S/ смотрите в журнале ошибок
Как еще получить выбранный город после Ajax запроса? Просто написал свой сниппет, который получает город, но только он работает после перезагрузки.
Спасибо!
Просто нет API Яндекс.Метро, ну или я не нашел :c
Что-то сравнение в демо не работает