EC-CUBE

EC-Orange とは

EC-CUBE Q & A

キーワードで検索

カテゴリから探す

質問と回答

新規登録商品に自動的に「NEW」を付加するには?(期限付き表示も)

お世話になっております。
Ver2.3.0を設置しております。(Postgre)

「新着商品ブロック」を作成したのですが、各商品のステータスを設定していなければ表示されません。

新規登録した商品に自動的に「NEW」表示させるには、どのようにしたら良いでしょうか?
商品の登録日は、それぞれの商品に記録されているみたいなので、登録から1週間はNEW表示させるなどできないでしょうか。

過去ログを調べてみましたが、詳しく解決方法が書いてありませんでした。

またはSQLで、登録日○年○月○日~○年○月○日の商品に一括で「NEW」のステータスに変更するような事はできないでしょうか。
過去ログにもあるような、ポイント一括変更みたいな感じで。


管理画面の商品一覧で、一括でステータスの変更ができれば良いのですが、1つ1つ商品の詳細画面でステータスを変更するのは時間も労力も多くなってしまうので、このように自動的に管理できる、または一括で変更できるよなうな事ができれば便利だと思います。


アドバイスをお願い致します。

A. 回答

新規登録商品に自動的に「NEW」を付加するには?(期限付き表示も) への1件のコメント

  1. admin より:
    ステータスのON/OFFがしたいのならば、ちょっとした工夫でできるかもしれません(試していないので、脳内理論です) ステータスがたとえば「NEW」「オススメ」「限定品」「セール」の4つがあったとすると、データベース上ではオンのときに「1」、オフのときに「0」として保存されます。 また、ステータスは1つのカラムでまとめて管理されているので、上記のうち「NEW」だけがオンのときは「1000」という形で保存されています。「NEW」と「限定品」がオンだったら「1010」です。 全部オンだったら「1111」です。 ということは、現在の時間からcreate_dateを差し引き、任意の時間以上経っていて、かつ「NEW」にチェックがあるステータスだけ変更すればよいってことになりますね。 先述のように、ステータスは「1000」といった形で管理されるので、preg_replaceなどの正規表現による置換で先頭の「1」を「0」にすればOKですね。 あとはどのタイミングでこの処理を走らせるか・・・。トップページなのか一覧なのか。その辺でどこに記述させるべきか変わってきます。 ちょっと時間がないので、今は理論的な話までとなってしまいますが、PHPの勉強を少しすればできるレベルのものだと思うので、試せるようなら試してみてください。