質問 > 管理機能 > ProductやCustomerに追加したオリジナル項目をOderにセットしたい |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h_tanaka |
投稿日時: 2023/9/20 12:35
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: ProductやCustomerに追加したオリジナル項目をOderにセットしたい つっこみどころがたくさんありますね。。
とりあえず、 setBackendName() で引数に指定している $ClassCategory という変数がどこにも定義されていません。
|
kumaan |
投稿日時: 2023/9/20 12:18
対応状況: −−−
|
新米 登録日: 2023/9/11 居住地: 投稿: 9 |
Re: ProductやCustomerに追加したオリジナル項目をOderにセットしたい ありがとうございます!
ご指摘頂いた通りProcessorを下記のように作りました。 ■OderItemTypeEctension
■CustomOrderItemProcessor
これで、取引区分はデータベースにも入るようになったのですが、BackendNameは入りません。 管理画面の受注登録からテストをする際、商品を追加して保存する前の画面では、区分と単位コードが一瞬消えてしまいます。 その後、保存されたら取引区分だけが反映され、単位コードはnullになるという状態でした。(単位コードは元々0が入るように'data' => '0',があるので、後で戻ってきてる?のかなと思います) 一瞬消える間にデータの継承が切れていることは分かるのですが、どの部分を直せばいいのでしょうか? よろしくお願いいたします。 |
h_tanaka |
投稿日時: 2023/9/19 17:38
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: ProductやCustomerに追加したオリジナル項目をOderにセットしたい OrderItem.transact_kbn
なので、 Order ではなく OrderItem に拡張する必要があります。 Product の値を OrderItem に保存するには、 Processor をカスタマイズして保存処理を実装する必要があります。 backend_name についても同様に、 Processor での保存処理が必要です。 https://doc4.ec-cube.net/customize_service
|
kumaan |
投稿日時: 2023/9/19 17:38
対応状況: −−−
|
新米 登録日: 2023/9/11 居住地: 投稿: 9 |
Re: ProductやCustomerに追加したオリジナル項目をOderにセットしたい あああ。。
わたくしがすっとぼけておりました。 OderItemではなく、Oderのdtbに追加したのでOder.transact_kbnが正しい表記ですね。 1つ目は自己解決いたしました。 |
kumaan |
投稿日時: 2023/9/19 17:27
対応状況: −−−
|
新米 登録日: 2023/9/11 居住地: 投稿: 9 |
ProductやCustomerに追加したオリジナル項目をOderにセットしたい お世話になっております。
EC-CUBE4.2をカスタムしております。2つ教えてください。 Prodcutにいくつかのオリジナルの項目を追加しました。 例) //取引区分 ->add('transact_kbn', TextType::class, [ 'required' => false, 'data' => '0', ]); これを、Oderにも反映させたいため、OderTraitとOderTypeEctensionに追記し、template>admin>Oder>edit(受注一覧の詳細ページ)に 800行目付近<商品名、価格と並んだテーブルの1項目目に入れたい>
と追記しましたが、下記のようなエラーが出ました。 Neither the property "transact_kbn" nor one of the methods "transact_kbn()", "gettransact_kbn()"/"istransact_kbn()"/"hastransact_kbn()" or "__call()" exist and have public access in class "Eccube\Entity\OrderItem". DBのdtb_Oderにはテーブルはあります。 データベースと管理画面側にフォームを用意すれば、追加したProdcutの値を引き継いでくれるのかと思ったのですが、そういうわけではないのでしょうか? Customerの項目についてはこの方法で引き継いでくれています。 また、 {{ OrderItem.class_category_name1 }}の管理名 backend_nameも呼び出したいのですが、 {{ OrderItem.backend_name }} {{ OrderItem.class_category_name1 | backend_name }} では読み込めませんでした。 こちらはどう記載すると管理名をオーダー商品の一覧に表示することができますか? よろしくお願いいたします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |