私の場合、構成可能な単純な製品は在庫切れであり、構成可能な製品オプションリストの下に表示されていません。それは私にとってはうまく機能しています。しかし、すべてのオプションが在庫切れの場合、構成可能な製品を非表示にするにはどうすればよいですか?この場合、構成可能な製品にaddtocartボタンとオプションのドロップダウンが表示されません。しかし、この下にオプションがない場合は、構成可能な製品全体を非表示にする必要があります。
ありがとう、ムラリ
私の場合、構成可能な単純な製品は在庫切れであり、構成可能な製品オプションリストの下に表示されていません。それは私にとってはうまく機能しています。しかし、すべてのオプションが在庫切れの場合、構成可能な製品を非表示にするにはどうすればよいですか?この場合、構成可能な製品にaddtocartボタンとオプションのドロップダウンが表示されません。しかし、この下にオプションがない場合は、構成可能な製品全体を非表示にする必要があります。
ありがとう、ムラリ
これは、次の構成で私(バージョン1.7.0.2)で機能します。
このように、すべてのオプションが売り切れた場合、主な製品は非表示になります。
catalog_controller_product_init_after
1つの解決策は、イベントをキャッチするオブザーバーを作成することです。オブザーバーから、次の方法で製品オブジェクトにアクセスできます。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リダイレクト、または製品を「非表示」として適切と思われるものを実行します。