[Comparison] Сравнение товаров, бета версия

Предлагаю вашему вниманию первую бета-версию нашего сравнения товаров. На свет оно появилось благодаря голосованию вот в этом опросе. Компонент состоит из двух сниппетов: добавление в список, и вывод списка. Для ответов на ajax запросы используется небольшой плагин.

Сниппеты работают как с таблицами miniShop2, так и с ТВ параметрами. Поддерживают разделение типов товара через указание имени списка и задания для него конфигурации. Есть прямые ссылки на результаты сравнения для передачи другу.

Логика работы копирует сравнение товаров на Яндекс.Маркет.

Бета версия распространяется по сниженной цене - всего 490 руб., когда отладим ценник будет 990 руб. Обновление с бета до финальной бесплатное, так что побыть тестером выгодно, тем более, что дополнение уже прилично работает.

Документация - http://docs.modx.pro/components/comparison/ Демо версия - http://demo.modx.pro/comparison Можно попробовать перед покупкой - http://tefile.modx.pro А потом и купить - http://store.simpledream.ru/comparison

← Предыдущая заметка
[Tickets] 1.3.0-beta Анонимные комментарии
Следующая заметка →
[orderPrint] Печать документов магазина
Комментарии (32)
ВиталийВиталий Валерьевич
18.02.2014 12:07

Вот она, вот она рыба моей мечты! =) Настало время забросить свой не допиленный компонент. Спасибо!

asxАлександр Котлов
18.02.2014 13:00

Сравнение для минишопа - это как вишенка для торта!

Спасибо!

YogamanДенис Богдановский
18.02.2014 13:30

Просто супер! Буду тестить!

OnFoxПеретягин Илья
18.02.2014 14:03

Шикарно! Остается только онлайн чат для консультации добавить и больше в целом нечего и не надо!

asxАлександр Котлов
18.02.2014 14:40

Нужно еще что-то типа встроенного миг-Х для товара - чтобы разные наборы свойств для разных групп товаров. Эх)

bezumkinВасилий Наумкин
18.02.2014 17:02

Есть идеи на эту тему, и даже больше.

Но пока нет возможности.

Ilya Ev
18.02.2014 15:46

что-то не работает у меня, создал страницу сравнения в тело написал код

[[!CompareList? &fields=`{"steel":["price","article","vendor.name","vendor.country","country"]}`]]

добавил в вывод каталога mfilter2 в чанк товара

[[!addComparison?
    &list_id=`529`- ид страницы сравнения
&id=`[[+id]]`
&list=`steel`
]]

выводиться ссылка добавить к сравнению но при клике происходит переход на главную

попробовал вызвать в карточке

[[!addComparison?
    &list_id=`529`
&list=`steel`
]]

тоже самое.

bezumkinВасилий Наумкин
18.02.2014 15:59

А ты случайно не вчера купил дополнение, до анонса?

Если так, то нужно заменить в чанках все плейсхолдеры [[+cat]] на [[+list]] - я внес изменения сегодня, так правильнее.

Ilya Ev
18.02.2014 16:17

да это так)

поправил, вроде заработало.

Но есть другая проблема если вызов содержит

 &list=`steel` и &fields=`{"steel":["price","article","vendor.name","vendor.country","country"]}`

пишет что

Не могу найти массив полей сравнения для набора "default"

если убрать настройки то по умолчанию все вроде работает.

но если удалить из сравнения и перейти на страницу каталога, получаю

Добавить к сравнению Убрать из сравнения Сравнить 0

все пункты и клик на ниш переводит на главную, помогает чистка кеша

и в админке в компонентах появился пустой пункт comparison

Ilya Ev
18.02.2014 16:26
но если удалить из сравнения и перейти на страницу каталога, получаю
Добавить к сравнению Убрать из сравнения Сравнить 0

похоже из-за того что вызывается в чанке вызова mfilter2 и в итоге кешируется, ели вызвать на странице товара то все ок с этим пунктом

Ilya Ev
18.02.2014 16:41

