質問 > フロント機能 > $Order内の商品金額を上書きする方法はありますか? |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
daidai |
投稿日時: 2017/4/16 10:59
対応状況: −−−
|
新米 登録日: 2017/4/16 居住地: 投稿: 2 |
$Order内の商品金額を上書きする方法はありますか? ▼テンプレート
[EC-CUBE] 3.0.14 [レンタルサーバ] レンタルサーバ名 [導入プラグインの有無] なし 現在勉強のためにプラグイン開発の練習をしています。 そこで一つお伺いしたいことがあります。 もしお分かりになる方がいらっしゃったらよろしくお願いします。 例えばレンタルやオプションなどで一つの商品に対し異なる金額を適用するパターンを想定して もともとの商品登録時の金額を「0円」にして、オプションやレンタル期間でフォームを拡張し各料金を設定。 フロントも拡張してその項目を選択できるようにし、料金の情報はセッション(及びカート)に保存して購入処理手前まではうまくいっています。 問題はここからで、 shoppingページに遷移した際は受注情報は $Order (元は$app['eccube.service.shopping']->getOrder($app['config']['order_processing']))ですが セッション(及びカート)に保存していた料金の情報は保持されず、もともと登録していた料金の「0円」で表示を含め購入処理が全てされてしまいます。 カート情報をもとに$Orderが作られていると思ったのですが、どうやら違うようです。 もともと商品登録時に設定していなかった料金を$Orderにセット(上書き?)する方法はございますでしょうか? |
umebius |
投稿日時: 2017/4/16 21:48
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: $Order内の商品金額を上書きする方法はありますか? 最初の$OrderはShoppingService::createOrderから作成されます。
メソッドを追っていけば、価格はCartItemからとってくるわけではないので、再設定が必要なことがわかると思います。 プラグインならフックポイントなどで$Orderと関連情報を再設定してやれば良いです。 ShoppingService、ShoppingControllerをご確認ください。
|
daidai |
投稿日時: 2017/4/17 21:23
対応状況: 解決済
|
新米 登録日: 2017/4/16 居住地: 投稿: 2 |
Re: $Order内の商品金額を上書きする方法はありますか? umebius様ありがとうございます。
御社のサイトをいつも参考にさせていただいております。 front.shopping.confirm.initializeフックポイントで$Orderに再設定をすることで、受注情報にも反映させることが確認できました。 とはいえまだ擬似データでの検証なので、ここから詳細を詰めていこうと思います。 どうもありがとうございました!! |
umebius |
投稿日時: 2017/4/18 11:19
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: $Order内の商品金額を上書きする方法はありますか? 参考にしていただきありがとうございます。
なかなかEC-CUBEに関する記事の更新できていないですが、励みになります。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |