1

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

谢谢, 穆拉利

4

2 回答 2

5

这适用于我(版本 1.7.0.2),配置如下:

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

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

于 2013-01-24T18:28:02.003 回答
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 仍然为假,则执行 404 重定向或任何您认为合适的“隐藏”产品。

于 2013-01-24T17:10:29.567 回答