バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > 管理機能 > カテゴリの設定

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
rabupon
投稿日時: 2017/4/11 11:35
対応状況: −−−
半人前
登録日: 2008/11/14
居住地:
投稿: 24
カテゴリの設定
EC-CUBE 3.0.14 です。

カテゴリが以下の設定になっているとします

カテゴリA
├カテゴリA1
├カテゴリA2
└カテゴリA3
カテゴリB
├カテゴリB1
└カテゴリB2
カテゴリC
├カテゴリC1
└カテゴリC2

で商品が「カテゴリA3とカテゴリC1」に属している場合
商品マスタで「カテゴリA3とカテゴリC1」を選択して登録すると
「カテゴリAとカテゴリA3とカテゴリCとカテゴリC1」が
選択されてしまう。

その為、商品詳細のページの「関連カテゴリ」に
カテゴリA
カテゴリC
カテゴリC>カテゴリC1
カテゴリA>カテゴリA3
と表示されてしまう。

ちなみに、EC-CUBE3.0.11 では、選択したカテゴリA3とカテゴリC1のみの登録となり、関連カテゴリも
カテゴリA>カテゴリA3
カテゴリC>カテゴリC1
と希望通りに表示されます。


また、商品詳細ページの関連カテゴリの並び順も
カテゴリの登録順に表示されているようです。
カテゴリでドラッグして並び替えをしているので、
その並び順に表示したいのですが。
管理画面の商品マスタのカテゴリは、正しい並び順で表示されています。



468
投稿日時: 2017/4/11 18:37
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 464
Re: カテゴリの設定
3.0.14では、子カテゴリを選択した際、親カテゴリも併せて登録するように処理が追記されているようです。
/src/Eccube/Controller/Admin/Product/ProductController.php 368~377行目付近

なぜ、この処理が追加されたのか理由は分かりませんが、カスタマイズで困った事がありましたので、
この部分をコメントアウトした事があります。


あと、2つ目の質問は、フロントの商品詳細ページのカテゴリの表示順の事をおっしゃられていると思いますが、
商品詳細ページを表示する際に、カテゴリマスタの表示順は参照していない為、カテゴリマスタを参照して、表示順を整えてやる必要があります。
プラグインでは無く、直接ソースを改修されるのであれば、
/src/Eccube/Controller//ProductController.php 210行目で商品情報を$Productに格納していますので、
$ProductのProductCategoryを組み立て直す処理を追加すれば良いかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

rabupon
投稿日時: 2017/4/14 10:03
対応状況: −−−
半人前
登録日: 2008/11/14
居住地:
投稿: 24
Re: カテゴリの設定
ありがとうございます。
コメントアウトをしたら、思い通りの登録になりました。

並び順に関しましては、これからやってみます
rabupon
投稿日時: 2017/4/14 11:34
対応状況: −−−
半人前
登録日: 2008/11/14
居住地:
投稿: 24
Re: カテゴリの設定
すみません・・・
表示順がうまくいきません。
商品情報の$Productの中身を確認しても
ProductCategoryがどこに含まれているのかわかりません。
配列で入っているのではないのでしょうか?
NULLと表示されてしまいます・・・

プラグインで関連カテゴリを出すものがあるのですか?
468
投稿日時: 2017/4/14 22:39
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 464
Re: カテゴリの設定
$Product->getProductCategories() で商品に紐づくカテゴリ(ProductCategoryのCollectionオブジェクト)が取得できると思います。

twigの関連カテゴリにある以下の記述は、
{% for ProductCategory in Product.ProductCategories %}
PHPでいうところの$Product->getProductCategories()を実行しています。
(Product.ProductCategoriesの部分で自動的にgetを付けたメソッドを実行する動きをするようです)

ただ、既にCollectionオブジェクトは、
商品登録時の順番で追加されていて、foreachではその順番でしかループされないと思いますので、
カテゴリマスタの順番に表示したい場合、
私がやるなら、カテゴリマスタのコレクションをtwigに渡して、
ループを2重にして処理します。
(非効率かもしれませんが・・・)
<!-- ▼関連カテゴリ▼ -->
<div id="relative_category_box" class="relative_cat">
	<p>関連カテゴリ</p>
	{% for OneCategory in AllCategories %}
		{% for ProductCategory in Product.ProductCategories %}
			{# カテゴリが商品と紐づいている場合のみ表示 #}
			{% if Category.Id == ProductCategory.CategroyId %}
				<ol id="relative_category_box__relative_category--{{ ProductCategory.product_id }}_{{ loop.index }}">
					{% for Category in ProductCategory.Category.path %}
						<li><a id="relative_category_box__relative_category--{{ ProductCategory.product_id }}_{{ loop.parent.loop.index }}_{{ Category.id }}" href="{{ url('product_list') }}?category_id={{ Category.id }}">{{ Category.name }}</a></li>
					{% endfor %}
				</ol>
			{% endif %}
		{% endfor %}
	{% endfor %}
</div>
<!-- ▲関連カテゴリ▲ -->


商品詳細ページを表示するコントローラーにCategoryマスタのデータを渡す処理は追加する必要があります。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

rabupon
投稿日時: 2017/4/17 13:37
対応状況: −−−
半人前
登録日: 2008/11/14
居住地:
投稿: 24
Re: カテゴリの設定
何度もありがとうございます。

希望通りの表示ができました。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 



ログイン


EC-CUBEガイドブック

統計情報

総メンバー数は19,256名です
総投稿数は80,659件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1619
4
yuh
1317
5
red
1041
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
778
10
tao_s
646


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.