Получите коллекцию продуктов Magento по специальной цене в процентах

в моем магазине Magento должна быть страница под названием продажа с подстраницами, включая 10% продажу, 20% продажу, 30% продажу…

Поэтому теперь мне нужно получить коллекцию продуктов со всеми продуктами, которые содержат как минимум специальную цену (конечная цена, включая скидки по правилу цены, была бы лучше, но если бы это было слишком сложно, специальной цены было бы достаточно для фильтрации товаров со скидкой).

Ну, в принципе, я знаю, как получить коллекцию товаров, и знаю, как установить фильтр, если есть какая-то специальная цена или специальная цена выше определенной суммы.

Но в этом случае мне нужно было бы сделать что-то вроде «$ _discountPercentage = round ((($ _ actualPrice — $ _ convertFinalPrice) / $ _ actualPrice) * 100);» сначала, а затем фильтровать выбор < чем 10 или < 20 или < 30 и так далее.

Поэтому, конечно, я мог бы загрузить всю коллекцию и просто отобразить соответствующие продукты для каждого в php, но я думаю, что в этом нет необходимости, поскольку это приведет к загрузке большого количества ненужных служебных данных. Если бы это было просто sql, я мог бы сделать эту работу в течение 5 минут. Но я не знаю, как отфильтровать коллекцию товаров по скидке в процентах.

Итак, какие советы, как я могу получить коллекцию продуктов в Magento, например, продукты со скидкой выше 20% от первоначальной цены?

большое спасибо

0

Решение

-> где (‘КРУГЛЫЙ (((price_index.price — price_index.final_price) /price_index.price) * 100,0) <= ‘. $ nmaxmumDiscountPercentage)
-> где (‘ROUND (((price_index.price — price_index.final_price) /price_index.price) * 100,0)> =’. $ nMinimumDiscountPercentage)

1

Другие решения

Ну и часто я был быстрее сообщества и решал свою проблему самостоятельно :), но если кто-то ищет подобное решение … вот часть кода, которая сделает эту работу.

$_productCollection->getSelect()
->where('ROUND(((price_index.price - price_index.final_price)/price_index.price)*100,0) >= '.$nMinimumDiscountPercentage)

Конечно, вы можете отменить формулу. Тем не менее, это даст вам коллекцию продуктов со всеми продуктами, имеющими скидку (специальная цена или правило цены), по крайней мере, равную указанному минимальному проценту.

Но вы можете помочь мне с дополнительным вопросом. Я добавил это через XML с помощью «Custom Layout Update» и пользовательского .phtml. Теперь я получил (0) товаров во всех подкатегориях на боковой панели, что неудивительно.

Есть ли простой способ изменить этот phtml, что мой выбор в любой подкатегории устанавливает правильное количество каталогов для родительской категории? Я хотел бы сохранить счетчик на боковой панели для каждого сабвуфера, если это возможно, потому что мне нравится эта функция.

Спасибо тебе пока;)

0

По вопросам рекламы [email protected]