プラグイン > その他 > 関連商品プラグインの設定ボタンが無く、商品詳細に反映もされない |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
konohaito |
投稿日時: 2022/1/7 12:36
対応状況: −−−
|
一人前 登録日: 2019/9/5 居住地: 投稿: 89 |
関連商品プラグインの設定ボタンが無く、商品詳細に反映もされない ▼テンプレート
[EC-CUBE] EC-CUBEのバージョン4、新規インストール [レンタルサーバ] エックスサーバー [OS] MAC [ブラウザ] Chrome [導入プラグインの有無] ショッピングモール 他 [カスタマイズの有無] 決済関係STRIPE [現象] EC-CUBE4系に対応した「関連商品プラグイン」をインストールし、有効化。商品の登録画面で、関連商品を登録して保存したが、実際の商品のページで、何も表示されない。(キャッシュクリア済み) という状況です。 設定した関連商品を表示するにはどうしたら良いでしょうか? 他サイト(https://itoben.com/blog/4155.html#i)の説明を見るとプラグイン一覧の画面で、「設定ボタン」があるようで、タイトルを入れたり、表示レイアウトを選択したりできるようなのですが、当方には設定ボタン自体が無く、1時停止のボタンしかありません。 よろしくお願いします。 |
468 |
投稿日時: 2022/1/7 14:53
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 関連商品プラグインの設定ボタンが無く、商品詳細に反映もされない デザインテンプレートをカスタマイズされているという事はありませんか?
プラグイン内のソースを確認すると以下の一文でjQueryを利用して 関連商品を表示しているようですので ご自身のサイトの商品詳細ページに該当のclass属性が存在しているか確認されてみては如何でしょうか? $('#RelatedProduct-product_area').appendTo($('.ec-layoutRole__main, .ec-layoutRole__mainWithColumn, .ec-layoutRole__mainBetweenColumn'));
|
konohaito |
投稿日時: 2022/1/11 11:04
対応状況: −−−
|
一人前 登録日: 2019/9/5 居住地: 投稿: 89 |
Re: 関連商品プラグインの設定ボタンが無く、商品詳細に反映もされない ご指摘の通り、商品ページにカテゴリーを表示するというカスタマイズしております。
(下記コード) class属性が存在しているか?というお話いただきましたが、カスタマイズ部分には無いように思います。 何か解決策がわかったら教えていただけますでしょうか? よろしくお願いいたします。 ファイル名: app/template/default/Product/detail.twig 上記のコード内容: {# This file is part of EC-CUBE Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved. http://www.ec-cube.co.jp/ For the full copyright and license information, please view the LICENSE file that was distributed with this source code. #} {% extends 'default_frame.twig' %} {% set body_class = 'product_page' %} {% block stylesheet %} <style> .slick-slider { margin-bottom: 30px; } .slick-dots { position: absolute; bottom: -45px; display: block; width: 100%; padding: 0; list-style: none; text-align: center; } .slick-dots li { position: relative; display: inline-block; width: 20px; height: 20px; margin: 0 5px; padding: 0; cursor: pointer; } .slick-dots li button { font-size: 0; line-height: 0; display: block; width: 20px; height: 20px; padding: 5px; cursor: pointer; color: transparent; border: 0; outline: none; background: transparent; } .slick-dots li button:hover, .slick-dots li button:focus { outline: none; } .slick-dots li button:hover:before, .slick-dots li button:focus:before { opacity: 1; } .slick-dots li button:before { content: " "; line-height: 20px; position: absolute; top: 0; left: 0; width: 12px; height: 12px; text-align: center; opacity: .25; background-color: black; border-radius: 50%; } .slick-dots li.slick-active button:before { opacity: .75; background-color: black; } .slick-dots li button.thumbnail img { width: 0; height: 0; } </style> {% endblock %} {% block javascript %} <script> eccube.classCategories = {{ class_categories_as_json(Product)|raw }}; // 規格2に選択肢を割り当てる。 function fnSetClassCategories(form, classcat_id2_selected) { var $form = $(form); var product_id = $form.find('input[name=product_id]').val(); var $sele1 = $form.find('select[name=classcategory_id1]'); var $sele2 = $form.find('select[name=classcategory_id2]'); eccube.setClassCategories($form, product_id, $sele1, $sele2, classcat_id2_selected); } {% if form.classcategory_id2 is defined %} fnSetClassCategories( $('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }} ); {% elseif form.classcategory_id1 is defined %} eccube.checkStock($('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null); {% endif %} </script> <script> $(function() { // bfcache無効化 $(window).bind('pageshow', function(event) { if (event.originalEvent.persisted) { location.reload(true); } }); $('.item_visual').slick({ dots: false, arrows: false, responsive: [{ breakpoint: 768, settings: { dots: true } }] }); $('.slideThumb').on('click', function() { var index = $(this).attr('data-index'); $('.item_visual').slick('slickGoTo', index, false); }) }); </script> <script> $(function() { $('.add-cart').on('click', function(event) { {% if form.classcategory_id1 is defined %} // 規格1フォームの必須チェック if ($('#classcategory_id1').val() == '__unselected' || $('#classcategory_id1').val() == '') { $('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}'); return true; } else { $('#classcategory_id1')[0].setCustomValidity(''); } {% endif %} {% if form.classcategory_id2 is defined %} // 規格2フォームの必須チェック if ($('#classcategory_id2').val() == '__unselected' || $('#classcategory_id2').val() == '') { $('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}'); return true; } else { $('#classcategory_id2')[0].setCustomValidity(''); } {% endif %} // 個数フォームのチェック if ($('#quantity').val() < 1) { $('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}'); return true; } else { $('#quantity')[0].setCustomValidity(''); } event.preventDefault(); $form = $('#form1'); $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize(), dataType: 'json', beforeSend: function(xhr, settings) { // Buttonを無効にする $('.add-cart').prop('disabled', true); } }).done(function(data) { // レスポンス内のメッセージをalertで表示 $.each(data.messages, function() { $('#ec-modal-header').html(this); }); $('.ec-modal').show() // カートブロックを更新する $.ajax({ url: "{{ url('block_cart') }}", type: 'GET', dataType: 'html' }).done(function(html) { $('.ec-headerRole__cart').html(html); }); }).fail(function(data) { alert('{{ 'カートへの追加に失敗しました。'|trans }}'); }).always(function(data) { // Buttonを有効にする $('.add-cart').prop('disabled', false); }); }); }); $('.ec-modal-overlay, .ec-modal .ec-inlineBtn--cancel').on('click', function() { $('.ec-modal').hide() }); </script> {% endblock %} {% block main %} <div class="ec-productRole"> <div class="ec-grid2"> <div class="ec-grid2__cell"> <div class="ec-sliderItemRole"> <div class="item_visual"> {% for ProductImage in Product.ProductImage %} <div class="slide-item"><img src="{{ asset(ProductImage, 'save_image') }}"></div> {% else %} <div class="slide-item"><img src="{{ asset(''|no_image_product, 'save_image') }}"/></div> {% endfor %} </div> <div class="item_nav"> {% for ProductImage in Product.ProductImage %} <div class="slideThumb" data-index="{{ loop.index0 }}"><img src="{{ asset(ProductImage, 'save_image') }}"></div> {% endfor %} </div> </div> </div> <div class="ec-grid2__cell"> <div class="ec-productRole__profile"> {# 商品名 #} <div class="ec-productRole__title"> <h2 class="ec-headingTitle">{{ Product.name }}</h2> </div> {# タグ #} <ul class="ec-productRole__tags"> {% for Tag in Product.Tags %} <li class="ec-productRole__tag tag_{{ Tag.id }}">{{ Tag }}</li> {% endfor %} </ul> {# 通常価格 #} {% if Product.hasProductClass -%} <div class="ec-productRole__priceRegular"> {% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %} <span class="ec-productRole__priceRegularPrice">{{ '通常価格'|trans }}:<span class="price01-default">{{ Product.getPrice01IncTaxMin|price }}</span></span> <span class="ec-productRole__priceRegularTax">{{ '税込'|trans }}</span> {% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %} <span class="ec-productRole__priceRegularPrice">{{ '通常価格'|trans }}:<span class="price01-default">{{ Product.getPrice01IncTaxMin|price }}~ {{ Product.getPrice01IncTaxMax|price }}</span></span> <span class="ec-productRole__priceRegularTax">{{ '税込'|trans }}</span> {% endif %} </div> {% else %} {% if Product.getPrice01Max is not null %} <span class="ec-productRole__priceRegularPrice">{{ '通常価格'|trans }}:{{ Product.getPrice01IncTaxMin|price }}</span> <span class="ec-productRole__priceRegularTax">{{ '税込'|trans }}</span> {% endif %} {% endif %} {# 販売価格 #} <div class="ec-productRole__price"> {% if Product.hasProductClass -%} {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %} <div class="ec-price"> <span class="ec-price__price price02-default">{{ Product.getPrice02IncTaxMin|price }}</span> <span class="ec-price__tax">{{ '税込'|trans }}</span> </div> {% else %} <div class="ec-price"> <span class="ec-price__price price02-default">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span> <span class="ec-price__tax">{{ '税込'|trans }}</span> </div> {% endif %} {% else %} <div class="ec-price"> <span class="ec-price__price">{{ Product.getPrice02IncTaxMin|price }}</span> <span class="ec-price__tax">{{ '税込'|trans }}</span> </div> {% endif %} </div> {# 商品コード #} {% if Product.code_min is not empty %} <div class="ec-productRole__code"> {{ '商品コード'|trans }}: <span class="product-code-default">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span> </div> {% endif %} {# 関連カテゴリ #} {% if Product.ProductCategories is not empty %} <div class="ec-productRole__category"> <div style="margin-bottom: 10px;">{{ '関連カテゴリ'|trans }}</div> <div class="category-list"> {% for ProductCategory in Product.ProductCategories %} {% if ProductCategory.Category.id != 2 and ProductCategory.Category.id != 10 %} {% set categoryColor = categoryColors[ProductCategory.Category.id] %} <ul class="category-name" style="margin: 0;padding: 5px;"> <li> {% for Category in ProductCategory.Category.path %} <a href="{{ url('product_list') }}?category_id={{ Category.id }}" style="padding: 5px 10px;background: {{ categoryColor['background']}};color: {{ categoryColor['color']}}!important">{{ Category.name }}</a> {%- if loop.last == false %} <span>></span>{% endif -%} {% endfor %} </li> </ul> {% endif %} {% endfor %} </div> </div> {% endif %} <form action="{{ url('product_add_cart', {id:Product.id}) }}" method="post" id="form1" name="form1"> {% if Product.stock_find %} <div class="ec-productRole__actions"> {% if form.classcategory_id1 is defined %} <div class="ec-select"> {{ form_widget(form.classcategory_id1) }} {{ form_errors(form.classcategory_id1) }} </div> {% if form.classcategory_id2 is defined %} <div class="ec-select"> {{ form_widget(form.classcategory_id2) }} {{ form_errors(form.classcategory_id2) }} </div> {% endif %} {% endif %} <div class="ec-numberInput"><span>{{ '数量'|trans }}</span> {{ form_widget(form.quantity) }} {{ form_errors(form.quantity) }} </div> </div> <div class="ec-productRole__btn"> <button type="submit" class="ec-blockBtn--action add-cart"> {{ 'カートに入れる'|trans }} </button> </div> {% else %} <div class="ec-productRole__btn"> <button type="button" class="ec-blockBtn--action" disabled="disabled"> {{ 'ただいま品切れ中です。'|trans }} </button> </div> {% endif %} {{ form_rest(form) }} </form> <div class="ec-modal"> <div class="ec-modal-overlay"> <div class="ec-modal-wrap"> <span class="ec-modal-close"><span class="ec-icon"><img src="{{ asset('assets/icon/cross-dark.svg') }}" alt=""/></span></span> <div id="ec-modal-header" class="text-center">{{ 'カートに追加しました。'|trans }}</div> <div class="ec-modal-box"> <div class="ec-role"> <span class="ec-inlineBtn--cancel">{{ 'お買い物を続ける'|trans }}</span> <a href="{{ url('cart') }}" class="ec-inlineBtn--action">{{ 'カートへ進む'|trans }}</a> </div> </div> </div> </div> </div> {% if BaseInfo.option_favorite_product %} <form action="{{ url('product_add_favorite', {id:Product.id}) }}" method="post"> <div class="ec-productRole__btn"> {% if is_favorite == false %} <button type="submit" id="favorite" class="ec-blockBtn--cancel"> {{ 'お気に入りに追加'|trans }} </button> {% else %} <button type="submit" id="favorite" class="ec-blockBtn--cancel" disabled="disabled">{{ 'お気に入りに追加済です。'|trans }} </button> {% endif %} </div> </form> {% endif %} <div class="ec-productRole__description">{{ Product.description_detail|raw|nl2br }} </div> </div> </div> </div> {% if Product.freearea %} <div class="ec-productRole__description"> <div class="shopDetail--header__title___cs"> <h1>商品について</h1> </div> {{ include(template_from_string(Product.freearea)) }} </div> {% endif %} </div> {% endblock %} 引用:
|
468 |
投稿日時: 2022/1/11 13:44
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 関連商品プラグインの設定ボタンが無く、商品詳細に反映もされない デフォルトの状態であれば
/src/Eccube/Resource/template/default/default_frame.twig 86行目付近にメインカラムのクラス属性を設定している処理があるようですが この辺りが削除されている、またはクラス属性を変更しているという事はないでしょうか?
|
konohaito |
投稿日時: 2022/1/13 16:48
対応状況: 解決済
|
一人前 登録日: 2019/9/5 居住地: 投稿: 89 |
Re: 関連商品プラグインの設定ボタンが無く、商品詳細に反映もされない すみません。
私の勘違いで、恥ずかしながら違う商品を参照していました。 大変失礼致しました! が、今後に役立つデータの関連性を詳しく教えていただき、感謝いたします。 いつもありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |