Обсуждение Cherry Picker - фильтр товаров для virtuemart/FastSeller - работа с фильтрами

Здравствуйте! Пользуюсь фильтром версии 3.7. Столкнулся вот с какой проблемой. Товар в админке забивается в долларах, а на сайте в гривнах по курсу доллара. Так вот беда в том, что в ползунке указывается цена не в гривнах, а в долларах. Подскажите, плиз куда копать. чтобы в фильтре также были значения цены в гривнах. Заранее спасибо!
Надо вносить изменения в код Cherry Picker'a. Я столкнулся с такой же проблемой. Решал задачку сам.
P.S.: после установленного мною "костыля" ползунок цены умеет фильтровать в 2-х валютах (в зависимости, какая валюта выбрана для отображения цены в магазине)
Выкладываю в архиве все файлы CP PT v3.7. Еще необходимо добавить "хак" для Virtuemart, чтобы курс валюты вводить в нормальном виде, к примеру 13.6, а не 0.074. У меня версия Virtuemart 2.0.20b, поэтому если у вас новее версия или с валютой все в порядке, тогда это пункт можно пропустить.
Перед изменением файлов Cherry Picker'a советую сделать бэкап сайта или папки mod_vm_cherry_picker.
не могу добиться нормальной работы с двумя валютами доллар + гривна
все цены умножает на курс, а нужно только цену в долларах + информация на ползунках и в поле под ними остается неизменной
пробовал ваши файлы и на vm 2.0.20b, результат тот же
нужна помощь
 
Последнее редактирование:
не могу добиться нормальной работы с двумя валютами доллар + гривна
все цены умножает на курс, а нужно только цену в долларах + информация на ползунках и в поле под ними остается неизменной
пробовал ваши файлы и на vm 2.0.20b, результат тот же
нужна помощь
Опишите внятней, что именно и как нужно...
У меня цена в базе в долларах, выводится на сайте в гривне, и фильтр соответственно работает фактически с гривной (делал небольшой хак пиккера).
 
Последнее редактирование:
Zagor внятно описал проблему, а вот решение от ув. Panadina не работает...
Цена товара в админке 100 у.е. Цена этого товара на сайте по курсу - 1300 грн. Cherry Picker показывает и понимает цену 100, т.е основную не умноженную на курс обмена. Как править модуль? поделись хаком пожалуйста.
 
не могу добиться нормальной работы с двумя валютами доллар + гривна
все цены умножает на курс, а нужно только цену в долларах + информация на ползунках и в поле под ними остается неизменной
пробовал ваши файлы и на vm 2.0.20b, результат тот же
нужна помощь
Фильтр по цене в Cherry Picker по умолчанию ориентируется на валюту магазина, которая выбрана "основной" в настройках Virtuemart. И лишь только когда будет выбрана валюта магазина отличная от основной, тогда он поменяет значения цен в данном фильтре. Например, основная валюта магазина "гривна", цены введены в БД в долларах, значит фильтр отобразит цену товаров как цена в $ * курс. Если выбрать другую валюту магазина, через соответствующий модуль, тогда цена в фильтре будет отображаться в $. Если вам необходимо, чтобы фильтр по цене работал только в одной валюте, тогда нужно его "жестко" привязывать только к одной валюте, но это будет выглядеть странно, так как цена на товар будет указана в гривнах, а фильтр по цене будет фильтровать только в $...
Или я неправильно понял ваш вопрос?
 
начинаю подозревать задача Zagor и решение Panadina относятся к случаю когда весь товар в админке в долларах...

у меня половина цен в долларах забиты, а половина в гривне.

Товар 1, в админке в гривне = 1300 грн
Товар 2, в админке в долларах = 100 у.е
Обменный курс 13 (или 0,077 не важно)

На сайте вижу
Товар 1 = 1300грн
Товар 2 = 1300грн (пересчитан по курсу)

а модуль как положено видит только основную цену
Товар 1 = 1300 грн
Товар 2 = 100 грн

что я получаю: когда фильтр по цене стоит 1200-1400 грн я не увижу Товар 2

какой хак можно применить?
 
Последнее редактирование:
Zagor внятно описал проблему, а вот решение от ув. Panadina не работает...
Цена товара в админке 100 у.е. Цена этого товара на сайте по курсу - 1300 грн. Cherry Picker показывает и понимает цену 100, т.е основную не умноженную на курс обмена. Как править модуль? поделись хаком пожалуйста.
не могу добиться нормальной работы с двумя валютами доллар + гривна
все цены умножает на курс, а нужно только цену в долларах + информация на ползунках и в поле под ними остается неизменной

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

