Последние темы


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?

 

Последние комментарии

  • G

    Отличная новость, Андрей, спасибо!
    Наконец-то настроил окружение для разработки SHK4 в винде через Vagrant, все работает достаточно шустро, глюков замечено не было. В скором времени планирую сделать свою инструкцию на эту тему, думаю будет полезна для начинающих.

    У меня вопрос - я далеко не искушенный пользователь git, для разработки магазина тупо создал форк с вашего репозитория shopkeeper4 v4.0.0, все коммиты и изменения заливаю в свой репо. Есть какая-то возможность отслеживать изменения в вашем репозитории и вносить в мой? Например, я бы хотел обновлять какие-то php файлы, но не трогать шаблоны *twig.

    Читать далее
  • редактироваться могут и старые. опубликованные, ресурсы, не хотелось бы чтобы к ним приписались дубли id

    В коде плагина можно всё учесть, а не всегда добавлять ID без проверок.

    Читать далее
  • L

    @Andchir редактироваться могут и старые. опубликованные, ресурсы, не хотелось бы чтобы к ним приписались дубли id. Есть событие OnDocPublished но по-моему оно не срабатывает...

    Читать далее
  • В принципе ресурс импортируется неопубликованным и потом публикуется вручную

    Есть событие редактирования ресурса, можно привязаться к этому событию.

    Читать далее