Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #6
Отправить деньги
Артур Шевченко
01 декабря 2020, 13:37
0
Плагин который я предложил меняет цену ТОЛЬКО в корзине, т.е. в самом ресурсе цена не меняется, другая цена будет в этом конкретном заказе. Соответственно можно будет сравнить цену в заказе и цену у ресурса.
Артур Шевченко
01 декабря 2020, 13:22
0
Это так не работает, от того что вы измените вес на фронте, заказ корректно не пересчитается. Когда вы меняете количество отправляется ajax запрос на сервер в котором передается только количество, при этом даже если вы скопируете поле и дадите ему другое имя на сервере обработается только переданное количество, поэтому менять вес нет никакого смысла. Из вашего же объяснения следует, что менять надо цену, для этого нужен плагин на событие msOnChangeInCart, который будет из массива $_POST брать новую цену и менять старую. Вот тут docs.modx.pro/komponentyi/minishop2/razrabotka/sluzhbyi/korzina#%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F написано какие переменные доступны в плагине. Чтобы посмотреть как выглядит корзина используйте вот такую конструкцию $tmp = $cart->get(); Распечатайте в консоль и посмотрите. Скорее всего должно получится как-то так:
switch ($modx->event->name) {
        case 'msOnChangeInCart':
            $tmp = $cart->get();
            $tmp[$key]['price'] = $_POST['price'];
            $cart->set($tmp);
         break;
}
Артур Шевченко
01 декабря 2020, 10:22
0
Первое что приходит в голову это скопировать поле и поменять ms2_frontend_count_unit на ms2_frontend_weight_unit. А вам для чего это нужно?
Артур Шевченко
01 декабря 2020, 09:35
+1
Попробуйте добавить параметр &class со значением modResource и заменить &element на mSearch.
Артур Шевченко
01 декабря 2020, 02:27
0
&element этот параметр отвечает за то, какой сниппет будет обрабатывать результаты фильтрации и не более. Читайте документацию, думаю это поможет.
Артур Шевченко
01 декабря 2020, 01:09
0
У меня тоже последняя версия minishop2. Я Создал новую группу пользователей, доступ в контекстам выставил вот такой yadi.sk/i/n8u_l_kUILVYmg, у политике
customMiniShopManagerPolicy убрал галочку msorder_remove, создал нового пользователя, добавил его в эту группу, вошёл и всё работает, заказ удалить не могу.
Артур Шевченко
01 декабря 2020, 00:40
0
Ну да, видели там пункт msorder_remove Разрешает удаление заказа. Создаете новую группу пользователей, назначаете им этот шаблон, убираете галочку и они больше не смогут удалить заказ, вам же это нужно?
Артур Шевченко
01 декабря 2020, 00:37
0
Что значит «Фильтрация по ресурсам»? Возможно это поможет docs.modx.pro/komponentyi/msearch2/snippetyi/mfilter2#parents,-categories-%D0%B8-grandparents
Артур Шевченко
01 декабря 2020, 00:30
0
Вообще я хз, но в обычной твшке можно в поле Возможные значения поставить вот такую штуку
@SELECT `pagetitle` FROM `modx_site_content` WHERE `class_key` = 'msProduct' AND `parent` = 24
Артур Шевченко
01 декабря 2020, 00:25
0
Сколько контекстов на сайте кроме стандартных? В консоли браузера ошибки есть? В логе ошибки есть? Ресурсы с типа Категория товаров и Товар магазина созданы?
Артур Шевченко
01 декабря 2020, 00:21
0
Да, msproduct_delete там действительно нет, поэтому вот вам скриншот того, что там есть yadi.sk/i/fKqMzAB0Cu0NTQ Из него следует что нужные разрешения там есть, их нужно просто отключить для определенных пользователей. Возможно вы где-то не там смотрите. Вам нужно в Контроль Доступа, для этого нажмите на шестерёнку в правом верхнем углу.
Артур Шевченко
29 ноября 2020, 23:25
+1
Без него наверное как, но я не знаю как. Пример я вам написал, а там сами думайте. Но fenom лучше проштудировать. webinmind.ru/modx/packages-extras/pdotools/syntax-fenom
Артур Шевченко
29 ноября 2020, 19:24
0
Поставил minishop2 и потом mOptionsPrice2, открыл товар на редактирование, перешёл на вкладку Модификации, нажал на кнопку Создать хотел выбрать опцию material, которую предварительно создал, но её нет в списке доступных опций. В логе вот это
[2020-11-29 20:22:45] (ERROR @ core/components/msoptionsprice/processors/mgr/misc/option/getkeys.class.php : 171) PHP warning: Invalid argument supplied for foreach()
[2020-11-29 20:22:48] (ERROR @ core/components/msoptionsprice/processors/mgr/option/getlist.class.php : 190) PHP warning: Invalid argument supplied for foreach()

