バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品詳細画面に販売種別名を表示する方法

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hide1980
投稿日時: 2019/3/29 21:37
対応状況: 確認中
新米
登録日: 2019/3/26
居住地:
投稿: 5
商品詳細画面に販売種別名を表示する方法
ECcube4系にてサイトを構築しております。

販売種別(mtb_sale_type)にそれぞれ
id:1 name:冷凍便
id:2 name:冷蔵便
という値を格納し、温度帯が異なる商品を同梱できないようにしています。

そこでサイト上に、各商品が冷凍便、冷蔵便のどちらであるか、を表示させたいと思っています。

ショッピングカート画面の表示については、
app/template/[テーマ名]/Cart/index.twig
にて、
{% if CartItem.ProductClass.SaleType.id==1 %}冷凍{% else %}冷蔵{% endif %}

というコードを付け加えて表示するようにしました。

変数(CartItem.ProductClass.SaleType.id)については、dump関数を使用して見つけました。

しかし、商品詳細で同じようにやっても、うまくいきませんでした。

dumpで表示された「#collection」という要素に対して、「.collection」と記述するとエラーになります。

初歩的な内容かと思いますが、検索してもわかりませんでした。
商品詳細にsale_typeを出力する方法をご教授いただけますと幸いです。

何卒よろしくお願いいたします。
468
投稿日時: 2019/3/30 8:37
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品詳細画面に販売種別名を表示する方法
商品詳細ページの場合、Productという変数で商品情報が渡っていないでしょうか?


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

hide1980
投稿日時: 2019/3/30 13:50
対応状況: −−−
新米
登録日: 2019/3/26
居住地:
投稿: 5
Re: 商品詳細画面に販売種別名を表示する方法
はい、渡ってきています。

{{dump(Product.ProductClasses )}}


で表示された結果が下記です。


PersistentCollection {#3973 ▼
  -snapshot: array:1 [ …1]
  -owner: Product {#3753 ▶}
  -association: array:15 [ …15]
  -em: EntityManager {#191 …11}
  -backRefFieldName: "Product"
  -typeClass: ClassMetadata {#3631 …}
  -isDirty: false
  #collection: ArrayCollection {#4071 ▼
    -elements: array:1 [▼
      0 => ProductClass {#4287 ▼
        -price01_inc_tax: 0.0
        -price02_inc_tax: 6600.0
        -tax_rate: false
        -id: 76
        -code: "001A"
        -stock: "1"
        -stock_unlimited: false
        -sale_limit: null
        -price01: null
        -price02: "6600.00"
        -delivery_fee: null
        -visible: true
        -create_date: DateTime @1552004220 {#3622 ▶}
        -update_date: DateTime @1552894608 {#3617 ▶}
        -currency_code: "JPY"
        -point_rate: null
        -ProductStock: ProductStock {#4298 ▶}
        -TaxRule: null
        -Product: Product {#3753 ▶}
        -SaleType: SaleType {#4531 ▼
          +__isInitialized__: false
          #id: 1
          #name: null
          #sort_no: null
          -AnnotationReader: null
           …2
        }
        -ClassCategory1: null
        -ClassCategory2: null
        -DeliveryDuration: null
        -Creator: Member {#4315 ▶ …2}
        -AnnotationReader: AnnotationReader {#329 ▶}
      }
    ]
  }
  #initialized: true
}



「sale_type」は「#collection」の中にあるようなので、
{{dump(Product.ProductClasses.collection )}}

とするとサイト画面でエラーになりました。

何か指定方法が違うのでしょうか。
468
投稿日時: 2019/3/30 14:19
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品詳細画面に販売種別名を表示する方法
商品(Product)と規格商品(ProductClass)の関係は1:多となります。
メソッド名もProductClassesと複数形になっています。
この場合、ArrayCollectionが返り値となり、普通の配列と同じ扱いが出来ます。

なので、SaleTypeを取得するならProduct.ProductClasses[0].SaleTypeになるかと思います。

ただ、先にも書いた通り、規格商品は複数紐付いている為、
規格商品を利用している場合、
販売種別名を表示するのは単純ではないと思います。
(規格毎に販売種別が異なる場合)


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

hide1980
投稿日時: 2019/3/31 11:29
対応状況: −−−
新米
登録日: 2019/3/26
居住地:
投稿: 5
Re: 商品詳細画面に販売種別名を表示する方法
ありがとうございます!
表示することができました。

規格商品を利用している場合についてのご指摘もありがとうございます。

今の所、規格商品を利用する予定はないので、問題なさそうです。
ご親切にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1279
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.