1

特定のカテゴリの商品の在庫切れステータス を表示し、他のすべてのカテゴリのステータスを完全に非表示にしようとしています。

現在、在庫からの在庫状況の表示を無効にしています。そのため、在庫切れの商品は自動的に非表示になります。

現在のステータス:

  1. 在庫が0になった商品はすべて自動で非表示になります。
  2. 製品が在庫にある場合でも、そのステータスは表示されません。
  3. すべての製品は構成可能な製品です。

私が欲しいもの:

  1. 新しいカテゴリを作成し、それに製品を追加しました。このカテゴリには単純な製品のみが追加されます
  2. 在庫が0でもこの商品を出し続けたい
  3. 在庫切れのステータスを表示したい
  4. この商品をカートに入れないようにしたいです。(商品の在庫がないため、これは自動的に可能になるはずです。

可能な方法:

ご覧のとおり、在庫から在庫状況の表示を有効にする必要があります。これを行うと、在庫が 0 になった後も製品が表示されます..しかし、これはすべてのカテゴリにわたって表示されます..このアクションは 1 つのカテゴリに対してのみ必要です ???

4

4 に答える 4

0

簡単な方法の 1 つは、Magento の機能を使用して各カテゴリのカスタム レイアウトを作成することです。

1) 在庫がない場合でも商品を表示できるように店舗を設定する

2)新しいテーマを作成します。これは、使用しているベースを上書きします-catalog/product/list.phtmlのコピーを含めるだけで済みます

3) 元のテーマの list.phtml を変更して、項目のみを表示します。

<?php foreach ($_productCollection as $_product): ?>
    <?php if( ! $_product->isInStock()) continue ?>
...

これで、使用しているベース テーマと、そこに 1 つのファイルのみを含む新しいオーバーライド テーマの 2 つのテーマが作成されます。

在庫切れの商品を表示したいカテゴリに新しいテーマを適用すると、デフォルトで、元のテーマのリスト ビューで在庫切れの商品がスキップされます。

これは、ブロックのオーバーライドを使用してより適切に行うことができます。これについては喜んで説明しますが、これは私が考えることができる最も簡単な解決策です:-)

于 2012-09-13T10:58:34.547 に答える
0

これはアンドリューの答えに基づいています。ただし、 isInStock() は常に true を返すようです。そこで、次のように isSaleable() に置き換えました。

<?php foreach ($_productCollection as $_product): ?>
   <?php if( ! $_product->isSaleable()) continue ?>
...

ただし、表示されたアイテムの合計で製品をカウントするため、答えは最善ではありません.

于 2013-03-04T22:08:54.143 に答える