Вопрос к @Володя почему так?
Артур Шевченко
29 ноября 2020, 19:17
+1
Есть, вывести всё через Fenom.
{set $test1 = $_modx->resource['test-1'] | fromJSON}
{foreach $test1 as $item1}
{$item1['textBlocks']}
{set $test2 =  $item1['test-2'] | fromJSON}
{foreach $test2 as $item2}
{$item2['title']}
{$item2['description']}
{/foreach}
{/foreach}
Артур Шевченко
29 ноября 2020, 19:03
2
0
$(document).on('msoptionsprice_product_action', function (e, action, form, response) {
    var mid = $('input[name="curmid"]').val();
    //console.log(response);   
       if(response.data.modification.count == 0){
            $('.modprice-' + response.data.modification.rid).each(function(){$(this).css('display', 'none')}); //показываем НЕТ В НАЛИЧИИ
            $('.modpricenone-' + response.data.modification.rid).each(function(){$(this).css('display', 'inline')}); //показываем В НАЛИЧИИ
            $('.jsAddToCart').prop('disabled', true);
        }else{
            //тут наоборот
            $('.modprice-' + response.data.modification.rid).each(function(){$(this).css('display', 'inline')});
            $('.modpricenone-' + response.data.modification.rid).each(function(){$(this).css('display', 'none')});
            $('.jsAddToCart').prop('disabled', false);
        }  
});
Писать тут assets/components/msoptionsprice/js/web/default.js но лучше сделать копию, поменять путь в настройках, и в копии писать.
Артур Шевченко
29 ноября 2020, 18:59
0
Как меня бесят такие люди как Вы, которые заплатят копейки и считают что им по гроб жизни теперь все должны. Не нравится — забирай оплату и пиши своё решение. Отличное дополнение за свои деньги, да кое-что приходится дорабатывать, но это уже нюансы для конкретных областей применения. Всё предусмотреть невозможно.
Артур Шевченко
28 ноября 2020, 14:36
0
Ну если не проверять, то да, но можно же сделать проверку равно default value или нет. И по вашей же логике на событие docformrender тоже самое должно происходить ведь это событие срабатывает при отрисовки формы в админке. И опять-таки если нужно чтобы всегда было какое-то значение, тогда ondocformsave с проверкой, а если только при создании нужно задавать свойства, тогда на событие «создание ресурса», не помню как называется, но в документации легко найдете.
Артур Шевченко
28 ноября 2020, 00:48
0
Ну, товарищ, когда я говорил Нет я имел ввиду прежде всего то, что компонент задумывался для работы с классами minishop2, а так-то конечно можно, но зачем рассказывать человеку о неоптимальных способах реализации, счастье в неведении)))
Артур Шевченко
27 ноября 2020, 23:21
0
Нет. Но что мешает установить minishop2 и создавать товары? Точнее ресурсы типа Товар Магазина.
Артур Шевченко
27 ноября 2020, 23:09
0
Надо смотреть на проблему в действии.