プラグイン > 開発について > 実装方法のご相談_商品詳細画面を表示させたときに特定条件で在庫0にしてカートボタンを無効化させたい |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
k_i |
投稿日時: 2019/6/14 18:08
対応状況: −−−
|
半人前 登録日: 2019/5/21 居住地: 南国 投稿: 16 |
実装方法のご相談_商品詳細画面を表示させたときに特定条件で在庫0にしてカートボタンを無効化させたい ▼テンプレート
[EC-CUBE] 4.0.2 [環境] ローカル開発環境 いつもお世話になっております。 技術的に可能なのか、それとも別の実装方法をしたほうが良いのかアドバイスを頂けますと幸いです。 ★やりたいこと 特定条件(会員のステータス等)で商品を在庫0とみなしてカートボタンを無効化にしたいです。 ★やろうとしていること EccubeEvents::FRONT_PRODUCT_DETAIL_INITIALIZE のイベント発生時に、 この商品は在庫が0という状態を作りたいです。 Product/detail.twig では、商品の在庫があるかどうかでカートボタンを出し分けていますので、 Product.stock_find が false になると良いのかと思っております。 {% if Product.stock_find %} … カートに入れる {% else %} … ただいま品切れ中です {% endif %} しかしながら、 \Eccube\Entity\ProductはgetStockFindはあるもののsetStockFindなどはないので、 Productの状態を書き換えることができずお手上げ状態であります…。 なにか良い方法はありますでしょうか。 ★個人的代替案 商品詳細画面のテンプレートイベントで、{% if Product.stock_find %} という文字列を {% if false %} に置き換えるようなテンプレート書き換えをすればできそうです。 しかし、プラグインとした場合に商品詳細画面のテンプレートをガッツリいじっているサイトの場合にテンプレートの書き換えが正しく行うことができずにプラグインとして機能しなくなるのではっと。。。 この代替案でするしか無いでしょうか。 なにか良い方法ご存知でしたらご教示よろしくお願いいたします。 |
tao_s |
投稿日時: 2019/6/14 23:08
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: 実装方法のご相談_商品詳細画面を表示させたときに特定条件で在庫0にしてカートボタンを無効化させたい そういう要件であれば、 stock_findのifの中だけを書き変える感じで、ログイン状態や会員情報をチェックする形にした方が良い気がします。
ほぼtwigの書き換えだけで済むかと。 在庫の有無のチェックに違う意味合いを持たせると、他で色々問題が出そうです。
|
k_i |
投稿日時: 2019/6/15 23:08
対応状況: 解決済
|
半人前 登録日: 2019/5/21 居住地: 南国 投稿: 16 |
Re: 実装方法のご相談_商品詳細画面を表示させたときに特定条件で在庫0にしてカートボタンを無効化させたい tao_sさん、こんばんは。
いつもありがとうございます。 おっしゃる通り、テンプレート書き換えで行ったほうがよさそうな気がしてきました。無理にProductの在庫チェックを変えることは副作用がある可能性がありますね。安全に行きたいですし、比較的簡単なテンプレート書き換えで行いたいと思います! そして、できました。テンプレート書き換えで。 ご教示ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |