バージョン選択

フォーラム

メニュー

オンライン状況

63 人のユーザが現在オンラインです。 (56 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 63
もっと...

サイト内検索

質問 > フロント機能 > トップページをランディングページとして使いたい

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
468
投稿日時: 2019/2/11 12:10
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: トップページをランディングページとして使いたい
まず、ECCUBEの仕様として、
商品詳細ページのURLを見ていただくと
https://******/products/detail/2
のように「/2」の部分で商品を特定して、DBから情報を取り出し
商品詳細ページを表示しております。

さらにセキュリティの関連でカート投入時に、
DBから取り出し→表示→表示を行ったページからのカート投入かどうかとチェックする仕組みが存在しています。
(<input type="hidden" id="_token" name="_token" value="ランダムな文字列" />の記述がポイントになります)
見知らぬ外部からの攻撃を防ぐ仕組みなのですが、
この仕組みが原因でtwigをコピーするだけでは、商品一覧や商品詳細ページ以外から、
カート投入を行う事が出来ません。
(PHP側の処理も追加する必要があります)

/src/Eccube/Controller/ProductController.php 261行目以降の記述を参考に
/src/Eccube/Controller/TopController.php function index()
に移植されててみては如何でしょうか?
ただ商品詳細ページでは商品情報をDBから取得する処理は、アノテーションで指定しているようですので、
トップページではリポジトリクラスを利用して商品情報を取得すれば良いかと思います。
$Product = $this->productRepository->findWithSortedClassCategories($productId←ここには対象の商品IDを指定);

あと、TopController.phpにはコンストラクタが記述されていないので
ProductController.phpのfunction __construct()を
参考に$this->productRepositoryにProductRepositoryクラスが格納されるように追記する必要があるかと思います。

弊社で、ECCUBE3用にその辺りを簡単に実現できるプラグインをリリースしているのですが、4系版は現在準備中です。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   トップページをランディングページとして使いたい yamatanien 2019/2/10 22:24
   » Re: トップページをランディングページとして使いたい 468 2019/2/11 12:10

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,721名です
総投稿数は109,953件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1286
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.