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
Возможно ли реализовать возможность предоплаты за доставку на сайте? Так ради этого мне и нужно это все, чтобы клиент платил сразу при оформлении заказа, чтобы избавить себя от мусорных заявок (когда человек оставляет заявку, а предоплату делать не ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 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... Да, планируется. Даже чуть больше, чем просто бонусная система)
Добавьте в настройку 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
Что-то сравнение в демо не работает