Dima
С нами с 29 декабря 2020; Место в рейтинге пользователей: #706Ошибка в расчете стоимости доставки и заказа
Возникает ошибка в расчете стоимости доставки и заказа
Действовал по инструкции https://docs.modx.pro/components/minishop2/development/services/connection
1) создал класс доставки
2) Зарегистрируем службу через console
3) Выбрал обработчик в способе доставки msDeliveryHandler_cdekwidget
Теперь действия в корзине
При выборе способа доставки и расчетов, корректно обновляется общая стоимость заказа, с учетом доставки (через минишоповский скрипт), далее если в консоли посмотреть запросы, то
Никаких сторонних плагинов нет.
MODX Revo 2.8.4
Minishop2 3.0.7-pl
PHP Version 7.4.33
Скрин с заказом в админке
Действовал по инструкции https://docs.modx.pro/components/minishop2/development/services/connection
1) создал класс доставки
{core_path}components/minishop2/custom/delivery/cdekwidget.class.php
<?php
if(!class_exists('msDeliveryInterface')) {
require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}
class msDeliveryHandler_cdekwidget extends msDeliveryHandler{
public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
session_start();
$cart = $this->ms2->cart->status();
$cart_cost = $cart['total_cost'];
$delivery_cost = $_SESSION['cdek_delivery_price'] ?? 0;
$total_cost = $cart_cost + $delivery_cost;
return (float) $total_cost;
}
}
Тут изначально возвращал $delivery_cost
, но тогда неверно считалось, действия в корзине идут именно с return (float) $total_cost;
2) Зарегистрируем службу через console
if ($miniShop2 = $modx->getService('miniShop2')) {
$miniShop2->addService('delivery', 'CDEKwidget',
'{core_path}components/minishop2/custom/delivery/cdekwidget.class.php');
}
3) Выбрал обработчик в способе доставки msDeliveryHandler_cdekwidget
Теперь действия в корзине
При выборе способа доставки и расчетов, корректно обновляется общая стоимость заказа, с учетом доставки (через минишоповский скрипт), далее если в консоли посмотреть запросы, то
/assets/components/minishop2/action.php
возвращает все верно{
"success": true,
"message": "",
"data": {
"cost": 255,
"cart_cost": 10,
"discount_cost": 0,
"delivery_cost": 245
}
}
Но после оформления заказа в админке отображается как стоимость товаров 0, а стоимость доставки 245.Никаких сторонних плагинов нет.
MODX Revo 2.8.4
Minishop2 3.0.7-pl
PHP Version 7.4.33
Скрин с заказом в админке

