Labo

EC-CUBE3 分室

【3.0.14】受注ステータスの追加/変更

2017年04月22日 / 投稿者名:chiharu


今回も引き続き運用面の話です。
カスタマイズのご要望も相変わらず頂けていますが、構築が完了したクライアントからの質問が多くなってきました。
事前調査も含めて暫くの間は運用面の話が続きそうです。
 
今回は「受注ステータス」についてです。
2系の時にも運用者毎に受注ステータスを変更するご要望を頂いておりました。
3系では受注ステータスがどうなっているかを確認したいと思います。
 
■「受注ステータス」の追加/変更
 まずは一番重要な「受注ステータス」についてです。
 基本的には以下のマスターデータ管理にて追加/変更が可能となります。
 「管理画面 > 設定 > システム情報設定 > マスターデータ管理」
 
 マスタ-データ管理に関しては当ブログでも既に何度か紹介していますが、結構重要な情報を管理しています。
 何か困ったら見てみる勢いでも良いかもしれません。(笑)
 
 さて「受注ステータス」はと云うと「mtb_order_status」という項目になります。
 「mtb_order_status」を選択してみると、初期の状態では以下の8項目が表示されます。
 
  7 決済処理中
  1 新規受付
  2 入金待ち
  6 入金済み
  3 キャンセル
  4 取り寄せ中
  5 発送済み
  8 購入処理中
 
 ちなみに、初期状態の表示順で上記の順番に並んでいます。
 いつものことですが微妙に苛立ちますが気にしないことにしましょう。
 
 ここに表示された文言を変更することで「受注ステータス」を変更することが可能になると云うわけです。
 しかし、実際には上記の初期項目を変更することはお勧めしません。
 既存の項目に関して同じ意味の文言(社内用語)に変更する程度は問題ありませんが、別の意味に変えてはいけません。
 
 削除などした場合には正常にEC-CUBEが正常に動作しなくなる可能性があります。
 よっぽど熟知していない場合、削除は絶対にしないでください。
 
 上記の受注ステータスに関しては各ステータスに変更した場合に特殊な処理を行うようなプログラムがされています。
 気軽に書き換えてしまうと大変な目にあいます。
 運営者が受注ステータスを変更する場合は「追加のみ」とする方が無難です。
 気を付けましょう。
 ※ 例として以下の様なコードが記載されています。

        switch ($Status->getId()) {
            case '5': // 発送済へ
                $Order->setCommitDate(new \DateTime());
                break;
            case '6': // 入金済へ
                $Order->setPaymentDate(new \DateTime());
                break;
        }

 
 なお、今回「受注ステータス」をテーマにした理由が「8 購入処理中」です。
 弊社にて納品したクライアントから「受注データが消えてしまう」と云うお問い合わせが相次ぎました。
 確認内容は省略させて頂きますが問題は「8 購入処理中」にあります。

            // 購入処理中は検索対象から除外
            $OrderStatuses = $this->getEntityManager()
                ->getRepository('Eccube\Entity\Master\OrderStatus')
                ->findNotContainsBy(array('id' => $this->app['config']['order_processing']));
            $qb->andWhere($qb->expr()->in('o.OrderStatus', ':status'))
                ->setParameter('status', $OrderStatuses);

 上記は以下のファイルの中にある一部です。
  /src/Eccube/Repository/OrderRepository.php
 
 受注データの一覧を出力する部分だと思いますが、検索結果から除外するよう書かれています。
 お問い合わせ頂いた各クライアントともに、以下の発想だったようです。
   新規受注が来た。
    ↓
   どのステータスが適当かな・・・
    ↓
  「購入処理中」がある。これにしよう!
 
 個人的に上記の発想は特に間違っていないとも思います。
 標準に用意されている中では一番曖昧な表記の為、選択しやすいような気もします。
 私も EC-CUBE2系 で同様の仕様が無ければ気付かなかったと思います。
 クライアントの意見を代弁するのであれば「解るか!!!!」と言いたくなる内容です。
 もしも、他の方の参考になるようであれば幸いです。
 
 EC-CUBE2系の時は結構後のバージョンから同様の仕組みが実装されています。(元は株式会社ロックオン様以外の会社が開発されたプラグインでした。)
 その時はパラメータ管理画面からその処理を実行するかどうかを選択できました。
 しかし、EC-CUBE3では管理画面を簡略化する為、パラメーター管理の画面は無くなりました・・・
 代わりのような機能として設定以下のフォルダで管理されています。
  /src/Eccube/Resource/config/constant.yml.dist
 
 色々調べる必要はありますが変更するときは以下のフォルダにコピーしてから変更しましょう。
  /app/config/eccube
  ※ファイルをコピーする際にファイル名を変更する必要がありますので注意してください。
   constant.yml.dist → constant.yml
 
 
■「受注ステータスカラー」の追加/変更
 上述した内容で「受注ステータス」の変更追加を行いましたが、追加される場合は一覧の背景色も設定したほうが良いかもしれません。
 「受注ステータスカラー」はと云うと「mtb_order_status_color」という項目になります。
 
 「mtb_order_status_color」を選択してみると「受注ステータス」毎に色が設定されています。
 「受注ステータス」を追加するときは「受注ステータスカラー」も是非変更して下さい。
 
 
■「会員用受注ステータス」の追加/変更
 今回調べて気付いたことですが、EC-CUBE3系では新しい機能が追加されていました。
 ・・・もしかすると私が知らないだけで 2系でも出来たのかも知れません(笑)
 
 気付いた内容は「会員用用受注ステータス」です。
 「会員用用受注ステータス」は「mtb_customer_order_status」という項目になります。
 
「mtb_customer_order_status」を選択してみると「受注ステータス」と同じようの項目が表示されます。
 ですが、よく見ると少し違います。
 そうなんです、この項目を変更すると「マイページにて表示される受注ステータス」が変更できるんです。
 
 この機能は地味にクライアントから要望を頂く内容です。
 対応できていたんですね。ちょっと嬉しいです。
 
 
 
と云うことで今回は「受注ステータス」についてでした。
色々便利にはなっているんですが、運用者からすると、まだまだ難しい部分もあるようです。
・・・今後マニュアルを販売する為の伏線なのでしょうか(笑)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。