バージョン選択

フォーラム

メニュー

オンライン状況

53 人のユーザが現在オンラインです。 (36 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 52
misato もっと...

サイト内検索

質問 > 管理機能 > 受注ステータス追加のカスタマイズでエラー

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
miz
投稿日時: 2020/5/8 12:46
対応状況: −−−
新米
登録日: 2010/1/22
居住地:
投稿: 7
受注ステータス追加のカスタマイズでエラー
[EC-CUBE] 4.0.3
[OS] XAMPP (Windows10)
[PHP] PHP 7.2.9
[データベース] MySQL 10.1.35-MariaDB
[WEBサーバ] Apache/2.4.34 (Win32)
[ブラウザ] Firefox,Edge
[導入プラグインの有無] 有
商品問い合わせ for EC-CUBE4
ソーシャルボタンを追加
商品詳細ページレイアウトプラグインなど
※プラグインなしでも症状を確認済み
[カスタマイズの有無] デザインのCSSなど
[現象]
受注ステータス追加のカスタマイズを以下のサイトを参考に試しています。

EC-CUBE4で受注ステータスを追加する
https://qiita.com/chihiro-adachi/items/8d4988e784603d9517af

ですがapp/config/eccube/packages/order_state_machine.php
を変更すると、Fatal errorが起きてしまいます。
原因を探っていて気づいたのですが、order_state_machine.phpにコメント行を追加しただけでも同様のエラーが起こってしまいます。
つまりorder_state_machine.phpの変更を全く受け付けてくれない状況です。
エラーの内容は以下です。
引用:
Fatal error: Uncaught Symfony\Component\Workflow\Exception\InvalidDefinitionException: A transition from a place/state must have an unique name. Multiple transitions named "pay" from place/state "1" where found on StateMachine "order". in C:\xampp\htdocs\eccube403\vendor\symfony\workflow\Validator\StateMachineValidator.php:40 Stack trace: #0 C:\xampp\htdocs\eccube403\vendor\symfony\workflow\DependencyInjection\ValidateWorkflowsPass.php(47): Symfony\Component\Workflow\Validator\StateMachineValidator->validate(Object(Symfony\Component\Workflow\Definition), 'order') #1 C:\xampp\htdocs\eccube403\vendor\symfony\dependency-injection\Compiler\Compiler.php(141): Symfony\Component\Workflow\DependencyInjection\ValidateWorkflowsPass->process(Object(Symfony\Component\DependencyInjection\ContainerBuilder)) #2 C:\xampp\htdocs\eccube403\vendor\symfony\dependency-injection\ContainerBuilder.php(790): Symfony\Component\DependencyInjection\Compiler\Compiler->compile(Object(Symfony\Component\DependencyInjection\ContainerBuilder)) #3 C:\xamp in C:\xampp\htdocs\eccube403\vendor\symfony\workflow\Validator\StateMachineValidator.php on line 40


ローカルのテスト環境で症状が起きたので、環境の問題かと思い、別サーバー上(Xserver)の環境でも試しましたが同じでした。
またローカルでプラグインを入れてない環境でも試しましたが、同様でした。

エラーの原因がよくわからないため、ご教授お願いいたします。
kishikawa
投稿日時: 2020/5/8 17:23
対応状況: −−−
一人前
登録日: 2018/12/20
居住地: 松戸
投稿: 89
Re: 受注ステータス追加のカスタマイズでエラー
miz様

エラーメッセージに


A transition from a place/state must have an unique name. Multiple transitions named "pay" from place/state "1" where found on StateMachine "order".


とあり、予測なのですが、
'transitions'内の'pay'の'from'に同じステータスが複数回登場していることはありませんでしょうか?


----------------
株式会社ジョーレン
EC-CUBEプラチナパートナー

スピード構築でEC事業をサポート致します
EC-CUBE2系、3系、4系構築実績あり

ホームページ

miz
投稿日時: 2020/5/8 18:57
対応状況: −−−
新米
登録日: 2010/1/22
居住地:
投稿: 7
Re: 受注ステータス追加のカスタマイズでエラー
ご返答ありがとうございます。

'transitions'内はなにも変更しなくても同じエラーが発生してしまいます。

'pay' => [
'from' => (string) Status::NEW,
'to' => (string) Status::PAID,
],

なので初期値のままです。
468
投稿日時: 2020/5/8 22:23
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注ステータス追加のカスタマイズでエラー
>order_state_machine.phpにコメント行を追加しただけでも同様のエラーが起こってしまいます。
これはPHPのソース部分を書き換えずに
最終行に
//aaaaa
と書き加えて保存しただけでエラーが発生するという事でしょうか?
(ファイルを開いて保存するだけでもエラーが発生しますか?)

もし、上記のような現象なのであれば
エディタに問題があるという可能性はありませんか?
BOM付きテキストファイルで保存される等、見えない所で何かが変わっているという事はありませんか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

miz
投稿日時: 2020/5/9 11:39
対応状況: −−−
新米
登録日: 2010/1/22
居住地:
投稿: 7
Re: 受注ステータス追加のカスタマイズでエラー
ご返答ありがとうございます。

はい。
// aaa
と加えて保存しただけでも発生します。

エディタはTera Padで確認しましたがBOMなしで保存されています。

試すために元ファイルをコピーして、オリジナルのファイル名を変更し、

order_state_machine.php → order_state_machine_org.php

コピーした方のファイルを編集せずファイル名をorder_state_machine.phpに変更。
そのあと、管理画面からキャッシュを削除して、サイトにアクセスするとエラーが起きます。

ファイルは変更してなく、エディタで編集してなくてもエラーが出る状態です。
詳細を確認したところどちらも2,470Byteでファイルサイズも同じでした。
ファイルのプロパティは「作成日時」以外の違いはありませんでした。

コピーしたファイルを削除し、元のファイルに戻すと、
キャッシュクリアしても問題はおきません。不思議です。

キャッシュをクリアするところでなにか問題が発生しているように思ったため、
キャッシュクリアをコマンドから行ったところ

#php bin/console cache:clear --no-warmup

In StateMachineValidator.php line 40:
A transition from a place/state must have an unique name. Multiple transitions named "pay" from place/state "1" whe
re found on StateMachine "order".

ここですでに同じエラーを吐いていました。
このエラーが出るとどこにアクセスしてもエラーとなります。

キャッシュ内容とorder_state_machine_org.phpの関係でなにかあるのでしょうか?
468
投稿日時: 2020/5/9 22:41
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注ステータス追加のカスタマイズでエラー
投稿いただいた手順と同じ操作を行った所、
エラーが再現できました。

多分、該当ディレクトリ内のphpファイルが全て読み込まれるのだと思いますので
バックアップファイルはサーバ上に置かず、ローカルにダウンロードしてサーバ上のファイルは重複しないようにする必要があるのではないでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

miz
投稿日時: 2020/5/10 19:37
対応状況: 解決済
新米
登録日: 2010/1/22
居住地:
投稿: 7
Re: 受注ステータス追加のカスタマイズでエラー
ディレクトリー内にバックアップを置かず、phpファイルを

order_state_machine.php

のみにしたところ、解決いたしました。
ファイル名に関係なくphpファイルがすべて読み込まれるとは
思っていませんでした。

無事に考えていたとおりにステータス遷移をカスタマイズできました。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,280名です
総投稿数は109,687件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.