{% extends 'default_frame.twig' %}
{% set body_class = 'product_detail_page' %}
{% block stylesheet %}
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/style.css') }}" media="all" />
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/modal_style.css') }}" media="all" />
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/script/slick.css') }}" media="all" />
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/script/slick-theme.css') }}" media="all" />
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/script/scroll-hint.css') }}" media="all" />
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/base.css') }}" media="all" />
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/next.css') }}" media="all" />
<link rel="stylesheet" type="text/css" href="{{ asset('assets/css/add.css') }}" media="all" />
<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;
}
.heading-accessories{
color: #00848f;
font-size: 3rem;
}
</style>
{% endblock %}
{% block javascript %}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="{{ asset('assets/js/jquery.easing.1.3.js') }}"></script>
<script src="{{ asset('assets/js/jquery.smoothScroll.js') }}"></script>
<script src="{{ asset('assets/js/jquery.magnific-popup.js') }}"></script>
<script src="{{ asset('assets/js/emergence.min.js') }}"></script>
<script src="{{ asset('assets/js/slick.min.js') }}"></script>
<script src="{{ asset('assets/js/scroll-hint.min.js') }}"></script>
<script src="{{ asset('assets/js/effects.js') }}"></script>
<script>
$(function(){
slider = $('#slider').slick({
autoplay: false,
autoplaySpeed: 3000,
speed: 600,
arrows: true,
dots:false,
fade: false,
prevArrow: true,
nextArrow: true,
});
var i,index;
var nav = $(".slides-nav");
nav.find("li").eq(0).addClass('current');
nav.find("li").on("click",function(){
i = nav.find("li").index(this);
slider.slick("slickGoTo",parseInt(i));
});
slider.on("afterChange",function(event, slick, currentSlide){
index = $(slick.$slides.get(currentSlide)).attr('data-slick-index');
nav.find("li").removeClass("current");
nav.find("li").eq(index).addClass('current');
});
new ScrollHint('.js-scrollable');
});
</script>
{% endblock javascript %}
{% block javascript2 %}
<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 javascript2 %}
{% block main %}
<div class="breadcrumb">
<ul>
<li><a href="{{ url('homepage') }}"><img src="{{ asset('assets/img/next/icon-home.svg') }}" alt="HOME">HOME</a></li>
<li><a href="{{ url('product_list') }}">製品情報</a></li>
<li>{{ Product.name }}</li>
</ul>
</div>
<main class="next">
<section id="products-detail-top">
<div class="s_content add-l_eng-title">
<div class="heading-lv03">
{% if Product.ProductCategories[0].Category.class_name is defined %}
{{ Product.ProductCategories[0].Category.class_name }}
{% endif %}
</div>
<h2 class="heading-lv02">{{ Product.name }}<span>{{ Product.code_min }}</span></h2>
<div class="products-summary">
<div class="item-img">
<ul id="slider">
{% set listImages = Product.getListImages() %}
{% for i in 0..(listImages['length']-1)%}
{% set main_image = (listImages.images_pc[i] is defined) ? listImages.images_pc[i] : null %}
{% set mobile_image = (listImages.images_mb[i] is defined) ? listImages.images_mb[i] : null %}
<li><img src="{{ asset(main_image|no_image_product, 'save_image') }}" srcset="{{ asset(main_image|no_image_product, 'save_image') }} 1x, {{ asset(mobile_image|no_image_product, 'save_image') }} 2x" width="500" height="370"></li>
{% else %}
<li><img src="{{ asset(''|no_image_product, 'save_image') }}" width="500" height="370"></li>
{% endfor %}
</ul>
<ul class="slides-nav">
{% for i in 0..(listImages['length']-1)%}
{% set main_image = (listImages.images_pc[i] is defined) ? listImages.images_pc[i] : null %}
{% set mobile_image = (listImages.images_mb[i] is defined) ? listImages.images_mb[i] : null %}
<li><img src="{{ asset(main_image|no_image_product, 'save_image') }}" srcset="{{ asset(main_image|no_image_product, 'save_image') }} 1x, {{ asset(mobile_image|no_image_product, 'save_image') }} 2x" width="115" height="80"></li>
{% else %}
<li><img src="{{ asset(''|no_image_product, 'save_image') }}" width="115" height="80"></li>
{% endfor %}
</ul>
</div>
<div class="item-text">
<div class="post">
{{ Product.description_detail|raw|nl2br }}
</div>
<div class="link-box">
<div class="item-title">オープン価格</div>
<div class="item-btn">
<p><a href="#products-detail-cart" class="btn radius sml2 sml bg w200">シリウスストアで購入</a></p>
</div>
</div>
</div>
</div>
<div class="products-features">
<div class="heading-lv07">製品特長</div>
<div class="products-block">
{% if Product.product_url_video %}
<div class="movie">
<iframe width="560" height="315" src="{{ videoUrl }}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
{% endif %}
<ul class="point-list">
{% for BlockFeatures in Product.BlockFeatures %}
<li class="itemFreature">
<div class="item-img">
<img src="{{ asset(BlockFeatures.getFeatureImage()|no_image_product, 'save_features') }}" srcset="{{ asset(BlockFeatures.getFeatureImage()|no_image_product, 'save_features') }} 1x, {{ asset(BlockFeatures.getFeatureImage()|no_image_product, 'save_features') }} 2x" width="280" height="200" alt="">
</div>
<div class="item-text">
{{ BlockFeatures.getFeatureName() }}
</div>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
</section>
<section id="products-detail-conv">
<div class="inside">
<div class="item-img"><img src="{{ asset(Product.image_pc|no_image_product, 'save_image') }}" width="243" height="180" alt="{{ Product.name }}"></div>
<div class="item-text">
<p class="title">{{ Product.name }}</p>
<div class="price-area">
<p class="price">{{ Product.getPrice02IncTaxMin|price }} <small>(税込)</small></p>
<p><a href="#products-detail-cart" class="btn radius sml2 sml bg w200">シリウスストアで購入</a></p>
</div>
</div>
</div>
</section>
<section id="products-detail-specification">
<div class="s_content add-l_eng-title">
{#<div class="heading-lv03">
{% if Product.ProductCategories[0].Category.class_name is defined %}
{{ Product.ProductCategories[0].Category.class_name }}
{% endif %}
</div>#}
<div class="specification">
<div class="heading-lv07">製品仕様</div>
<div class="img-table">
<div class="item-table">
<div class="js-scrollable">
{{ include(template_from_string(Product.freearea)) }}
</div>
</div>
<div class="item-img">
<div class="img-inside">
{% if Product.product_image_free_area %}
<p class="img"><img src="{{ asset(Product.product_image_free_area|no_image_product, 'save_logo') }}" srcset="{{ asset(Product.product_image_free_area|no_image_product, 'save_logo') }} 1x, {{ asset(Product.product_image_free_area|no_image_product, 'save_logo') }} 2x" width="280" height="150" alt="{{ Product.name }}"></p>
{% endif %}
{% if Product.product_logo or Product.product_caption %}
<p class="logo">
{% if Product.product_logo %}
<img src="{{ asset(Product.product_logo|no_image_product, 'save_logo') }}"
srcset="{{ asset(Product.product_logo|no_image_product, 'save_logo') }} 1x, {{ asset(Product.product_logo|no_image_product, 'save_logo') }} 2x" width="123" height="34" alt="{{ Product.name }}">
{% endif %}
<span>{{ Product.product_caption }}</span>
</p>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</section>
<section id="suport-block">
<div class="heading-lv07">お客様サポート</div>
<div class="s_content bg">
<div class="btn-block">
<div>
<a href="{{ Product.product_url_qa }}" class="btn lg2 fs16 box black bg-white icon-faq fw-n">よくある質問</a>
</div>
<div>
{% if Product.product_pdf_catalog %}
<a href="{{ asset(Product.product_pdf_catalog, 'save_pdf') }}" class="btn lg2 fs16 box black bg-white icon-katarog fw-n">製品カタログ</a>
{% else %}
<a href="" class="btn lg2 fs16 box black bg-white icon-katarog fw-n">製品カタログ</a>
{% endif %}
</div>
<div>
{% if Product.product_pdf_manuals %}
<a href="{{ asset(Product.product_pdf_manuals, 'save_pdf') }}" class="btn lg2 fs16 box black bg-white icon-torisetu fw-n">取扱説明書</a>
{% else %}
<a href="" class="btn lg2 fs16 box black bg-white icon-torisetu fw-n">取扱説明書</a>
{% endif %}
</div>
</div>
</div>
</section>
<section id="products-detail-cart">
<div class="s_content add-l_eng-title">
<div class="heading-lv03">
{% if Product.ProductCategories[0].Category.class_name is defined %}
{{ Product.ProductCategories[0].Category.class_name }}
{% endif %}
</div>
<div class="img-text-column2">
<div class="item-img">
{% if Product.image_pc or Product.image_mb %}
<img src="{{ asset('assets/img/next/product-detail/thmb01.jpg') }}" srcset="{{ asset(Product.image_pc, 'save_image') }} 1x, {{ asset(Product.image_mb, 'save_image') }} 2x" width="500" height="370">
{% else %}
<img src="{{ asset(''|no_image_product, 'save_image') }}" width="500" height="370">
{% endif %}
</div>
<div class="item-text">
<div class="title">{{ Product.name }}<span>{{ Product.code_min }}</span></div>
<div class="price">
<div class="tax">販売価格 : <span>{{ Product.getPrice02IncTaxMin|price }}</span><small>(税込)</small></div>
<div class="no-tax">{{ Product.getPrice02Min|price }}<small>(税抜)</small></div>
</div>
<p class="mb30">高額商品をご注文いただいたお客様には、弊社より<b>お電話にて『ご本人確認』のご連絡</b>を差し上げます。<br>ご本人確認ができない場合、<b>ご注文をキャンセルとさせていただくことがございます</b>。予めご了承ください。</p>
<form action="{{ url('product_add_cart', {id:Product.id}) }}" method="post" id="form1" name="form1">
{% if Product.stock_find %}
<div class="number">
<div class="txt">数量</div>
{{ form_widget(form.quantity) }}
{{ form_errors(form.quantity) }}
</div>
{% if form.classcategory_id1 is defined %}
<div class="kikaku-box">
<div class="title">
規格
</div>
<div class="ec-select">
{{ form_widget(form.classcategory_id1) }}
{{ form_errors(form.classcategory_id1) }}
</div>
</div>
{% if form.classcategory_id2 is defined %}
<div class="kikaku-box">
<div class="title">
規格
</div>
<div class="ec-select">
{{ form_widget(form.classcategory_id2) }}
{{ form_errors(form.classcategory_id2) }}
</div>
</div>
{% endif %}
{% endif %}
<div class="cart-btn">
<div>
<button type="submit" class="ec-blockBtn--action add-cart">
{{ 'カートに入れる'|trans }}
</button>
</div>
<span>※ギフト包装は承っておりません。</span>
</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>
</div>
</div>
</section>
<section class="ec-grid2">
<div class="s_content ec-grid2__cell">
<div class="ec-productRole__profile">
<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>
</div>
</div>
</section>
{# プラグイン用Snippet #}
{% if Product.RelatedProducts[0] is defined %}
<section>
<div class="accessories">
<div class="s_content">
<h2 class="heading-lv04">Accessories<span>関連商品</span></h2>
<ul class="accessories-list">
{% for RelatedProduct in Product.RelatedProducts %}
{% set ChildProduct = RelatedProduct.ChildProduct %}
{% set productImages = RelatedProduct.ChildProduct.getListImages() %}
{% set main_image = (productImages.images_pc[0] is defined) ? productImages.images_pc[0] : null %}
{% set mobile_image = (productImages.images_mb[0] is defined) ? productImages.images_mb[0] : null %}
{% if ChildProduct.Status.id == constant("Eccube\\Entity\\Master\\ProductStatus::DISPLAY_SHOW") %}
<li>
<div>
<div class="item-img">
<a href="{{ url('product_detail', {id : ChildProduct.id}) }}">
<img src="{{ asset(main_image|no_image_product, 'save_image') }}" srcset="{{ asset(main_image|no_image_product, 'save_image') }} 1x,{{ asset(mobile_image|no_image_product, 'save_image') }} 2x" width="176" height="176" alt="{{ RelatedProduct.ChildProduct.name }}">
</a>
</div>
<div class="item-text">
<p class="number">{{ RelatedProduct.ChildProduct.code_min }}</p>
<p class="name">{{ RelatedProduct.ChildProduct.name }}</p>
<div class="price">希望小売価格:
{% if RelatedProduct.ChildProduct.hasProductClass %}
{% if RelatedProduct.ChildProduct.getPrice02Min == RelatedProduct.ChildProduct.getPrice02Max %}
{{ RelatedProduct.ChildProduct.getPrice02IncTaxMin|price }}
{% else %}
{{ RelatedProduct.ChildProduct.getPrice02IncTaxMin|price }} ~ {{ RelatedProduct.ChildProduct.getPrice02IncTaxMax|price }}
{% endif %}
{% else %}
{{ RelatedProduct.ChildProduct.getPrice02IncTaxMin|price }}
{% endif %}
<small>(税込)</small>
</div>
</div>
{#<span>{{ RelatedProduct.content|raw }}</span>#}
<div class="item-btn">
<p><a href="{{ url('product_detail', {id : ChildProduct.id}) }}" class="btn radius sml2 sml bg">
シリウスストアで購入
</a></p>
</div>
</div>
</li>
{% endif %}
{% endfor %}
</ul>
{#{{ include('snippet.twig', { snippets: plugin_snippets }) }}#}
</div>
</div>
</section>
{% endif %}
{{ include("Block/conv.twig") }}
</section>
</main>
{% endblock %}