バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 受注データ移行後にマイページでエラー

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/10/6 12:17
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 受注データ移行後にマイページでエラー
追加の修正点です。

マイページ購入履歴詳細において、各商品の現在価格がなぜかすべて118,800円で表示されてしまいました。

以下の修正で解決しました。

src/Eccube/Entity/ProductClass.php(37行目)

    /**
     * Is Inithilized
     *
     * @return bool
     */
    public function isInithilized()
    {
        if ($this->__isInitialized__ === false) {
            return false;
        }

        return true;
    }


app/template/default/Mypage/history.twig(110行目)

                                        {% if OrderDetail.product and OrderDetail.productClass.inithilized and OrderDetail.price_inc_tax != OrderDetail.productClass.price02IncTax %}
                                            <dd id="detail_list__price02_inc_tax--{{ OrderDetail.id }}" class="text-danger">
                                                <strong>【現在価格】{{ OrderDetail.productClass.price02IncTax|price }}</strong>
                                            </dd>
                                            {% set remessage = true %}
                                        {% endif %}


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

468
投稿日時: 2017/10/6 11:01
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注データ移行後にマイページでエラー
いえいえ。
私も早とちりをしてました。

確かに同じような判定が必要な箇所は他にもありそうですね。
リレーションがあるところも多いですし。


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

h_tanaka
投稿日時: 2017/10/6 10:50
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 受注データ移行後にマイページでエラー
理由をあとづけしたようですみません。
エラー処理の観点からいうと、 Product エンティティの isEnable() にも同様のエラー処理が必要ですね。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

468
投稿日時: 2017/10/6 10:44
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注データ移行後にマイページでエラー
受注明細に商品が紐づいていなくても動作するようにするのではなく、
エラー処理が必要という事をおっしゃられてたのですね。
(商品が紐づいていなくても動作するようにするという意味かと思っていました)


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

h_tanaka
投稿日時: 2017/10/6 10:33
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 受注データ移行後にマイページでエラー
468さん
再注文のときは、受注詳細に紐づけできていない商品があった場合は「現時点で販売していない商品が含まれておりました。該当商品をカートから削除しました。」というメッセージが出るのでエラーになりません。
しかしなにかしらの原因で紐づけができていないと購入履歴でエラーになるというのは、データが不正な場合のエラー処理がしっかりできていないためと思うのです。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

468
投稿日時: 2017/10/6 10:27
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 受注データ移行後にマイページでエラー
私の個人的な考えかもしれませんが、
マイページの注文履歴にはデフォルトで再注文の機能がありますので、
商品との紐づけは必須という前提で問題無いのではないでしょうか?


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

h_tanaka
投稿日時: 2017/10/6 10:05
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 受注データ移行後にマイページでエラー
本件、同様の問題が起こっている人も少なくないはず。。

どなたかプルリクエストしてくれないでしょうか?
(当方、プルリクエストしようとしてもGitの環境構築がうまくいきませんでした)


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2017/10/6 10:01
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 受注データ移行後にマイページでエラー
自己解決しました。

商品規格エンティティが受注詳細と商品情報との紐づけが行われている前提で実装されており、データ移行したユーザーの受注詳細から商品情報を取得できずにエラーとなっていました。

以下の実装により解決しました。

src/Eccube/Entity/ProductClass.php(44行目)

    public function isEnable()
    {
        if ($this->getProduct()->__isInitialized__ === false) {
            return false;
        }

        return $this->getProduct()->isEnable();
    }


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2017/10/6 9:23
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
受注データ移行後にマイページでエラー
EC-CUBE3.0.14

会員、受注、受注お届け先の情報を他サイトから移行してきたのですが、移行した会員のマイページ購入履歴を表示しようとするとエラーになるようになりました。

【エラーメッセージ】
Twig_Error_Runtime in Template.php line 230:
An exception has been thrown during the rendering of a template ("Entity was not found.") in "__string_template__c220618878f81d2b83684861d4a063dbc1d470e4111340bba33b0e731a811115" at line 68.

以下のソース内の {% if OrderDetail.enable %} 判定を {% if false %} に変更するとエラーにならなくなったため、受注詳細の商品情報が移行先サイトの商品情報と紐づいていないことが原因と思われます。

src/Eccube/Resource/template/default/Mypage/index.twig

                                                        {% if OrderDetail.enable %}
                                                            <img src="{{ app.config.image_save_urlpath }}/{{ OrderDetail.product.MainListImage|no_image_product }}">
                                                        {% else %}
                                                            <img src="{{ app.config.image_save_urlpath }}/{{ ''|no_image_product }}" />
                                                        {% endif %}


移行していない商品もあるためにデータのヒモづけを行うことはできません。
このため、この問題をソース側で解決したいと思うのですが、どうすればよいでしょうか?

OrderDetail.enable から以下の関数が順に呼ばれることまでは追えましたが、どのソースをどのように修正すればよいかわからない状態です。

src/Eccube/Entity/OrderDetail.php

    public function isEnable()
    {
        if ($this->getProductClass() && $this->getProductClass()->isEnable()) {
            return true;
        } else {
            return false;
        }
    }


src/Eccube/Entity/ProductClass.php

    public function isEnable()
    {
        return $this->getProduct()->isEnable();
    }


src/Eccube/Entity/Product.php

    public function isEnable()
    {
        return $this->getStatus()->getId() === \Eccube\Entity\Master\Disp::DISPLAY_SHOW ? true : false;
    }


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.