質問 > 管理機能 > 注文番号にプレフィックスをつける |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
osamuya |
投稿日時: 2013/2/19 10:38
対応状況: 解決済
|
常連 登録日: 2013/2/4 居住地: 東京 投稿: 65 |
Re: 注文番号にプレフィックスをつける DELIGHTさん
ありがとうございます。他のEC-CUBEの注文番号(order_id)と重ならなければよいという要件で、注文番号を9000から始めることで一応対処はしたのですが、やはりここら辺りの勉強もしないと駄目だなぁと思っています。 注文番号の仕様を変更したことで、どれぐらいの影響範囲があるのかまだまだ把握しておらず、いろいろソースを見て回らないと駄目な感じです。 詳しい情報ありがとうございます。 引き続きよろしくお願いします。 |
DELIGHT |
投稿日時: 2013/2/7 17:06
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: 注文番号にプレフィックスをつける SC_Helper_Purchase.php内のregisterOrder($order_id, $arrParams)は、
受注の挿入や更新で(多分)必ず実行されます。
登録されるデータは$arrValuesという配列に【フィールド名 => 値】 という形式で格納され、UPDATEやINSERTされます。 $objQuery->extractOnlyColsOf($table, $arrParams);は、 $arrParamsから、$tableテーブルに存在するフィールド名のキーのみ抽出する関数ですので、 DBにフィールドを追加した上で、
としたら、登録はできるようになると思います。 但しEC-CUBEは登録したデータをページに出力するのに癖があります。 そこが分からなければRingo様の資料で勉強なさるといいと思います。
|
ゲスト |
投稿日時: 2013/2/7 15:58
対応状況: −−−
|
Re: 注文番号にプレフィックスをつける 下部、署名内のurlの中の「名古屋ユーザーグループ」内に、
プレゼン資料と、ファイル一覧とコードが置いて有ります。 参考になれば、、、と。 |
|
osamuya |
投稿日時: 2013/2/7 15:03
対応状況: −−−
|
常連 登録日: 2013/2/4 居住地: 東京 投稿: 65 |
Re: 注文番号にプレフィックスをつける DELIGHTさん、いつもありがとうございます。先日もお世話になりました。
専ら勉強中です。 できればDBにきちんとプレフィックスをもたせたいと考えていますが、今しがたSC_Helper_Purchase.phpの中身を確認しましたが、EC-CUBE初心者の私にはやや敷居が高い感じがしております。(わかるようになれば出来そうが気がするのですが。) プレフィックスを抜いた注文番号の値がDBに登録されているというように、運用でルールを決めたおけば、一部の機能でも十分やってゆけるかな…と思っております。 ただ、私も注文番号自体がどの範囲でシステムとして動いているのかまだはっきりとわかっていないのですが、注文完了後のメールなどにプレフィックスが付加できればと思っています。(もしかしたら、その他の部分にも必要になってくるかもしれません。。。。) 書いていただいた、 $arrOrder['fixed_id'] = sprintf('ECCUBE-%d', $arrOrder['order_id']); //ECCUBE-1 または $arrOrder['fixed_id'] = sprintf('ECCUBE-%05d', $arrOrder['order_id']); //ECCUBE-00001 は、ソース上のどのあたりに書けばよいでしょうか? 注文番号を扱っているファイルや関数がわかればよいのですが、如何せんどこなのかまだ探せないでいるところです。 トライ&エラーで少々おかしくなってもよいのでテストしてみたいと思っていますので、何かアドバイス頂けたらと思います。 よろしくお願いします。 |
DELIGHT |
投稿日時: 2013/2/7 13:20
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: 注文番号にプレフィックスをつける prefixをどれくらいの範囲で使うのかによりますが、
一部の機能で使うだけでしたら、
のようにすれば、DBを変更することなくprefixが付けられます。 もしDBにデータを持たせたいとお考えでしたら、 order_idはINTEGERなので新しいTEXTフィールドを作成した上で、 これまでの注文に関してはSQLでサブクエリを利用してUPDATEし、 これからの注文に関してはSC_Helper_Purchase::registerOrder()内で処理する、 などはどうでしょう。
|
osamuya |
投稿日時: 2013/2/7 12:56
対応状況: −−−
|
常連 登録日: 2013/2/4 居住地: 東京 投稿: 65 |
注文番号にプレフィックスをつける お世話になります。
注文番号がDBテーブルのオートインクリメントで自動的に割り振られていることから1からの連番になっているかと思います。この注文番号に関してたくさんの記事を読みましたが、1000からの連番を振ることは容易にできるかと思いますが、prefixをつけて(例えば、「ECCUBE-10000」のような…)連番を振るということはできないでしょうか? そもそも、DBの機能で注文番号を生成しているので、できればMySQLで操作できる範囲が自分でもよいかと思っています。が、テーブルの性質上連番に対して文字列を付加するのは不可能でしょうか? もし何らかのプレフィックスを使うとなると、PHPクラスの方で生成してDBに登録し直す…のような作業が必要でしょうか? いろいろ探っているのですが、全くよいアイディアが浮かばず、またそれらを操作するファイルやソースを見つけられず…という感じです。 もし詳しい方いましたら、ご教授願いいます。 よろしくお願いいたします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |