バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
rabupon
投稿日時: 2017/4/11 11:35
対応状況: −−−
常連
登録日: 2008/11/14
居住地:
投稿: 64
カテゴリの設定
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
居住地:
投稿: 3217
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系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

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

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

プラグインで関連カテゴリを出すものがあるのですか?
468
投稿日時: 2017/4/14 22:39
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
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系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

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

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

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
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.