質問 > 管理機能 > PHPから商品登録を行なう方法 |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
shimbo |
投稿日時: 2018/11/15 12:08
対応状況: −−−
|
半人前 登録日: 2018/10/5 居住地: 投稿: 27 |
Re: PHPから商品登録を行なう方法 自己レスですが、なんとか、不足をあれこれ補って、商品のデータをデータベースに書き込むところまで持ち込めました。
まだカテゴリの登録などで少々問題は残っていますが、なんとかなりそうです。 ありがとうございます。 |
shimbo |
投稿日時: 2018/11/15 10:21
対応状況: −−−
|
半人前 登録日: 2018/10/5 居住地: 投稿: 27 |
Re: PHPから商品登録を行なう方法 ありがとうございます。
私の方で、formから受け取るパターンと、直接データをORMで書き込むパターンが区別できておらず、混乱していました。Admin/ProductController.phpの記述を参考にしていたせいで、form経由の書き方が入ってきてしまっていました。 現状を整理しますと、 ・外部システムからの商品データは受け取れている(file_put_contents()でログに書き出せている) ・プラグインから直接データを書き込む という形です。 ・orm.emにsetterを使ってデータをセット ・persistしてflush という形でできるはずだと思っております。 > ・$longname_en こちらは商品名が入るのでしょうか? 仰るとおり、商品名が入ります。 > ・バリデートが入っていないようなのですが、CSRFのチェックを一度外している感じですか? form経由ではなくDoctorineで書き込もうと思っておりますので、CSRFのチェックはしていません。 > ・フォームデータを処理するには、handleRequest()メソッドを呼び出す必要がありますが、実行されてないように思われます。 こちらは完全に見落としていました。formで書き込む際にはどこに入れればいいか、調べてみます。 > POSTした内容すべて保存できたのでしょうか? flushすると、MySQL側から「○○はnull不可」とのエラーが戻ってくるので、それを調べている段階です。 商品のセットに必要なデータというのは、どこかで調べたらわかるものでしょうか。その辺りのノウハウがどうもよくわかりません。 ともかくも、いろいろ指摘して頂き、助かります。本当にありがとうございます。 |
sw_tm |
投稿日時: 2018/11/14 16:14
対応状況: −−−
|
常連 登録日: 2018/5/25 居住地: 投稿: 43 |
Re: PHPから商品登録を行なう方法
コードで気になる点について ・$longname_en こちらは商品名が入るのでしょうか? ・バリデートが入っていないようなのですが、CSRFのチェックを一度外している感じですか? ・フォームデータを処理するには、handleRequest()メソッドを呼び出す必要がありますが、実行されてないように思われます。 引用:
POSTした内容すべて保存できたのでしょうか? |
shimbo |
投稿日時: 2018/11/14 15:02
対応状況: −−−
|
半人前 登録日: 2018/10/5 居住地: 投稿: 27 |
Re: PHPから商品登録を行なう方法 ありがとうございます。
・登録したい情報は、DBには登録されていません。 ・商品登録を行なうタイミングは、別システムの商品登録時になります。 ・商品画像の登録もしたいと思っています。 別システムで商品が登録された時に、データを受け取ってECCUBE3にコピーするようなイメージです。 |
sw_tm |
投稿日時: 2018/11/14 13:22
対応状況: −−−
|
常連 登録日: 2018/5/25 居住地: 投稿: 43 |
Re: PHPから商品登録を行なう方法 3点確認させてください。
・登録したい商品情報は、DBに保存されていますか? DBに保存されている場合、EC-CUBEのサーバーからアクセスすることは可能でしょうか? ・商品登録を行うタイミングをおしえてください。 定時? 別システムの商品登録時? 等 ・商品画像の登録はありますか? |
shimbo |
投稿日時: 2018/11/14 13:20
対応状況: −−−
|
半人前 登録日: 2018/10/5 居住地: 投稿: 27 |
Re: PHPから商品登録を行なう方法
いろいろ教えて頂いた甲斐あって、なんとかPOSTされたデータを保存するところまで書きました。しかしながら、postでデータを投げてもサーバー500が戻ってきてしまいます。 単体でGETでURLを叩いた時には、「Column 'name' cannot be null」が表示されるので、データの渡し方の問題なのかなと思っておりますが、何か私のコードで見落としがあるでしょうか? $formへの値のセットが間違っているのかとも思うのですが……? |
shimbo |
投稿日時: 2018/11/14 12:18
対応状況: −−−
|
半人前 登録日: 2018/10/5 居住地: 投稿: 27 |
Re: PHPから商品登録を行なう方法 なるほど、そういうことですね。
今回は人手を介することはちょっと難しいので、なんとか頑張ってみたいと思います。 ありがとうございます。 |
sw_tm |
投稿日時: 2018/11/13 13:17
対応状況: −−−
|
常連 登録日: 2018/5/25 居住地: 投稿: 43 |
Re: PHPから商品登録を行なう方法 CSVでデータ登録については、CSVファイルを用意し、
管理画面から登録することを想定して、お伝えしました。 別システムから、CSVファイルを出力できれば、 EC-CUBEのカスタマイズが必要なくなるので、 簡単かと思います。 |
shimbo |
投稿日時: 2018/11/13 11:57
対応状況: −−−
|
半人前 登録日: 2018/10/5 居住地: 投稿: 27 |
Re: PHPから商品登録を行なう方法 仰る通り、別のシステムからの登録ということです。
CURLだとCSRFのトークンが必要になるとのことですね。それは見落としておりました。 1つだけ商品を登録するという状況を想定しているので、CSV経由のことは考えていませんでした。 私は、どうもデータを他のクラス、コントローラーに渡す方法が今一つ理解できていないようです。 この場合、CSVのデータを生成して、->render()で/admin/product/product_csv_uploadに投げるような感じになるんでしょうか。 |
shimbo |
投稿日時: 2018/11/13 11:49
対応状況: −−−
|
半人前 登録日: 2018/10/5 居住地: 投稿: 27 |
Re: PHPから商品登録を行なう方法 コメントありがとうございます。
AdminControllerProviderでは
とありますので、 \Eccube\Controller\Admin\Product\ProductController::editにデータをPOSTして……と思っていたのですが、ResponseにはHTMLが出力されているものの、データベースには反映されず……といった状況です。 sw_tmさんも仰っているように、CSRFなど別の要因なのかな……と思っております。 方針転換して、直接app['orm.em']に書き込んでいく方がいいのかな……と思い始めました。それはそれで、
とするだけでちゃんと反映されるのか、少々不安な部分はあるのですが……。 |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |