前回のエラーからさらにもう一つシステムエラーが出ました。
はじめに
前回ECCUBE2系から4系への移行時に出たエラーと言う記事でお話していた内容だけでなく、もう一つ踏み込んだカスタマイズをしないと2系から取り込んだNP後払い関連でエラーが出ます。
注意事項
NP後払いプラグインを利用していて、かつ2系から4系にデータ移行された方向け
情報の修正が出来ない
前回のシステムエラーに関しては「受注一覧」が取得できないものでした。
ただ、今回はNP後払いを選択したクライアントの情報が修正出来ないと言うものでした。
一覧に表示されているクライアントをクリックすると
このようにシステムエラーが表示されます。
エラーの内容をみていると「workflow」がどうたらって出ていました。
対応状況が原因
前回は純粋にマスタデータにNP後払いの情報を追加すればよいだけだと思っていましたが、原因はもっと違うところにありました。
先ほどのクライアントは「NP後払い決済完了」と言う「対応状況」でした。
ただ、ECCUBE4系ではデフォルトで「対応状況」内に「NP後払い決済完了」がありません。
そのせいで何やらおかしい事になっていたようです。
逆に言うと対応状況を増やせば問題ありません。
対応状況を増やす方法
こちらの記事が参考になりました。
https://qiita.com/chihiro-adachi/items/8d4988e784603d9517af
mtb_order_statusにNP後払いの情報を追加する
mtb_order_status_colorにNP後払いの情報を追加する
mtb_customer_order_statusにNP後払いの情報を追加する
ECCUBEの管理画面側からの設定は以上です。
次はphpのファイルをいじっていきます。
app/config/eccube/packages/order_state_machine.php
を編集していきます。
37行目辺りに以下の情報を追加します。
(string) Status::RETURNED, // 追加したステータスのIDを以下に定義 '9000',
70行目辺りに以下の情報を追加します。
// ラッピング中への遷移を追加 'in_wrapping' => [ 'from' => (string) Status::NEW, 'to' => '9000', ]
59行目辺りの情報を以下の内容に変更します。
'from' => [(string) Status::NEW, (string) Status::PAID, (string) Status::IN_PROGRESS, '9000'],
上記内容でphpを保存し、FTPなどで上書きします。
ECCUBEの管理画面でキャッシュの削除を行います。
「削除しました」の文字が出ると先ほどのクライアント様情報を見に行きます。
すると、今回はエラーが出ずに管理画面上に表示できました。
とりあえずまた何かしらのバグが出ると嫌なので、対応状況と支払い方法を変更しました。
そして保存が出来ました。
いやー、めっちゃ安心しました。
運用中で発送済にしようとするとエラーが出たのでめっちゃ焦りました。
以上でECCUBE2系から4系移行時に出たNP後払い関連のエラーの説明を終了致します。
さいごに
NP後払いがECCUBE4にプラグイン出さないのも理解できる
まぁNP後払い関連のプラグインが出ていないのを考えると、ECCUBEユーザーは少なくなっているだけじゃなくて、色々とダメなんだろうね。
本当にシステムエラーの文字は心臓と気持ちがやられる・・・