Не показывать счетчик запасов для продуктов в комплекте - PullRequest
1 голос
/ 31 января 2011

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

Кто-нибудь знает, как это сделать?Как выполнить тест в коде, чтобы отобразить (или нет) графическое изображение на основе комплекта продуктов type_id?

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

Любые другие предложения приветствуются!Ура!

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Оказывается, это гораздо проще, чем считалось ранее.Следующий код проверит, относится ли продукт к типу "Bundle", а затем условно покажет счетчик запасов.

<?php if($_product->getTypeId() != "bundle"): ?>
[Stock counter display code here]
<?php endif; ?>

Надеюсь, это поможет кому-то еще искать это!

1 голос
/ 31 января 2011

Глядя на тему по умолчанию, я вижу, что в комплекте есть собственный шаблон для отображения состояния запаса, который проверяет Mage_Bundle_Model_Product_Type::isSalable(), это уже делает дорогостоящую операцию загрузки всех его компонентов и проверки их по отдельности.Также цена работает аналогичным образом, загружая компоненты.Это дорого, потому что это большая операция EAV.В некоторых из самых медленных магазинов, над которыми я работал, особенно было много комплектных / настраиваемых продуктов.

Так что работа с базой данных уже выполнена, и еще раз проверяем загруженные продукты, чтобы снова проверить запас.вероятно, не будет иметь большого значения.Кроме того, вы можете ограничить влияние, используя что-то вроде CatalogCache .

К сожалению, я не вижу события количества запаса, поэтому вам, возможно, придется расширить Mage_Bundle_Model_Product_Type с помощью собственного метода getStockQty(), чтобы выполнить соответствующий поиск и вычисление.

Если вы ужеизменил изображение на складе, тогда это было бы в файле template/bundle/catalog/product/view/type/bundle.phtml.Уберите «светофоры» оттуда, если вы хотите самый простой способ скрыть уровень запаса комплекта.Это не влияет на другие типы продуктов.

...