Алексей Суслов

Алексей Суслов

Был в сети 01 мая 2026, 05:20
Заказы не принимаю
Не обязательно нужно такое мощное дополнение, как mSearch2 для такой небольшой задачи.
Правда не совсем понимаю зачем через POST запрос, если только для ajax загрузки.
Но для get запроса вот рабочий пример, страница например — example.com/catalog/?vendor=sony:

{'!msProducts'|snippet:[
    'limit' => '10',
    'parents' => '3',
    'sortby' => 'publishedon',
    'sortdir' => 'DESC',
    'tpl' => 'products_row.tpl',
    'where' => '{"Vendor.name":"'~$.get.vendor~'"}'
]}
Если понадобится для post — аналогично, только заменить $.get на $.post
В общем пришлось пока временно сделать так:
в файле core/components/minishop2/model/minishop2/msproductdata.class.php
меняем строку:
$c->leftJoin('msOption', 'msOption', 'msProductOption.key=msOption.key');
на:
$c->rightJoin('msOption', 'msOption', 'msProductOption.key=msOption.key');
Это вроде помогло, по крайней мере с тегами, цветом и размерами — они перестали менять порядок сортировки при каждом сохранении товара. Но возможно такой фикс как-то повлияет на опции товара, так что на свой страх и риск.
Столкнулся с такой же проблемой — при чём есть проект на более старой версии, там все работает правильно.
А сейчас каждое сохранение товара разворачивает сортировку свойств в обратную сторону.

Я смог только докопаться до того, что после вот этого
фикса появился этот баг.
Скорей всего этот фикс исправлял какой-то другой баг и случайно стал причиной нового)
Но к сожалению дальше я уже не настолько понимаю внутренности minishop2, чтобы грамотно сохранить фикс и при этом вернуть правильную сортировку назад.
Может Василий сможет подсказать или автор коммита, Володя.
Присоединяюсь, есть такие ошибки, дополнительно проверил на чистой последней версии на modhostе — тоже самое.
Хотел запилить issue на гитхабе, но Василий отключил похоже эту функцию. Надеюсь, что временно.
Ошибка возникает при очистке удаленных товаров, при этом изображения на самом деле удаляются, а папки пустые остаются.
Есть маленький баг, с которым редко, кто столкнется, но тем не менее:
если в настройках Minishop2 в grid категории товаров добавлено поле vendor и попытаться его обновить из категории товаров, то при двойном щелчке подставится не текущий производитель, а первый, т.к. в запросе получения категорий пустой id:
action: mgr/settings/vendor/getlist
id:

Дмитрий Зарубин, спасибо, что поделились своими наработками.
Подскажите, я правильно понимаю, что этот код не будет работать с фильтрами, данные которых закодированы в JSON (это теги, цвета, размеры)? В базе они выглядят так ["\u0416\u0435\u043d\u0441\u043a\u0430\u044f"]
Мучаюсь вот как бы этот код изменить на работу с такими полями, случайно не сможете подсказать, может вы уже делали это?
Так как ответа я не дождался, пришлось самому покопаться во внутренностях.
В итоге проблему победил, если вдруг кому пригодится, вот решение:
открываете файл assets/components/minishop2/js/mgr/misc/ms2.combo.js
находите строку 202, либо вот этот кусок кода:
miniShop2.combo.Vendor = function (config) {
    config = config || {};

    Ext.applyIf(config, {
        name: config.name || 'vendor',
        fieldLabel: _('ms2_product_' + config.name || 'vendor'),
        hiddenName: config.name || 'vendor',
        displayField: 'name',
        valueField: 'id',
        anchor: '99%',
        fields: ['name', 'id'],
        pageSize: 20,
        url: miniShop2.config['connector_url'],
        typeAhead: true,
        editable: true,
        allowBlank: true,
        emptyText: _('no'),
        baseParams: {
            action: 'mgr/settings/vendor/getlist',
            combo: true,
            id: config.value,
            //limit: 0,
        }
    });
    miniShop2.combo.Vendor.superclass.constructor.call(this, config);
};
и меняете это:
id: config.value,
на это:
id: '',
В итоге поле производителя стало отображать нормально всех производителей при редактировании товара.
Буду признателен, если Василий подскажет верно ли я сделал и не аукнется ли это потом где-то.
Где смог проверил, вроде все в порядке.