так) похоже все заработало, после обновления всех чанков на родные если вызывать addComparison на карточке товара.

но вот с вызовом внутри чанка tpl.msProducts.row который вызывается в mfilter2 проблема, похоже addComparison вызывается некешируемым, как быть?

bezumkinВасилий Наумкин
18.02.2014 16:45

Не знаю, по идее всё должно работать.

Если не разберешься - создавай тему в поддержке магазина, посмотрю на месте.

Ilya Ev
18.02.2014 17:09

все разобрался, у меня mfilter2 вызывался с &cacheTime=3600 &cache=1 для кеширования результатов и попытки снизить нагрузку на каталог, в результате чего и кешировались результаты сравнения.

отключил все стало ок. Придется мириться с возможно большей нагрузкой))

в остальном все работает вроде, ну разве что

в админке в компонентах появился пустой пункт comparison

)

Илья
18.02.2014 16:13

А реально этот снипет использовать в качестве "избранного" с возможностью добавить один товар в "избранное", и со своим чанком товара на странице сравнения/избранного?

bezumkinВасилий Наумкин
18.02.2014 16:44

Сомневаюсь, но ты можешь попробовать на тестовых сайтах.

Николай
19.02.2014 08:14

Избранное это по моему самое простое что можно сделать. Если интересно - создам заметку как это можно реализовать.

Илья
19.02.2014 08:48

Будет просто отлично и многим полезно!

Evgeny Epifanov
18.02.2014 17:15

Ура! Беру.

Ilya Ev
18.02.2014 19:24

Не подскажите? есть задача вывести опции товара как в списке CompareList. Я знаю есть сниппет msOptions он выводит одну опцию, а как вывести все опции за раз, не хочется вызывать 5раз один сниппет

решил написать здесь, чтобы не плодить темы.

Rоман Роман
19.02.2014 13:10

"Большая желтая программа" погрустнела... сравнение товаров - очень хорошо! Вылетающую на миллисекунды надпись "Обновля...", которая появляется при добавлении к сравнению, уберете из релиза? Так хотелось прочитать, что там такое пишут, что щелкал раз 50, пригружая сервер

bezumkinВасилий Наумкин
19.02.2014 14:48

Не уберу, не у всех такой быстрый интернет.

bezumkinВасилий Наумкин
19.02.2014 15:11

Кстати, ты это можешь сам убрать, в чанке add. Там у ссылки есть атрибут data-text - просто удали его.

Rоман Роман
19.02.2014 15:21

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

Ilya Ev
19.02.2014 15:48

ну у меня полет нормальный, потестил все что можно вроде). спасибо.

единственное что хотелось бы предложить поправить: убрать прямую ссылку и чанка


<div class="comparison comparison-ddd8" data-id="106" data-list="ddd8">
    <a href="#" class="comparison-add comparison-link" data-text="Обновляю список...">Добавить к сравнению</a>
    <a href="#" class="comparison-remove comparison-link" data-text="Обновляю список...">Убрать из сравнения</a>
    <a href="compare/?cmp_ids=&list=ddd8" class="comparison-go">Сравнить</a>
    <span class="comparison-total">0</span>
</div>

т.е 2 из них на скрипте а последняя

compare/?cmp_ids=&list=ddd8

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

и было бы неплохо кнопку купить добавить у товаров которые сравнивают.

в остальном у меня нет претензий).

bezumkinВасилий Наумкин
19.02.2014 16:10

Ссылку поправлю в новой версии.

и было бы неплохо кнопку купить добавить у товаров которые сравнивают.

Нет гарантий, что юзер использует miniShop2, так что форму добавления товара придётся прописать самостоятельно.

Ну и вообще, компонент можно использовать не только с магазинами, а сравнивать что угодно. Именно поэтому он не называется ms2Comparison.

Ilya Ev
19.02.2014 17:25

Понял спасибо.

Стал пробовать добавить кнопку купить под параметрами и столкнулся с проблемой их там какбы некуда добавить

есть просьба, если возможно в новых версиях в чанк tpl.Comparison.outer

