compare - не работает сравнение товаров с разных категорий



  • В магазине есть несколько вложенных категорий - каталог/производитель/категория/товар. При этом товары имеют одни и те же характеристики (это одежда - цвет, рост, размер и т. д.).

    В compare есть параметр onlyThisParentId, который вроде как установлен в 0, тоесть позволяет сравнивать со всех категорий, но на самом деле это не так.

    Отрывок из документации:

    onlyThisParentId - ID категории (документа), в которой можно добавить товары к сравнению. Запрет сравнения товаров из разных категорий. По умолчанию - 0 (любая категория).

    Вызываю так:

    [[!compare?
    &comparePageId=`15`
    ]]
    

    Потом так:

    [[!compare?
    &comparePageId=`15`
    &onlyThisParentId=`0`
    ]]
    

    В исходном коде конфиг вроде как указан корректно:

    <script type="text/javascript">
      var cmpr_config = {"minProducts":2,"limitProducts":0,"targetActiveClass":"","onlyThisParentId":"false"};
    </script>
    

    В результате если выбирать товары с других категорий всё равно накладывается ограничение и появляется alert.

    0_1480691903895_02-Dec-16 5-17-22 PM.png

    Подумал может я что-то намудрил или кэш в браузере не обновил - всё почистил и в браузере и в админке и в ручную (папку core/cache). Ситуация не изменная.

    Потом открыл демо сайт с Shopkeeper3, посмотрел как там сделанно (там этот параметр не указан, тоесть должен быть равен 0 без ограничений), но по факту получил такой же alert.

    0_1480692190502_02-Dec-16 4-54-31 PM.png

    Ещё прозьба выложить исходники на GitHub - думаю что там было бы удобней писать об ошибках и предложения.

    Спасибо за ответ!



  • @kamuz Это ошибка в коде плагина. Связано с одной проверкой в js коде. Если закоментировать её или удалить, то будет вам счастье. если устанавливайте параметр добавления товаров из другой категории, то алерта не будет. Я у себя именно так и сделал.



  • @anton83 Спасибо. Сейчас попробую



  • @kamuz Находится проверка в файле assets/components/compare/js/compare.js
    96 строка кода:

     //добавляем ID в список для сравнения
            if( isChecked ){
                /*Комментирую, так как мне данная проверка не нужна
                //если добавляется товар из другой категории
                if( cmpr_config.onlyThisParentId != false && compareParentId != parentid ){
                    if( typeof cmpOnToCompareFromAnotherCategory == 'function' ){
                        var compareConfirm = cmpOnToCompareFromAnotherCategory();
                    }else{
                        var compareConfirm = confirm('Вы можете сравнивать товары одной категории.  При добавлении данного товара в список старые данные будут удалены.');
                    }
                    if( compareConfirm ){
                        this.setCookie('shkCompareIds', id, 365*60*60);
                        this.setCookie('shkCompareParent', parentid, 365*60*60);
                        window.location.reload();
                        if ( isCheckbox ){ return true; } else { return false; }
                    }else{
                        return false;
                    }
                }
                */
    

    А так всплывает окно предупреждения даже если в одной категории или если включено из разных категорий добавлять. В этом случае необходимо просто закрыть этот алерт и добавится, но для пользователя раздражительно и не понятно.



  • @anton83 Спасибо, я уже нашёл эту проверку. Всё равно это нужно поправить в самом дополнении, тоесть чтобы можно было включать или отключать по требованию.



  • @kamuz Нужно. Я тогда давно уже указывал на это и код приводил, но чет молчание.


  • Администраторы

    Задачи принимаются здесь https://github.com/andchir/shopkeeper3/issues



  • @Andchir Я предлагаю создать отдельный репозиторий под дополнение compare и там добавлять или вносить правки - всё таки Shopkeeper это отдельное дополнение, хотя и решает множество задач.



  • @Andchir Ещё было бы полезно включить алерты написанные для этого дела - имею в виду твою функцию siteLib.alert() - правда мне пришлось её немного под себя настроить, так как я использую фреймворк UIKit, но всё равно красивые алерты для этого дополнения как раз очень кстати.


  • Администраторы

    Кстати, тут уже давно исправленная версия https://github.com/andchir/shopkeeper3/tree/master/core/components/compare
    Нужно только обновить файлы. Видимо я забыл собрать в пакет.



  • @Andchir Т.е скоро обновленный пакет можно ожидать? По остальным компонентам тоже обновления будут, например getProducts?



Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.