だ。ログ。

開発とかスノボとかやきうとか。

EC-CUBE3でカートに入れるボタンをクリックした後の挙動の変更

自分の研究不足と言う事もあるが、EC-CUBE2の時代はカートに商品を入れる際には力技でセッションに入れ込むと言うやり方で結構やっていたがEC-CUBE3になってからノウハウがホントない。
カートに入れる際にはコントローラとしてCartControllerを経由してデータ商品を入れ込んだ後にページをリダイレクトするってなやり方をしている。

/src/Eccube/Controller/CartController.php

#166行目
	return $app->redirect($app->url('cart'));

実体としてはカート処理を終えてページをカートページにリダイレクトする処理が書かれている。
このリダイレクト先を任意のページに変更する。
例はトップページへリダイレクト

	$app->redirect('/');

各ページへのリダイレクトに関してはgrepすれば大半の遷移先が書いてある。
ただしこの場合、一律イベントとして「カートに追加する」アクションをした場合にトップページに戻るだけの機械なのでPOSTされたページに戻す場合はそれなりにロジックを書かないとダメ。

それとこのままでは
「正常/異常を問わずカートに追加した後の挙動」
をカスタムする事になるので、異常時にどのようなエラーだったかをページに表示させるか。という設計が必要である。