<table class="comparison comparison-table table table-hover">
    <thead>
        [[+head]]
    </thead>
    <tbody>
        [[+rows]]
    </tbody>
</table>

добавить

    
<tfoot>
[[+foot]]
</tfoot>

чтоб в итоге получилось


<table class="comparison comparison-table table table-hover">
    <thead>
        [[+head]]
    </thead>
    <tbody>
        [[+rows]]
    </tbody>
    <tfoot>
        [[+foot]]
    </tfoot>
</table>

Это позволит выводить под товаром сравнения какую то суммарную информация и\или кнопку "купить" к примеру

YogamanДенис Богдановский
25.02.2014 07:58

Василий, приветствую! Если на странице сравнения остается один товар, то вместо него на странице отображается надпись Выбрано недостаточно товаров для сравнения. Что не совсем удобно, если человек шарился по разным разделам каталога, он может не запомнить где и что выбрал и где что удалить из выбора нужно.

Получается в

<span class="comparison-total">[[+total]]</span>

указано значение 1 и это глаз мозолит :) Юзер думает что у него за товар такой в сравнении и при клике по вместо то го что бы увидеть добавленный товар человек видит надпись Выбрано недостаточно товаров для сравнения.. Можно ли сделать так что бы товар отображался, даже если он один.

bezumkinВасилий Наумкин
25.02.2014 08:14
[[!CompareList?
    &minItems=`1`
]]
ЖекичанЕвгений
25.02.2014 14:24

С migx таблицами я так понял,что не будет работать?

bezumkinВасилий Наумкин
25.02.2014 14:26

Верно.

Женёк
09.03.2014 22:24

Как в списке сравнения вывести названия tv-шек? Вызываю так:

[[!addComparison?
&list_id=`110`
&list=`headphone`
&maxItems=`6`
]]
[[!CompareList?
&fields=`{"headphone":["price","article","kind.of.headphones","connection","headphones.type","volume.control"]}`
]]

В итоге вместо названий тв пишет comparison_field_kind.of.headphones и т.д.

bezumkinВасилий Наумкин
10.03.2014 02:13

http://docs.modx.pro/components/comparison/comparelist

Все имена параметров выводятся через системный лексикон. То есть, для поля price в системе есть запись comparison_field_price, для weight - comparison_field_weight и т.д.

Если вы указываете параметры, для которых нет записей в лексиконе - нужно добавить их самостоятельно. Например, если вы сравниваете по ТВ параметру date, то нужно добавить в словари comparison_field_date.

bezumkin
Василий Наумкин
04.07.2022 23:34
Что-то странное у тебя произошло: миграция есть, и вроде как выполнена, но таблицы при этом отсутств...
inetlover
Александр Наумов
03.07.2022 20:36
Василий, спасибо! Все понятно!
bezumkin
Василий Наумкин
02.07.2022 20:28
Спасибо, поправил!
bezumkin
Василий Наумкин
30.06.2022 03:58
Есть ли возможность формировать &quot;friendly URL aliases&quot;, используя аналог translit MODx? ...
bezumkin
Василий Наумкин
27.06.2022 03:32
Спасибо за исправления, очень выручаешь =) Но учитывая количество не описаных в заметке дополнительн...
bezumkin
Василий Наумкин
27.06.2022 03:10
что будет использоваться для вывода многоуровневого меню Посмотри как работают комментарии на этом ...
bezumkin
Василий Наумкин
25.06.2022 11:56
Поправил, спасибо!
bezumkin
Василий Наумкин
21.06.2022 01:58
onLoad(data) { this.total = data.total }, и onLoad({total}) { this.total = total }, В нашем случ...
bezumkin
Василий Наумкин
20.06.2022 14:01
Прекрасно тебя понимаю, я когда сам в этом разбирался - голова дымилась. Но зато теперь прямо-таки п...
bezumkin
Василий Наумкин
20.06.2022 09:30
Не надо, оно по умолчанию так - я просто чуть более подробно написал.