Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

注文番号のカスタマイズ #1586

Closed
jef12suiken opened this issue Jun 7, 2016 · 9 comments
Closed

注文番号のカスタマイズ #1586

jef12suiken opened this issue Jun 7, 2016 · 9 comments

Comments

@jef12suiken
Copy link

注文番号がデフォルトではAUTO_INCREMENTにより連番の仕様となってしまうと思います。
しかし、それでは売り上げの少ない時期はやはり人気のない店であるのかな?という推測を顧客に
与えたくないと考えています。

そこで、注文番号をカスタマイズ(現状、11桁でチェックディジットによる裁判であれば重複することはないかなと)を考えています。

しかし、EC-CUBEおよびPHPが初心者のためソースが追えていません。
お手数おかけすることは承知の上なのですが、注文番号を確定しているというか
注文番号を設定しているところ付近のソースの場所を教えていただければ幸いです。

よろしくお願いいたします。

@shhirose
Copy link
Contributor

shhirose commented Jun 9, 2016

AUTO_INCREMENT のため、ロジック上で設定している部分はありません。DBでの自動採番です。
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Resource/doctrine/Eccube.Entity.Order.dcm.yml#L12-13

注文番号を確定している部分は以下の部分になります。
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Service/ShoppingService.php#L210

開発コミュニティで、@nanasess が回答していますが、注文番号をカスタマイズするのではなく、表示用の注文番号を新たに作成するほうが良いかと思います。
プラグインで行うのであれば、front.shopping.confirm.processingをフックして表示用の注文番号を設定し、メール文面についてはmail.orderをフックして、$message を書き換えるのが良いかと。
※管理画面側も忘れずに。

@izayoi256
Copy link
Contributor

@jef12suiken
Copy link
Author

shhirose様、izayoi256様
ご回答ありがとうございます。

少しずつ、PHPやEC-CUBEの勉強しながらでだいぶやっと理解できてきました。

また、プラグイン作成してアップロードをしていた際なのですが以下の事象が発生してしまいました。
原因や対処法などお分かりになる方はいらっしゃるでしょうか?

プラグインを作成し、段階を踏んでアップロードし問題なくアップロードできているかを試していた際なのですが
アップロードの際に、event class not foundが出てしまいました。

eventclassも作成し圧縮していたのでわからなくなり質問させていただきました。

事象が発生した際にアップロードしていた構成です。
app
┗Plugin
 ┗OrderNumberEdit
  ┣config.yml
  ┣event.yml
  ┣PluginManager.php
  ┣OrderNumberEditEvent.php
  ┣Entity
  ┃┗OrderNumberEdit.php
  ┣Form
  ┃┗Extention
  ┃ ┗OrderNumberEditExtention.php
  ┣Migration
  ┃┗Version20160607141400.php
  ┣Repository
  ┃┗OrderNumberEditRepository.php
  ┣Resource
  ┃┣doctrine
  ┃┃┗Plugin.OrderNumberEdit.Entity.OrderNumberEdit.dcm.yml
  ┃┗template
  ┃ ┗Admin
  ┃  ┗orderNumber.twig
  ┗ServiceProvider
   ┗OrderNumberEditServiceProvider.php

以下がログの内容となります
[2016-06-09 11:58:03] eccube.WARNING: skip OrderNumberEdit loading. event class not foud. {"class":"\Plugin\OrderNumberEdit\OrderNumberEditEvent"} []
[2016-06-09 11:58:03] eccube.INFO: Matched route "admin_store_plugin". {"route_parameters":{"_controller":"\Eccube\Controller\Admin\Store\PluginController::index","_route":"admin_store_plugin"},"request_uri":"http://localhost/eccube-3.0.10/html/ectestadmin/store/plugin"} []
[2016-06-09 11:58:03] eccube.INFO: > GET /eccube-3.0.10/html/ectestadmin/store/plugin [] []
[2016-06-09 11:58:04] eccube.INFO: < 200 [] []

@jef12suiken
Copy link
Author

すみません。
上記解決しました。

Event.phpがUTF-8で保存できていませんでした。
保存しなおし、アップロードしたらいけました。

@izayoi256
Copy link
Contributor

質問内容が解消されたようであればクローズをお願いします。下記ページを含むWikiをご一読下さい。
https://github.com/EC-CUBE/ec-cube/wiki/Issues%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95

@jef12suiken
Copy link
Author

現時点での質問内容が解消したのでクローズとします。

@jef12suiken
Copy link
Author

関連質問のため、再オープンさせていただきます。

https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Service/ShoppingService.php#L154
からのregisterPreOrder内
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Service/ShoppingService.php#L210
で注文番号を確定しているというご教示をいただきました。

同ファイル154行目からのregisterPreOrderメソッドにて、160行目で同ファイル221行目のgetNewOrderを呼び出し
223行目で234行目のnewOrderを呼び出しているのかなという部分までは理解できましたが
newOrder内
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Service/ShoppingService.php#L236
は何を処理しているのでしょうか?

ご教示いただける方がいますと非常に幸いです。
よろしくお願いいたします。

@jef12suiken jef12suiken reopened this Jun 10, 2016
@izayoi256
Copy link
Contributor

Orderエンティティのコンストラクタをご覧ください。
https://github.com/EC-CUBE/ec-cube/blob/master/src/Eccube/Entity/Order.php#L401

先述のwikiにもある通り、GitHubのIssue機能での質問はEC-CUBE3の本体開発にあたっての不明点を取り扱うことを想定しています。

ご自身のプロジェクトのカスタマイズやプラグイン作成の不明点であれば、開発コミュニティに投稿された方が適切かと存じます。

@jef12suiken
Copy link
Author

こちらはcloseとさせていただきます

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants