Автор Тема: Фильтр по ценам некорректно работает  (Прочитано 659 раз)

09 Декабрь 2013, 12:44:31
  • Старожил
  • ****
  • Сообщений: 312
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте,
Возникла небольшая проблема.
Если для товара в разделе Специальные цены указано два правила, первое влияние     - 20 %, а второе -60%.

То в каталоге отображается всё правильно т.е. нижнее правило т.е.  -60%
Однако фильтр по ценам оперирует первым правилом т.е. -20%

Что нужно сделать чтобы фильтр по ценам работал корректно?
09 Декабрь 2013, 12:46:30
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22318
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
09 Декабрь 2013, 12:48:06
Ответ #2
  • Старожил
  • ****
  • Сообщений: 312
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
09 Декабрь 2013, 15:17:20
Ответ #3
  • Старожил
  • ****
  • Сообщений: 312
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Немного покопался в PrestaShop
Правильно ли я думаю, что фильтр цен строится на основе информации полученной из таблицы _layered_price_index?

id_product    id_currency    id_shop    price_min    price_max
09 Декабрь 2013, 17:06:33
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105596
  • Репутация: +39548/-0
    • Просмотр профиля
    • Webstudio UwK
Блок фильтров это модуль blocklayered.
Таблица индексов цен
private static function installPriceIndexTable()
{
Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'layered_price_index`');

Db::getInstance()->execute('
CREATE TABLE `'._DB_PREFIX_.'layered_price_index` (
`id_product` INT  NOT NULL,
`id_currency` INT NOT NULL,
`id_shop` INT NOT NULL,
`price_min` INT NOT NULL,
`price_max` INT NOT NULL,
PRIMARY KEY (`id_product`, `id_currency`, `id_shop`),
INDEX `id_currency` (`id_currency`),
INDEX `price_min` (`price_min`), INDEX `price_max` (`price_max`)
)  ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;');
}
Cоздание интернет сайтов Webstudio UwK
09 Декабрь 2013, 17:34:35
Ответ #5
  • Старожил
  • ****
  • Сообщений: 312
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо...
Вобщем по крону буду запускать скрипт и указывать для товаров требуемые мне цены...