当没有选项时,隐藏可配置产品

时间:2013-01-24 15:38:34

标签: magento configurable

在我的情况下,可配置的简单产品缺货,它不会显示在可配置的产品选项列表下。它对我来说很好。但是,当所有选项都缺货时,我如何隐藏可配置产品?在这种情况下,可配置产品不显示addtocart按钮和选项下拉列表。但是如果在此下没有选项,我需要隐藏总的可配置产品。

谢谢, 穆拉利

2 个答案:

答案 0 :(得分:5)

这适用于我(版本1.7.0.2),具有以下配置:

  • cataloginventory / options / show_out_of_stock为0(配置/目录/库存/显示缺货产品“管理界面上没有”
  • 可配置产品/库存/管理库存为“否”
  • 简单产品/库存/管理库存为“是”

这样,当所有选项都售罄时,主产品就会被隐藏。

答案 1 :(得分:1)

一种解决方案是编写一个观察者来捕获catalog_controller_product_init_after事件。您可以从观察者通过Mage::registry('product');

访问产品对象

通过致电($product->getTypeId() == 'configurable')检查产品是否可配置。如果它是可配置产品,您可以通过执行

来访问其子库存
$simples = $product->getTypeInstance(true)->getUsedProducts(null, $product);
$confHasStock = false;
foreach ($simples as $simple) {
  if ($simple->getStockItem()->getData('qty') > 0) {
     $confHasStock = true;
     break;
  }
}

如果变量$ confHasStock仍为false,则执行404重定向或任何您认为适合“隐藏”该产品的内容。