Magento 使用属性隐藏(可配置)产品
我正在一个Magento网站上工作,我想做的是:我创建了一个属性来隐藏某些产品。在网格视图页面上,我使用以下代码将它们从列表中排除:Magento 使用属性隐藏(可配置)产品,magento,Magento,我正在一个Magento网站上工作,我想做的是:我创建了一个属性来隐藏某些产品。在网格视图页面上,我使用以下代码将它们从列表中排除: <?php if ($_product->getAttributeText('hideproduct')):?> <?php else: ?> 基本上,它只是说当“hideproduct”出现时,什么都不显示 这适用于简单的产品,但对于可配置的产品,它有点复杂,而且似乎不适用于此。假设我想隐藏具有特定颜色的产品,它总是出现在可配
<?php if ($_product->getAttributeText('hideproduct')):?>
<?php else: ?>
基本上,它只是说当“hideproduct”出现时,什么都不显示
这适用于简单的产品,但对于可配置的产品,它有点复杂,而且似乎不适用于此。假设我想隐藏具有特定颜色的产品,它总是出现在可配置产品的下拉菜单中
有人对此有解决方案吗?这是我为一项任务所做的工作(如果有更好的方法,请告诉我) 为此,您必须扩展可配置的图像、目录、块、产品、视图、类型。 在里面 eco_报告是我的属性标签。 这就是它的工作原理。。。如果为简单产品(特定可配置产品)设置了属性eco_报告,则该产品不会显示在可配置产品的下拉列表中(在查看页面上)。
因此,必须设置所有简单产品的eco_report属性,以便它不会显示在可配置产品的下拉列表中…关于产品可见性,以及为什么要使用自定义属性/hack?您可以用另一种方法来解决这个问题。我不能使用可见性的原因是我使用的是一个自定义扩展,这些产品应该是可见的。下面的答案解决了这个问题。
public function getAllowProducts()
{
if (!$this->hasAllowProducts()) {
$products = array();
$allProducts = $this->getProduct()->getTypeInstance(true)
->getUsedProducts(null, $this->getProduct());
foreach ($allProducts as $product) {
if ($product->isSaleable()) {
if(!$product->getEcoReport())
{
$products[] = $product;
}
}
}
$this->setAllowProducts($products);
}
return $this->getData('allow_products');
}