🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

解決済

1回答

1546閲覧

EC-Cube4で新着商品をトップページに自動表示する事ができない。

Anon_

総合スコア334

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

0クリップ

投稿2021/02/16 08:35

EC-Cubeのフォーラムでも質問させていただきているのですが、回答がつかないためこちらにも投稿させていただきます。
TwigExtension.phpは下記に作成
app/Customize/Twig/Extension/TwigExtension.php

new_item.twigは下記に作成
app/template/default/Block/new_item.twig

内容は記事からそのままコピペしましたが表示されません。
キャッシュは開発モードなのでそもそも貯めないようになっていますが、念のためvar/cache以下を削除しましたが、新着商品が表示されません。

他に何を試せばよいのか分からないのですが、気になった点はTwigExtension.phpは下記の階層に新たにファイルを作成するだけで自動で読み込んでくれるのかという点です。
app/Customize/Twig/Extension/TwigExtension.php

参考にした記事
https://www.spreadworks.co.jp/top-new-products-for-ec-cube4/

フォーラム
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=25363&post_id=102159&order=0&viewmode=flat&pid=0&forum=10#forumpost102159

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YT0014

2021/02/17 00:24

new_item.twigは、コピーしてから修正となっていますが、この手順は守っておられますか?
Anon_

2021/02/17 02:38

守っております。 下記の{% if Products|length > 0 %}の上に入力した文字は表示されますが、中の文字が表示されないため、CustomizeNewProduct()で商品データが取得できていないようです。 TwigExtension.phpを設置されている階層は間違いなくapp\Customize\Twig\Extension\TwigExtension.php にあり、中の記述も記事の通りです。phpエラーは何も表示されておりません。 ファイルが読み込まれていないならCustomizeNewProduct()のundefinedが出ると思うのですが、そういったエラーはでていません。 他に確認すべき項目はありますでしょうか?
Anon_

2021/02/17 06:19

ありがとうございます。 DLしたものをコピペしましたがでないですね。 getCustomizeNewProduct()内部の処理でprint(111)というようなコードを入力したら、 ブラウザにでてきたので、ファイル自体は読み込まれているようです。 あとはなぜ取得できていないのかですが、xampp環境だとダメだったりするのでしょうか。。 この方法は、カテゴリに属しているかどうかなど関係ないですよね。
YT0014

2021/02/17 07:49

該当関数が呼ばれているようなら、例外が発生しているものと思われます。 } catch (\Exception $e){ の後で、print($e.getMessage());などで、例外の内容をご確認ください。
Anon_

2021/02/17 08:15

例外処理は発生しておりませんでした。 tryとcatchのreturn直前にprintを設置しましたが、tryのprintの文字だけが表示されております。
Anon_

2021/02/18 00:10

きっかけはU-Mebiusさんのコメントで原因がわかりましたが、長い間回答いただいたYT0014さんをベストアンサーに選ばせていただきたいと思います。 ありがとうございました。
Anon_

2021/02/18 00:12

質問への追記・修正にコメントいただいているとベストアンサーに選べないようです。 ありがとうございました。
YT0014

2021/02/18 01:43

少しでも解決のお役に立てたのならうれしいです。ベストアンサーに関してはお気になさらずに。
guest

回答1

0

ベストアンサー

はい、TwigExtension.phpは自動で読み込まれます。
いくつか確認ポイントを記載させていただきます。(質問形式ですがご容赦ください)

  1. 「表示されない」というのはどういう状況でしょうか?

NEW ITEMという見出しの部分だけ表示されて、あとは表示されないということでしょうか?
そうであればブロック自体は読み込まれているのかなと思います。

  1. 在庫があって公開ステータスになっている商品は存在するという認識で良いでしょうか?

EC-CUBEの設定によってはこの条件を満たす商品がないと表示されないためです。

  1. 商品一覧ページに作用するようなカスタマイズやプラグインは導入されていますか?

この参考記事の方法だと商品一覧ページのカスタマイズや商品一覧ページの検索に作用するプラグインの影響を同じように受けることになります。
何か思い当たる点はないでしょうか?

  1. TwigExtensionでreturn $products;の前の行に、下記のように記載すると表示結果(dumpの結果)がどうなるか確認できますでしょうか? デバッグモードであれば、Symfonyツールバー内にdumpの結果が表示されます。
dump($query->getSQL(), count($products));

投稿2021/02/17 13:01

U-Mebius

総合スコア60

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Anon_

2021/02/18 00:08

2の在庫は無制限に設定しておりましたが、その際に商品がすべて非公開状態になっていることが分かりました。。 公開にしたところ無事に表示されるようになりました。 EC-Cubeは普段使うCMSではないので基本的な個所に気づけずお手数をかけてしまい申し訳ありません。 とても助かりました。
U-Mebius

2021/02/18 00:14

良かったです。フォーラムでも拝見したのですが、今回はこちらで回答させていただきました。 何かあればまたご投稿ください!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問