Сейчас поделимся, но хак пикера сделан с учетом еще одного моего хака на валюту (описание хака приложено к архиву). Если вам не подходит этот хак на валюту, то нужно изменить в файлах пикера умножение на деление, и наоборот.
Расписывать долго, поэтому в архиве оригинальные файлы, и измененные (оригиналы в начале файла _)

у меня половина цен в долларах забиты, а половина в гривне. Те цены что в БД забиты в долларах, на сайте выводятся по курсу в гривне, а в Cherry Picker в долларах.
тогда вам мой вариант не подойдет, если у вас цены в разных валютах..., хотя проверяйте, может и заработает, вполне возможно..

вот про то что у вас цены в базе разных валютах вы не указали, и именно это я имел ввиду про внятное описание
Фильтр по цене в Cherry Picker по умолчанию ориентируется на валюту магазина, которая выбрана "основной" в настройках Virtuemart. И лишь только когда будет выбрана валюта магазина отличная от основной, тогда он поменяет значения цен в данном фильтре. Например, основная валюта магазина "гривна", цены введены в БД в долларах, значит фильтр отобразит цену товаров как цена в $ * курс. Если выбрать другую валюту магазина, через соответствующий модуль, тогда цена в фильтре будет отображаться в $. Если вам необходимо, чтобы фильтр по цене работал только в одной валюте, тогда нужно его "жестко" привязывать только к одной валюте, но это будет выглядеть странно, так как цена на товар будет указана в гривнах, а фильтр по цене будет фильтровать только в $...
Или я неправильно понял ваш вопрос?
Если цены в базе в долларах, а основная валюта гривна, то мне пиккер показывал именно цену в вечно зеленных, поэтому и пришлось делать хак
 
Последнее редактирование:
у меня половина цен в долларах забиты, а половина в гривне.

Товар 1, в админке в гривне = 1300 грн
Товар 2, в админке в долларах = 100 у.е
Обменный курс 13 (или 0,077 не важно)

На сайте вижу
Товар 1 = 1300грн
Товар 2 = 1300грн (пересчитан по курсу)

а модуль как положено видит только основную цену
Товар 1 = 1300 грн
Товар 2 = 100 грн

что я получаю: когда фильтр по цене стоит 1200-1400 грн я не увижу Товар 2

какой хак можно применить?
тот хак что в файле "валюта хак.txt", вам не нужен. Попробуйте заменить свои файлы vmFilterProcessor.php и filterData.php (предварительно сохранив свои).
 
попробовал ваш хак, все цены умножены на курс, и доллар и гривна
как же добиться пересчета доллара чтобы гривну не трогать...

з.ы спасибо за хак с валютой, откладывал этот вопрос, а тут готовое решение.
 
Последнее редактирование модератором:
что я получаю: когда фильтр по цене стоит 1200-1400 грн я не увижу Товар 2

какой хак можно применить?

Здесь "хак" не поможет- ни моя версия, ни версия от IVS. У вас цены вводятся в БД магазина в разных валютах, а как я писал выше модуль CP ориентируется всегда на валюту в которой введены цены в БД магазина, при выводе фильтра по цене. То есть, если основная валюта магазина UAH, а цены введены в БД магазина только в USD, тогда фильтр по цене будет работать правильно, даже при переключении валюты магазина с UAH на USD через соответствующий модуль Virtuemart. Во всяком случае, мое решение для СР написано именно для случая, когда все цены вводятся в USD. В вашем варианте, когда цены в разных валютах, фильтр не сможет работать, потому, как был написан автором с учетом только одной валюты, и, насколько мне известно, обращения к автору с просьбой доработать фильтр по цене, так и остались без внимания. Я потратил несколько дней, чтобы написать "костыль" для этого фильтра, так как информации по этой теме в интернете практически нет. Мой вам совет - цены на товары вводите только в USD !!! Это даст вам возможность очень оперативно менять цены, в зависимости от курса, всего за несколько секунд, поменяв лишь курс USD-->UAH. Если у вас товаров в БД магазина с ценами в UAH всего 5-10 единиц, тогда заменить цены понадобиться всего несколько минут, а если 500-2000, тогда как???!!!!
 
Назад
Сверху