Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
概要(Overview・Refs Issue)
デフォルトでは商品情報はステータス(公開/非公開/廃番)によってフロントでの表示/非表示を切り替えているが、プラグインやカスタマイズで他の条件で表示制御を拡張できるようにする。
方針(Policy)
商品の可視性を定義する抽象クラスProductVisibilityを追加
https://github.com/kiy0taka/ec-cube/blob/5f956d8506a496c15e6e80e5538a00bc2ef73645/src/Eccube/Service/Product/ProductVisibility.php
実装するメソッドは2つ
WhereCustomizer
で定義しているメソッドすべてのProductVisibilityが表示を許可しないとフロントに表示されない。
実装サンプル
デフォルトの商品ステータスでの表示制御
https://github.com/EC-CUBE/ec-cube/blob/1b1a3b28cd79cd67e30b793f9d3290a45937487a/src/Eccube/Service/Product/StatusVisibility.php
#4852 のサンプル実装
https://github.com/kiy0taka/ec-cube/blob/5f956d8506a496c15e6e80e5538a00bc2ef73645/src/Eccube/Service/Product/PublishTermVisibility.php
実装に関する補足(Appendix)
テスト(Test)
相談(Discussion)
マイナーバージョン互換性保持のための制限事項チェックリスト
レビュワー確認項目