1

私の場合、構成可能な単純な製品は在庫切れであり、構成可能な製品オプションリストの下に表示されていません。それは私にとってはうまく機能しています。しかし、すべてのオプションが在庫切れの場合、構成可能な製品を非表示にするにはどうすればよいですか?この場合、構成可能な製品にaddtocartボタンとオプションのドロップダウンが表示されません。しかし、この下にオプションがない場合は、構成可能な製品全体を非表示にする必要があります。

ありがとう、ムラリ

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_after1つの解決策は、イベントをキャッチするオブザーバーを作成することです。オブザーバーから、次の方法で製品オブジェクトにアクセスできます。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リダイレクト、または製品を「非表示」として適切と思われるものを実行します。

于 2013-01-24T17:10:29.567 に答える