Создание товаров через ЛК из контекста web
Задача — дать пользователям возможность создавать товары через ЛК из контекста web.
Не получается запустить процессор $newProduct = $modx->runProcessor('resource/create', [...]);
permission_denied_processor
Пытался задавать разные права группе пользователей, пока никак. Если поставить Неограниченные права, то все запускается.
Информации, какие права требуются для процессора не нашел, пробовал выдавать права new_document_in_root и тд.
Если кто сталкивался, подскажите в сторону каких прав копать.
Не получается запустить процессор $newProduct = $modx->runProcessor('resource/create', [...]);
permission_denied_processor
Пытался задавать разные права группе пользователей, пока никак. Если поставить Неограниченные права, то все запускается.
Информации, какие права требуются для процессора не нашел, пробовал выдавать права new_document_in_root и тд.
Если кто сталкивался, подскажите в сторону каких прав копать.
Точки продаж и учет остатков
Всем привет, подскажите пожалуйста, может кто решал подобные задачи.
Требуется полноценный учет товаров и остатков по каждой точке продаж.
Для учета остатков я ранее пользовался msProductRemains — тут все ок, а вот с точками продаж пока не сталкивался, информации тоже пока не нашел.
Есть, конечно, мысль использовать msOptionSeller для точек продаж и к ним подтягивать остатки, но может был у кого реальный кейс — поделитесь направлением
Требуется полноценный учет товаров и остатков по каждой точке продаж.
Для учета остатков я ранее пользовался msProductRemains — тут все ок, а вот с точками продаж пока не сталкивался, информации тоже пока не нашел.
Есть, конечно, мысль использовать msOptionSeller для точек продаж и к ним подтягивать остатки, но может был у кого реальный кейс — поделитесь направлением
Управление событиями UserEvents через фронт
Всем привет, подскажите, может кто делал подобное.
Стоит UserEvents, задача удалять событие или изменять его стутус на фронте, не через админку (возможно форма или кнопка у события).
Ну и в целом, какой порядок действия для изменения данных через фронт, например изменить содержимое TV.
Стоит UserEvents, задача удалять событие или изменять его стутус на фронте, не через админку (возможно форма или кнопка у события).
Ну и в целом, какой порядок действия для изменения данных через фронт, например изменить содержимое TV.
Добавление точек продаж с ЛК клиента
Всем привет. Подскажите может кто делал уже и может подсказать как реализовать.
Задача состоит в том, чтобы клиент через свой ЛК на сайте мог добавлять собственные точки продаж (например город, магазин, время работы, телефон) — таких магазинов у клиента может быть 1, а может и 10.
Далее на отдельной странице надо на карте показать все магазины всех клиентов — выпадающий список городов и при выборе города отображаются все метки магазинов в этом городе.
Задача состоит в том, чтобы клиент через свой ЛК на сайте мог добавлять собственные точки продаж (например город, магазин, время работы, телефон) — таких магазинов у клиента может быть 1, а может и 10.
Далее на отдельной странице надо на карте показать все магазины всех клиентов — выпадающий список городов и при выборе города отображаются все метки магазинов в этом городе.
reCaptcha v3 - отложенная загрузка
Подскажите, кто-то делал отложенную загрузку скриптов капчи v3, уж сильно она сайт, если на странице 3 и более форм с капчей
mFilter2 + SHK3
Добрый день, помогите разобраться…
Необходимо сделать вывод категорий по фильтру товаров. За основу брал решение https://modx.pro/solutions/6733, только не могу переделать на SHK3…
Выводит фильтры правильно, но пишет, что нет подходящих результатов
Код сниппета:
Необходимо сделать вывод категорий по фильтру товаров. За основу брал решение https://modx.pro/solutions/6733, только не могу переделать на SHK3…
Выводит фильтры правильно, но пишет, что нет подходящих результатов
Код сниппета:
<?php
// Он работает только, если это вывод товаров, а не запрос подходящих id
if (empty($returnIds)) {
// Присоединяем таблицу категорий
if (empty($innerJoin) || !$where = $modx->fromJSON($innerJoin)) {
$innerJoin = array();
}
$innerJoin['Category'] = array(
'class_key' => 'modDocument',
);
$scriptProperties['innerJoin'] = $modx->toJSON($innerJoin);
// Группируем по категории
$scriptProperties['groupby'] = 'Category.id';
// Заменяем поля товаров полями категорий
$scriptProperties['select'] = $modx->toJSON(array(
'Category' => '*',
// Можно переопределить еще и выборку полей товара, чтобы были с префиксом,
// но я это закомментировал, потому что поля Data и так доступны, а товары не нужны
//'msProduct' => $modx->getSelectColumns('msProduct', 'msProduct', 'product.'),
//'Data' => $modx->getSelectColumns('msProductData', 'Data', 'data.'),
));
}
// Мы добавили свой опции, а дальше пусть работает стандартный сниппет
return $modx->runSnippet('pdoResources', $scriptProperties);
Код вызова:[[!mFilter2?
&paginator=`pdoPage@catalog_pages`
&element=`msProductsCategories`
&parents=`[[*id]]`
&limit=`0`
&depth=`2`
&returnIds=`0`
&where=`{"template":"9"}`
&includeTVs=`price,price_max,title,art,col,image-min,text,descript,brand,diametr,seting1,seting2,seting3,seting4,seting5,seting6,seting7,seting8`
&tpls=`tovar_shop_row,tovar_shop`
&tplOuter=`tpl_Filter_Outer`
&aliases=`
tv|seting1==seting1,tv|seting2==seting2,tv|seting3==seting3,tv|seting4==seting4,
tv|seting5==seting5,tv|seting6==seting6,tv|seting7==seting7,tv|seting8==seting8`
&filters=`
tv|seting1:boolean,
tv|seting2:seting2,
tv|seting3:seting3,
tv|seting4:seting4,
tv|seting5:seting5,
tv|seting6:seting6,
tv|seting7:seting7,
tv|seting8:seting8,
tv|price:number
`
]]
Помогите доделать modinstagram2 вывод информации
Добрый день, подскажите, как можно и можно ли вывести информацию об аккаунте?
Например количество подписчиков, подписок может еще что
Например количество подписчиков, подписок может еще что
Спам
Добрый день, использую на сайте formit+ajaxform, для защиты от спама пробовал ранее и скрытые поля использовать и grecaptcha v2 и grecaptcha v3. Спам идет и капча пройдена. Зачастую спам идет с определенный ip адресов.
Подскажите, как можно заблокировать определенные ip, чтобы они не могли или отправлять письма или вообще заходить на сайт. Ну или может какие еще идеи по защите от спама есть
Подскажите, как можно заблокировать определенные ip, чтобы они не могли или отправлять письма или вообще заходить на сайт. Ну или может какие еще идеи по защите от спама есть
cityfields через get
Такой вопрос, можно ли определять город не по поддомену, а через параметр в ссылке. Это не совсем удобно, но сейчас нужен именно такой вариант. Например site.ru/usluga?city=moscow