var/cache/dev/twig/a7/a7a86762dbd1246e22d30ea3980317fbeb2b247beb2f266e2054484e2050f870.php line 40

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* Product/detail.twig */
  14. class __TwigTemplate_8d7794ca07c048c3dd972249bc48df131e5d0b3c4008f8016ba49d8727146cc3 extends \Eccube\Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'stylesheet' => [$this'block_stylesheet'],
  24.             'javascript' => [$this'block_javascript'],
  25.             'main' => [$this'block_main'],
  26.         ];
  27.     }
  28.     protected function doGetParent(array $context)
  29.     {
  30.         // line 11
  31.         return "default_frame.twig";
  32.     }
  33.     protected function doDisplay(array $context, array $blocks = [])
  34.     {
  35.         $macros $this->macros;
  36.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  38.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  40.         // line 13
  41.         $context["body_class"] = "product_page";
  42.         // line 11
  43.         $this->parent $this->loadTemplate("default_frame.twig""Product/detail.twig"11);
  44.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  45.         
  46.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  47.         
  48.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  49.     }
  50.     // line 15
  51.     public function block_stylesheet($context, array $blocks = [])
  52.     {
  53.         $macros $this->macros;
  54.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  55.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  56.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  57.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  58.         // line 16
  59.         echo "    <style>
  60.         .slick-slider {
  61.             margin-bottom: 30px;
  62.         }
  63.         .slick-dots {
  64.             position: absolute;
  65.             bottom: -45px;
  66.             display: block;
  67.             width: 100%;
  68.             padding: 0;
  69.             list-style: none;
  70.             text-align: center;
  71.         }
  72.         .slick-dots li {
  73.             position: relative;
  74.             display: inline-block;
  75.             width: 20px;
  76.             height: 20px;
  77.             margin: 0 5px;
  78.             padding: 0;
  79.             cursor: pointer;
  80.         }
  81.         .slick-dots li button {
  82.             font-size: 0;
  83.             line-height: 0;
  84.             display: block;
  85.             width: 20px;
  86.             height: 20px;
  87.             padding: 5px;
  88.             cursor: pointer;
  89.             color: transparent;
  90.             border: 0;
  91.             outline: none;
  92.             background: transparent;
  93.         }
  94.         .slick-dots li button:hover,
  95.         .slick-dots li button:focus {
  96.             outline: none;
  97.         }
  98.         .slick-dots li button:hover:before,
  99.         .slick-dots li button:focus:before {
  100.             opacity: 1;
  101.         }
  102.         .slick-dots li button:before {
  103.             content: \" \";
  104.             line-height: 20px;
  105.             position: absolute;
  106.             top: 0;
  107.             left: 0;
  108.             width: 12px;
  109.             height: 12px;
  110.             text-align: center;
  111.             opacity: .25;
  112.             background-color: black;
  113.             border-radius: 50%;
  114.         }
  115.         .slick-dots li.slick-active button:before {
  116.             opacity: .75;
  117.             background-color: black;
  118.         }
  119.         .slick-dots li button.thumbnail img {
  120.             width: 0;
  121.             height: 0;
  122.         }
  123.         /*設定価格*/
  124.         .Biz_Pricing{
  125.         line-height:1;
  126.         font-size:16px;
  127.         padding-left:1em;
  128.         }
  129.         .Biz_Pricing_price{
  130.         font-size:14px;
  131.         padding:8px 16px;
  132.         border-radius:4px;
  133.         /* border:1px solid #333; */
  134.         background-color: rgb(244, 238, 222);
  135.         }
  136.         /*価格*/
  137.         .Biz_ec-price__price{
  138.         font-size:14px;
  139.         line-height:1;
  140.         padding:8px 16px;
  141.         border-radius:4px;
  142.         border:1px solid #282828;
  143.         vertical-align: middle;
  144.         /* background-color: rgb(244, 238, 222);*/
  145.         }
  146.         /*フリーエリア寸法表*/
  147.         .size_dimension{}
  148.         .size_dimension__Title{
  149.         text-algn:center;
  150.         font-size:1.4rem;
  151.         margin:1em auto;
  152.         }
  153.         .size_dimension table {
  154.         background-color: #fff;
  155.         border-collapse: collapse;
  156.         width:  100%;
  157.         white-space: nowrap; */
  158.         table-layout: fixed;
  159.         min-width: 460px;
  160.         }
  161.         .size_dimension th {
  162.         background-color: rgb(244, 238, 222);
  163.         }
  164.         .size_dimension th,.size_dimension td {
  165.         border: solid 1px #ececec;
  166.         padding: 5px 10px;
  167.         text-align:center;
  168.         }
  169.         .table-wrap {
  170.         overflow-x: scroll;
  171.         }
  172.     </style>
  173. ";
  174.         
  175.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  176.         
  177.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  178.     }
  179.     // line 147
  180.     public function block_javascript($context, array $blocks = [])
  181.     {
  182.         $macros $this->macros;
  183.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  184.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  185.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  186.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  187.         // line 148
  188.         echo "    <script>
  189.         eccube.classCategories = ";
  190.         // line 149
  191.         echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson((isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'149$this->source); })()));
  192.         echo ";
  193.         // 規格2に選択肢を割り当てる。
  194.         function fnSetClassCategories(form, classcat_id2_selected) {
  195.             var \$form = \$(form);
  196.             var product_id = \$form.find('input[name=product_id]').val();
  197.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  198.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  199.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  200.         }
  201.         ";
  202.         // line 160
  203.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse160)) {
  204.             // line 161
  205.             echo "        fnSetClassCategories(
  206.             \$('#form1'), ";
  207.             // line 162
  208.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'162$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse162), "vars", [], "any"falsefalsefalse162), "value", [], "any"falsefalsefalse162));
  209.             echo "
  210.         );
  211.         ";
  212.         } elseif (twig_get_attribute($this->env$this->source,         // line 164
  213. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse164)) {
  214.             // line 165
  215.             echo "        eccube.checkStock(\$('#form1'), ";
  216.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'165$this->source); })()), "id", [], "any"falsefalsefalse165), "html"nulltrue);
  217.             echo ", ";
  218.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'165$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse165), "vars", [], "any"falsefalsefalse165), "value", [], "any"falsefalsefalse165));
  219.             echo ", null);
  220.         ";
  221.         }
  222.         // line 167
  223.         echo "    </script>
  224.     <script>
  225.         \$(function() {
  226.             // bfcache無効化
  227.             \$(window).bind('pageshow', function(event) {
  228.                 if (event.originalEvent.persisted) {
  229.                     location.reload(true);
  230.                 }
  231.             });
  232.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  233.             // img タグに width, height が付与されている.
  234.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  235.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  236.             \$('.ec-grid2__cell').hide();
  237.             var removeSize = function () {
  238.                 \$('.slide-item').height('');
  239.                 \$('.slide-item img')
  240.                     .removeAttr('width')
  241.                     .removeAttr('height')
  242.                     .removeAttr('style');
  243.             };
  244.             var slickInitial = function(slick) {
  245.                 \$('.ec-grid2__cell').fadeIn(1500);
  246.                 var baseHeight = \$(slick.target).height();
  247.                 var baseWidth = \$(slick.target).width();
  248.                 var rate = baseWidth / baseHeight;
  249.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  250.                 // transform を使用することでCLSの影響を受けないようにする
  251.                 \$('.slide-item img')
  252.                     .css(
  253.                         {
  254.                             'transform-origin': 'top left',
  255.                             'transform': 'scaleY(' + rate + ')',
  256.                             'transition': 'transform .1s'
  257.                         }
  258.                     );
  259.                 // 正しいサイズに近くなったら属性を解除する
  260.                 setTimeout(removeSize, 500);
  261.             };
  262.             \$('.item_visual').on('init', slickInitial);
  263.             // リサイズ時は CLS の影響を受けないため属性を解除する
  264.             \$(window).resize(removeSize);
  265.             \$('.item_visual').slick({
  266.                 dots: false,
  267.                 arrows: false,
  268.                 responsive: [{
  269.                     breakpoint: 768,
  270.                     settings: {
  271.                         dots: true
  272.                     }
  273.                 }]
  274.             });
  275.             \$('.slideThumb').on('click', function() {
  276.                 var index = \$(this).attr('data-index');
  277.                 \$('.item_visual').slick('slickGoTo', index, false);
  278.             })
  279.         });
  280.     </script>
  281.     <script>
  282.         \$(function() {
  283.             \$('.add-cart').on('click', function(event) {
  284.                 ";
  285.         // line 231
  286.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse231)) {
  287.             // line 232
  288.             echo "                // 規格1フォームの必須チェック
  289.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  290.                     \$('#classcategory_id1')[0].setCustomValidity('";
  291.             // line 234
  292.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  293.             echo "');
  294.                     return true;
  295.                 } else {
  296.                     \$('#classcategory_id1')[0].setCustomValidity('');
  297.                 }
  298.                 ";
  299.         }
  300.         // line 240
  301.         echo "
  302.                 ";
  303.         // line 241
  304.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse241)) {
  305.             // line 242
  306.             echo "                // 規格2フォームの必須チェック
  307.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  308.                     \$('#classcategory_id2')[0].setCustomValidity('";
  309.             // line 244
  310.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  311.             echo "');
  312.                     return true;
  313.                 } else {
  314.                     \$('#classcategory_id2')[0].setCustomValidity('');
  315.                 }
  316.                 ";
  317.         }
  318.         // line 250
  319.         echo "
  320.                 // 個数フォームのチェック
  321.                 if (\$('#quantity').val() < 1) {
  322.                     \$('#quantity')[0].setCustomValidity('";
  323.         // line 253
  324.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html"nulltrue);
  325.         echo "');
  326.                     return true;
  327.                 } else {
  328.                     \$('#quantity')[0].setCustomValidity('');
  329.                 }
  330.                 event.preventDefault();
  331.                 \$form = \$('#form1');
  332.                 \$.ajax({
  333.                     url: \$form.attr('action'),
  334.                     type: \$form.attr('method'),
  335.                     data: \$form.serialize(),
  336.                     dataType: 'json',
  337.                     beforeSend: function(xhr, settings) {
  338.                         // Buttonを無効にする
  339.                         \$('.add-cart').prop('disabled', true);
  340.                     }
  341.                 }).done(function(data) {
  342.                     // レスポンス内のメッセージをalertで表示
  343.                     \$.each(data.messages, function() {
  344.                         \$('#ec-modal-header').text(this);
  345.                     });
  346.                     \$('.ec-modal').show()
  347.                     // カートブロックを更新する
  348.                     \$.ajax({
  349.                         url: \"";
  350.         // line 280
  351.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  352.         echo "\",
  353.                         type: 'GET',
  354.                         dataType: 'html'
  355.                     }).done(function(html) {
  356.                         \$('.ec-headerRole__cart').html(html);
  357.                     });
  358.                 }).fail(function(data) {
  359.                     alert('";
  360.         // line 287
  361.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html"nulltrue);
  362.         echo "');
  363.                 }).always(function(data) {
  364.                     // Buttonを有効にする
  365.                     \$('.add-cart').prop('disabled', false);
  366.                 });
  367.             });
  368.         });
  369.         \$('.ec-modal-wrap').on('click', function(e) {
  370.             // モーダル内の処理は外側にバブリングさせない
  371.             e.stopPropagation();
  372.         });
  373.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  374.             \$('.ec-modal').hide()
  375.         });
  376.     </script>
  377.     <script type=\"application/ld+json\">
  378.     {
  379.         \"@context\": \"https://schema.org/\",
  380.         \"@type\": \"Product\",
  381.         \"name\": \"";
  382.         // line 307
  383.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'307$this->source); })()), "name", [], "any"falsefalsefalse307), "html"nulltrue);
  384.         echo "\",
  385.         \"image\": [
  386.             ";
  387.         // line 309
  388.         $context['_parent'] = $context;
  389.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'309$this->source); })()), "ProductImage", [], "any"falsefalsefalse309));
  390.         $context['_iterated'] = false;
  391.         $context['loop'] = [
  392.           'parent' => $context['_parent'],
  393.           'index0' => 0,
  394.           'index'  => 1,
  395.           'first'  => true,
  396.         ];
  397.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  398.             $length count($context['_seq']);
  399.             $context['loop']['revindex0'] = $length 1;
  400.             $context['loop']['revindex'] = $length;
  401.             $context['loop']['length'] = $length;
  402.             $context['loop']['last'] = === $length;
  403.         }
  404.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  405.             // line 310
  406.             echo "                \"";
  407.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'310$this->source); })()), "request", [], "any"falsefalsefalse310), "schemeAndHttpHost", [], "any"falsefalsefalse310), "html"nulltrue);
  408.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  409.             echo "\"";
  410.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse310)) {
  411.                 echo ",";
  412.             }
  413.             // line 311
  414.             echo "
  415.             ";
  416.             $context['_iterated'] = true;
  417.             ++$context['loop']['index0'];
  418.             ++$context['loop']['index'];
  419.             $context['loop']['first'] = false;
  420.             if (isset($context['loop']['length'])) {
  421.                 --$context['loop']['revindex0'];
  422.                 --$context['loop']['revindex'];
  423.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  424.             }
  425.         }
  426.         if (!$context['_iterated']) {
  427.             // line 313
  428.             echo "                \"";
  429.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'313$this->source); })()), "request", [], "any"falsefalsefalse313), "schemeAndHttpHost", [], "any"falsefalsefalse313), "html"nulltrue);
  430.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  431.             echo "\"
  432.             ";
  433.         }
  434.         $_parent $context['_parent'];
  435.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  436.         $context array_intersect_key($context$_parent) + $_parent;
  437.         // line 315
  438.         echo "        ],
  439.         \"description\": \"";
  440.         // line 316
  441.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse316)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse316), twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'316$this->source); })()), "description_detail", [], "any"falsefalsefalse316))) : (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'316$this->source); })()), "description_detail", [], "any"falsefalsefalse316))), ["
  442. => """ " => ""]), 0300), "html"nulltrue);
  443.         echo "\",
  444.         ";
  445.         // line 317
  446.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'317$this->source); })()), "code_min", [], "any"falsefalsefalse317)) {
  447.             // line 318
  448.             echo "        \"sku\": \"";
  449.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'318$this->source); })()), "code_min", [], "any"falsefalsefalse318), "html"nulltrue);
  450.             echo "\",
  451.         ";
  452.         }
  453.         // line 320
  454.         echo "        \"offers\": {
  455.             \"@type\": \"Offer\",
  456.             \"url\": \"";
  457.         // line 322
  458.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'322$this->source); })()), "id", [], "any"falsefalsefalse322)]), "html"nulltrue);
  459.         echo "\",
  460.             \"priceCurrency\": \"";
  461.         // line 323
  462.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["eccube_config"]) || array_key_exists("eccube_config"$context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.'323$this->source); })()), "currency", [], "any"falsefalsefalse323), "html"nulltrue);
  463.         echo "\",
  464.             \"price\": ";
  465.         // line 324
  466.         ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'324$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse324)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'324$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse324), "html"nulltrue))) : (print (0)));
  467.         echo ",
  468.             \"availability\": \"";
  469.         // line 325
  470.         echo ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'325$this->source); })()), "stock_find", [], "any"falsefalsefalse325)) ? ("InStock") : ("OutOfStock"));
  471.         echo "\"
  472.         }
  473.     }
  474.     </script>
  475. ";
  476.         
  477.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  478.         
  479.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  480.     }
  481.     // line 331
  482.     public function block_main($context, array $blocks = [])
  483.     {
  484.         $macros $this->macros;
  485.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  486.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  487.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  488.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  489.         // line 332
  490.         echo "    <div class=\"ec-productRole\">
  491.         <div class=\"ec-grid2\">
  492.             <div class=\"ec-grid2__cell\">
  493.                 <div class=\"ec-sliderItemRole\">
  494.                     <div class=\"item_visual\">
  495.                         ";
  496.         // line 338
  497.         $context['_parent'] = $context;
  498.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'338$this->source); })()), "ProductImage", [], "any"falsefalsefalse338));
  499.         $context['_iterated'] = false;
  500.         $context['loop'] = [
  501.           'parent' => $context['_parent'],
  502.           'index0' => 0,
  503.           'index'  => 1,
  504.           'first'  => true,
  505.         ];
  506.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  507.             $length count($context['_seq']);
  508.             $context['loop']['revindex0'] = $length 1;
  509.             $context['loop']['revindex'] = $length;
  510.             $context['loop']['length'] = $length;
  511.             $context['loop']['last'] = === $length;
  512.         }
  513.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  514.             // line 339
  515.             echo "                            <div class=\"slide-item\"><img src=\"";
  516.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  517.             echo "\" alt=\"";
  518.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse339)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'339$this->source); })()), "name", [], "any"falsefalsefalse339), "html"nulltrue))) : (print ("")));
  519.             echo "\" width=\"550\" height=\"550\"";
  520.             if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse339) > 1)) {
  521.                 echo " loading=\"lazy\"";
  522.             }
  523.             echo "></div>
  524.                         ";
  525.             $context['_iterated'] = true;
  526.             ++$context['loop']['index0'];
  527.             ++$context['loop']['index'];
  528.             $context['loop']['first'] = false;
  529.             if (isset($context['loop']['length'])) {
  530.                 --$context['loop']['revindex0'];
  531.                 --$context['loop']['revindex'];
  532.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  533.             }
  534.         }
  535.         if (!$context['_iterated']) {
  536.             // line 341
  537.             echo "                            <div class=\"slide-item\"><img src=\"";
  538.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html"nulltrue);
  539.             echo "\" alt=\"";
  540.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse341)) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'341$this->source); })()), "name", [], "any"falsefalsefalse341), "html"nulltrue))) : (print ("")));
  541.             echo "\" width=\"550\" height=\"550\"></div>
  542.                         ";
  543.         }
  544.         $_parent $context['_parent'];
  545.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  546.         $context array_intersect_key($context$_parent) + $_parent;
  547.         // line 343
  548.         echo "                    </div>
  549.                     <div class=\"item_nav\">
  550.                         ";
  551.         // line 345
  552.         $context['_parent'] = $context;
  553.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'345$this->source); })()), "ProductImage", [], "any"falsefalsefalse345));
  554.         $context['loop'] = [
  555.           'parent' => $context['_parent'],
  556.           'index0' => 0,
  557.           'index'  => 1,
  558.           'first'  => true,
  559.         ];
  560.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  561.             $length count($context['_seq']);
  562.             $context['loop']['revindex0'] = $length 1;
  563.             $context['loop']['revindex'] = $length;
  564.             $context['loop']['length'] = $length;
  565.             $context['loop']['last'] = === $length;
  566.         }
  567.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  568.             // line 346
  569.             echo "                            <div class=\"slideThumb\" data-index=\"";
  570.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse346), "html"nulltrue);
  571.             echo "\"><img src=\"";
  572.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  573.             echo "\" alt=\"\" width=\"133\" height=\"133\" loading=\"lazy\"></div>
  574.                         ";
  575.             ++$context['loop']['index0'];
  576.             ++$context['loop']['index'];
  577.             $context['loop']['first'] = false;
  578.             if (isset($context['loop']['length'])) {
  579.                 --$context['loop']['revindex0'];
  580.                 --$context['loop']['revindex'];
  581.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  582.             }
  583.         }
  584.         $_parent $context['_parent'];
  585.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  586.         $context array_intersect_key($context$_parent) + $_parent;
  587.         // line 348
  588.         echo "                    </div>
  589.                 </div>
  590.             </div>
  591.             <div class=\"ec-grid2__cell\">
  592.                 <div class=\"ec-productRole__profile\">
  593.                  ";
  594.         // line 354
  595.         echo "                    ";
  596.         if ( !twig_test_empty(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'354$this->source); })()), "code_min", [], "any"falsefalsefalse354))) {
  597.             // line 355
  598.             echo "                        <div class=\"ec-productRole__code\" style = \"font-size:80%;padding-top:.2em;\">
  599.                             ";
  600.             // line 356
  601.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html"nulltrue);
  602.             echo ": <span class=\"product-code-default\">";
  603.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'356$this->source); })()), "code_min", [], "any"falsefalsefalse356), "html"nulltrue);
  604.             if ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'356$this->source); })()), "code_min", [], "any"falsefalsefalse356) != twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'356$this->source); })()), "code_max", [], "any"falsefalsefalse356))) {
  605.                 echo " ~ ";
  606.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'356$this->source); })()), "code_max", [], "any"falsefalsefalse356), "html"nulltrue);
  607.             }
  608.             echo "</span>
  609.                         </div>
  610.                     ";
  611.         }
  612.         // line 359
  613.         echo "
  614.                     ";
  615.         // line 361
  616.         echo "                    ";
  617.         // line 376
  618.         echo "
  619.                     ";
  620.         // line 378
  621.         echo "                    ";
  622.         if ( !twig_test_empty(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'378$this->source); })()), "ProductCategories", [], "any"falsefalsefalse378))) {
  623.             // line 379
  624.             echo "                        <div style = \"font-size:80%; style = \"border:0;\" class=\"ec-productRole__category\">
  625.                             ";
  626.             // line 380
  627.             $context['_parent'] = $context;
  628.             $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'380$this->source); })()), "ProductCategories", [], "any"falsefalsefalse380));
  629.             foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
  630.                 // line 381
  631.                 echo "                                ";
  632.                 if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductCategory"], "Category", [], "any"falsefalsefalse381), "Children", [], "any"falsefalsefalse381), "snapshot", [], "any"falsefalsefalse381) == null)) {
  633.                     // line 382
  634.                     echo "                                    <ol style = \"list-style: none;margin:0;padding:0.4em;;\">
  635.                                         <li style = \"list-style: none;margin:0;padding:0;\" class=\"breadcrumb-item\">
  636.                                             ";
  637.                     // line 384
  638.                     $context['_parent'] = $context;
  639.                     $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductCategory"], "Category", [], "any"falsefalsefalse384), "path", [], "any"falsefalsefalse384));
  640.                     $context['loop'] = [
  641.                       'parent' => $context['_parent'],
  642.                       'index0' => 0,
  643.                       'index'  => 1,
  644.                       'first'  => true,
  645.                     ];
  646.                     if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  647.                         $length count($context['_seq']);
  648.                         $context['loop']['revindex0'] = $length 1;
  649.                         $context['loop']['revindex'] = $length;
  650.                         $context['loop']['length'] = $length;
  651.                         $context['loop']['last'] = === $length;
  652.                     }
  653.                     foreach ($context['_seq'] as $context["_key"] => $context["Category"]) {
  654.                         // line 385
  655.                         echo "                                                <a href=\"";
  656.                         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  657.                         echo "?category_id=";
  658.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "id", [], "any"falsefalsefalse385), "html"nulltrue);
  659.                         echo "\" class=\"text-secondary\">";
  660.                         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "name", [], "any"falsefalsefalse385), "html"nulltrue);
  661.                         echo "</a>";
  662.                         if ((twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse385) == false)) {
  663.                             // line 386
  664.                             echo "                                                <span>/</span>";
  665.                         }
  666.                         ++$context['loop']['index0'];
  667.                         ++$context['loop']['index'];
  668.                         $context['loop']['first'] = false;
  669.                         if (isset($context['loop']['length'])) {
  670.                             --$context['loop']['revindex0'];
  671.                             --$context['loop']['revindex'];
  672.                             $context['loop']['last'] = === $context['loop']['revindex0'];
  673.                         }
  674.                     }
  675.                     $_parent $context['_parent'];
  676.                     unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category'], $context['_parent'], $context['loop']);
  677.                     $context array_intersect_key($context$_parent) + $_parent;
  678.                     // line 388
  679.                     echo "                                        </li>
  680.                                     </ol>
  681.                                 ";
  682.                 }
  683.                 // line 391
  684.                 echo "                            ";
  685.             }
  686.             $_parent $context['_parent'];
  687.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
  688.             $context array_intersect_key($context$_parent) + $_parent;
  689.             // line 392
  690.             echo "                        </div>
  691.                     ";
  692.         }
  693.         // line 394
  694.         echo "
  695.                     ";
  696.         // line 396
  697.         echo "                    <ul class=\"ec-productRole__tags\">
  698.                         ";
  699.         // line 397
  700.         $context['_parent'] = $context;
  701.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'397$this->source); })()), "Tags", [], "any"falsefalsefalse397));
  702.         foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
  703.             // line 398
  704.             echo "                            <li class=\"ec-productRole__tag tag_";
  705.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Tag"], "id", [], "any"falsefalsefalse398), "html"nulltrue);
  706.             echo "\">";
  707.             echo twig_escape_filter($this->env$context["Tag"], "html"nulltrue);
  708.             echo "</li>
  709.                         ";
  710.         }
  711.         $_parent $context['_parent'];
  712.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
  713.         $context array_intersect_key($context$_parent) + $_parent;
  714.         // line 400
  715.         echo "                    </ul>
  716.                     ";
  717.         // line 402
  718.         echo "                    <div class=\"ec-productRole__title\" style = \"border:0;\">
  719.                         <h2 class=\"ec-headingTitle\" style = \"border:0;\">";
  720.         // line 403
  721.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'403$this->source); })()), "name", [], "any"falsefalsefalse403), "html"nulltrue);
  722.         echo "</h2>
  723.                     </div>
  724.                     ";
  725.         // line 407
  726.         echo "                    <div class=\"ec-productRole__description\" style = \"margin-top:1em;\">";
  727.         echo twig_nl2br(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'407$this->source); })()), "description_detail", [], "any"falsefalsefalse407));
  728.         echo "
  729.                     </div>
  730.                     ";
  731.         // line 411
  732.         echo "                    ";
  733.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'411$this->source); })()), "hasProductClass", [], "any"falsefalsefalse411)) {
  734.             // line 412
  735.             echo "<div class=\"ec-productRole__priceRegular\">
  736.                             ";
  737.             // line 413
  738.             if (( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'413$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse413)) && (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'413$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse413) == twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'413$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse413)))) {
  739.                 // line 414
  740.                 echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  741.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  742.                 echo ":<span class=\"price01-default\">";
  743.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'414$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse414)), "html"nulltrue);
  744.                 echo "</span></span>
  745.                                 <span class=\"ec-productRole__priceRegularTax\">";
  746.                 // line 415
  747.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  748.                 echo "</span>
  749.                             ";
  750.             } elseif (( !(null === twig_get_attribute($this->env$this->source,             // line 416
  751. (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'416$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse416)) &&  !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'416$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse416)))) {
  752.                 // line 417
  753.                 echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  754.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  755.                 echo ":<span class=\"price01-default\">";
  756.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'417$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse417)), "html"nulltrue);
  757.                 echo "~ ";
  758.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'417$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse417)), "html"nulltrue);
  759.                 echo "</span></span>
  760.                                 <span class=\"ec-productRole__priceRegularTax\">";
  761.                 // line 418
  762.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  763.                 echo "</span>
  764.                             ";
  765.             }
  766.             // line 420
  767.             echo "                        </div>
  768.                     ";
  769.         } else {
  770.             // line 422
  771.             echo "                        ";
  772.             if ( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'422$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse422))) {
  773.                 // line 423
  774.                 echo "                            <span class=\"ec-productRole__priceRegularPrice\">";
  775.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  776.                 echo ":";
  777.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'423$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse423)), "html"nulltrue);
  778.                 echo "</span>
  779.                             <span class=\"ec-productRole__priceRegularTax\">";
  780.                 // line 424
  781.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  782.                 echo "</span>
  783.                         ";
  784.             }
  785.             // line 426
  786.             echo "                    ";
  787.         }
  788.         // line 427
  789.         echo "
  790.                     ";
  791.         // line 429
  792.         echo "                    <div class=\"ec-productRole__price\" style = \"padding-bottom:2em;\">
  793.                         ";
  794.         // line 430
  795.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'430$this->source); })()), "hasProductClass", [], "any"falsefalsefalse430)) {
  796.             // line 431
  797.             if ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'431$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse431) == twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'431$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse431))) {
  798.                 // line 432
  799.                 echo "                                <div class=\"ec-price\">
  800.                                     <span class=\"ec-price__price price02-default\">";
  801.                 // line 433
  802.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'433$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse433)), "html"nulltrue);
  803.                 echo "</span>
  804.                                     <span class=\"ec-price__tax\">";
  805.                 // line 434
  806.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  807.                 echo "</span>
  808.                                 </div>
  809.                             ";
  810.             } else {
  811.                 // line 437
  812.                 echo "                                <div class=\"ec-price\">
  813.                                     <span class=\"ec-price__price price02-default\">";
  814.                 // line 438
  815.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'438$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse438)), "html"nulltrue);
  816.                 echo " ~ ";
  817.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'438$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse438)), "html"nulltrue);
  818.                 echo "</span>
  819.                                     <span class=\"ec-price__tax\">";
  820.                 // line 439
  821.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  822.                 echo "</span>
  823.                                 </div>
  824.                             ";
  825.             }
  826.             // line 442
  827.             echo "                        ";
  828.         } else {
  829.             // line 443
  830.             echo "                            <div class=\"ec-price\" style = \"color:#3c3c44;\">
  831.                                 <span class=\"ec-price__price\" style = \"padding-left:0;\"><small class = \"Biz_ec-price__price\">リース料金</small>";
  832.             // line 444
  833.             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'444$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse444)), "html"nulltrue);
  834.             echo "</span>
  835.                                 <span class=\"ec-price__tax\" style = \"margin-left:-1em;\">";
  836.             // line 445
  837.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("(税込)"), "html"nulltrue);
  838.             echo "</span>
  839.                             </div>
  840.                         ";
  841.         }
  842.         // line 448
  843.         echo "                    </div>
  844.                     ";
  845.         // line 451
  846.         echo "                    <form action=\"";
  847.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_cart", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'451$this->source); })()), "id", [], "any"falsefalsefalse451)]), "html"nulltrue);
  848.         echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  849.                         ";
  850.         // line 452
  851.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'452$this->source); })()), "stock_find", [], "any"falsefalsefalse452)) {
  852.             // line 453
  853.             echo "                            <div class=\"ec-productRole__actions\">
  854.                                 ";
  855.             // line 454
  856.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse454)) {
  857.                 // line 455
  858.                 echo "                                    <div class=\"ec-select\">
  859.                                         ";
  860.                 // line 456
  861.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'456$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse456), 'row');
  862.                 echo "
  863.                                         ";
  864.                 // line 457
  865.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'457$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse457), 'errors');
  866.                 echo "
  867.                                     </div>
  868.                                     ";
  869.                 // line 459
  870.                 if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse459)) {
  871.                     // line 460
  872.                     echo "                                        <div class=\"ec-select\">
  873.                                             ";
  874.                     // line 461
  875.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'461$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse461), 'row');
  876.                     echo "
  877.                                             ";
  878.                     // line 462
  879.                     echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'462$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse462), 'errors');
  880.                     echo "
  881.                                         </div>
  882.                                     ";
  883.                 }
  884.                 // line 465
  885.                 echo "                                ";
  886.             }
  887.             // line 466
  888.             echo "
  889.                                 ";
  890.             // line 468
  891.             echo "                                <div style=\"display:none;!important\" class=\"ec-numberInput\"><span>";
  892.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html"nulltrue);
  893.             echo "</span>
  894.                                     ";
  895.             // line 469
  896.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'469$this->source); })()), "quantity", [], "any"falsefalsefalse469), 'widget');
  897.             echo "
  898.                                     ";
  899.             // line 470
  900.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'470$this->source); })()), "quantity", [], "any"falsefalsefalse470), 'errors');
  901.             echo "
  902.                                 </div>
  903.                                 ";
  904.             // line 473
  905.             echo "                            </div>
  906.                             <div class=\"ec-productRole__btn\">
  907.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  908.                                     ";
  909.             // line 476
  910.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html"nulltrue);
  911.             echo "
  912.                                 </button>
  913.                             </div>
  914.                         ";
  915.         } else {
  916.             // line 480
  917.             echo "                            <div class=\"ec-productRole__btn\">
  918.                                 <button type=\"button\" style = \"color:#333;background:#fff;border:1px solid #ccc;\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  919.                                     ";
  920.             // line 482
  921.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  922.             echo "
  923.                                 </button>
  924.                             </div>
  925.                         ";
  926.         }
  927.         // line 486
  928.         echo "
  929.                         ";
  930.         // line 487
  931.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock((isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'487$this->source); })()), 'rest');
  932.         echo "
  933.                     </form>
  934.                     <div class=\"ec-modal\">
  935.                         <div class=\"ec-modal-overlay\">
  936.                             <div class=\"ec-modal-wrap\">
  937.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
  938.         // line 493
  939.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  940.         echo "\" alt=\"\"/></span></span>
  941.                                 <div id=\"ec-modal-header\" class=\"text-center\">";
  942.         // line 494
  943.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html"nulltrue);
  944.         echo "</div>
  945.                                 <div class=\"ec-modal-box\">
  946.                                     <div class=\"ec-role\">
  947.                                         <span class=\"ec-inlineBtn--cancel\">";
  948.         // line 497
  949.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html"nulltrue);
  950.         echo "</span>
  951.                                         <a href=\"";
  952.         // line 498
  953.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  954.         echo "\" class=\"ec-inlineBtn--action\">";
  955.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html"nulltrue);
  956.         echo "</a>
  957.                                     </div>
  958.                                 </div>
  959.                             </div>
  960.                         </div>
  961.                     </div>
  962.                     ";
  963.         // line 505
  964.         if (twig_get_attribute($this->env$this->source, (isset($context["BaseInfo"]) || array_key_exists("BaseInfo"$context) ? $context["BaseInfo"] : (function () { throw new RuntimeError('Variable "BaseInfo" does not exist.'505$this->source); })()), "option_favorite_product", [], "any"falsefalsefalse505)) {
  965.             // line 506
  966.             echo "                        <form action=\"";
  967.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_favorite", ["id" => twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'506$this->source); })()), "id", [], "any"falsefalsefalse506)]), "html"nulltrue);
  968.             echo "\" method=\"post\">
  969.                             <div class=\"ec-productRole__btn\">
  970.                                 ";
  971.             // line 508
  972.             if (((isset($context["is_favorite"]) || array_key_exists("is_favorite"$context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.'508$this->source); })()) == false)) {
  973.                 // line 509
  974.                 echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  975.                                         ";
  976.                 // line 510
  977.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html"nulltrue);
  978.                 echo "
  979.                                     </button>
  980.                                 ";
  981.             } else {
  982.                 // line 513
  983.                 echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  984.                                             disabled=\"disabled\">";
  985.                 // line 514
  986.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html"nulltrue);
  987.                 echo "
  988.                                     </button>
  989.                                 ";
  990.             }
  991.             // line 517
  992.             echo "                            </div>
  993.                         </form>
  994.                     ";
  995.         }
  996.         // line 520
  997.         echo "
  998.                     ";
  999.         // line 523
  1000.         echo "                </div>
  1001.             </div>
  1002.         </div>
  1003.         ";
  1004.         // line 526
  1005.         if (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'526$this->source); })()), "freearea", [], "any"falsefalsefalse526)) {
  1006.             // line 527
  1007.             echo "             <div class=\"ec-productRole__description\">
  1008.                  ";
  1009.             // line 528
  1010.             echo twig_include($this->env$contexttwig_template_from_string($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'528$this->source); })()), "freearea", [], "any"falsefalsefalse528)));
  1011.             echo "
  1012.             </div>
  1013.         ";
  1014.         }
  1015.         // line 531
  1016.         echo "    </div>
  1017. ";
  1018.         
  1019.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  1020.         
  1021.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  1022.     }
  1023.     public function getTemplateName()
  1024.     {
  1025.         return "Product/detail.twig";
  1026.     }
  1027.     public function isTraitable()
  1028.     {
  1029.         return false;
  1030.     }
  1031.     public function getDebugInfo()
  1032.     {
  1033.         return array (  1070 => 531,  1064 => 528,  1061 => 527,  1059 => 526,  1054 => 523,  1051 => 520,  1046 => 517,  1040 => 514,  1037 => 513,  1031 => 510,  1028 => 509,  1026 => 508,  1020 => 506,  1018 => 505,  1006 => 498,  1002 => 497,  996 => 494,  992 => 493,  983 => 487,  980 => 486,  973 => 482,  969 => 480,  962 => 476,  957 => 473,  952 => 470,  948 => 469,  943 => 468,  940 => 466,  937 => 465,  931 => 462,  927 => 461,  924 => 460,  922 => 459,  917 => 457,  913 => 456,  910 => 455,  908 => 454,  905 => 453,  903 => 452,  898 => 451,  894 => 448,  888 => 445,  884 => 444,  881 => 443,  878 => 442,  872 => 439,  866 => 438,  863 => 437,  857 => 434,  853 => 433,  850 => 432,  848 => 431,  846 => 430,  843 => 429,  840 => 427,  837 => 426,  832 => 424,  825 => 423,  822 => 422,  818 => 420,  813 => 418,  804 => 417,  802 => 416,  798 => 415,  791 => 414,  789 => 413,  786 => 412,  783 => 411,  776 => 407,  770 => 403,  767 => 402,  764 => 400,  753 => 398,  749 => 397,  746 => 396,  743 => 394,  739 => 392,  733 => 391,  728 => 388,  713 => 386,  704 => 385,  687 => 384,  683 => 382,  680 => 381,  676 => 380,  673 => 379,  670 => 378,  667 => 376,  665 => 361,  662 => 359,  650 => 356,  647 => 355,  644 => 354,  637 => 348,  618 => 346,  601 => 345,  597 => 343,  586 => 341,  564 => 339,  546 => 338,  538 => 332,  528 => 331,  513 => 325,  509 => 324,  505 => 323,  501 => 322,  497 => 320,  491 => 318,  489 => 317,  484 => 316,  481 => 315,  471 => 313,  457 => 311,  449 => 310,  431 => 309,  426 => 307,  403 => 287,  393 => 280,  363 => 253,  358 => 250,  349 => 244,  345 => 242,  343 => 241,  340 => 240,  331 => 234,  327 => 232,  325 => 231,  259 => 167,  251 => 165,  249 => 164,  244 => 162,  241 => 161,  239 => 160,  225 => 149,  222 => 148,  212 => 147,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  1034.     }
  1035.     public function getSourceContext()
  1036.     {
  1037.         return new Source("{#
  1038. This file is part of EC-CUBE
  1039. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  1040. http://www.ec-cube.co.jp/
  1041. For the full copyright and license information, please view the LICENSE
  1042. file that was distributed with this source code.
  1043. #}
  1044. {% extends 'default_frame.twig' %}
  1045. {% set body_class = 'product_page' %}
  1046. {% block stylesheet %}
  1047.     <style>
  1048.         .slick-slider {
  1049.             margin-bottom: 30px;
  1050.         }
  1051.         .slick-dots {
  1052.             position: absolute;
  1053.             bottom: -45px;
  1054.             display: block;
  1055.             width: 100%;
  1056.             padding: 0;
  1057.             list-style: none;
  1058.             text-align: center;
  1059.         }
  1060.         .slick-dots li {
  1061.             position: relative;
  1062.             display: inline-block;
  1063.             width: 20px;
  1064.             height: 20px;
  1065.             margin: 0 5px;
  1066.             padding: 0;
  1067.             cursor: pointer;
  1068.         }
  1069.         .slick-dots li button {
  1070.             font-size: 0;
  1071.             line-height: 0;
  1072.             display: block;
  1073.             width: 20px;
  1074.             height: 20px;
  1075.             padding: 5px;
  1076.             cursor: pointer;
  1077.             color: transparent;
  1078.             border: 0;
  1079.             outline: none;
  1080.             background: transparent;
  1081.         }
  1082.         .slick-dots li button:hover,
  1083.         .slick-dots li button:focus {
  1084.             outline: none;
  1085.         }
  1086.         .slick-dots li button:hover:before,
  1087.         .slick-dots li button:focus:before {
  1088.             opacity: 1;
  1089.         }
  1090.         .slick-dots li button:before {
  1091.             content: \" \";
  1092.             line-height: 20px;
  1093.             position: absolute;
  1094.             top: 0;
  1095.             left: 0;
  1096.             width: 12px;
  1097.             height: 12px;
  1098.             text-align: center;
  1099.             opacity: .25;
  1100.             background-color: black;
  1101.             border-radius: 50%;
  1102.         }
  1103.         .slick-dots li.slick-active button:before {
  1104.             opacity: .75;
  1105.             background-color: black;
  1106.         }
  1107.         .slick-dots li button.thumbnail img {
  1108.             width: 0;
  1109.             height: 0;
  1110.         }
  1111.         /*設定価格*/
  1112.         .Biz_Pricing{
  1113.         line-height:1;
  1114.         font-size:16px;
  1115.         padding-left:1em;
  1116.         }
  1117.         .Biz_Pricing_price{
  1118.         font-size:14px;
  1119.         padding:8px 16px;
  1120.         border-radius:4px;
  1121.         /* border:1px solid #333; */
  1122.         background-color: rgb(244, 238, 222);
  1123.         }
  1124.         /*価格*/
  1125.         .Biz_ec-price__price{
  1126.         font-size:14px;
  1127.         line-height:1;
  1128.         padding:8px 16px;
  1129.         border-radius:4px;
  1130.         border:1px solid #282828;
  1131.         vertical-align: middle;
  1132.         /* background-color: rgb(244, 238, 222);*/
  1133.         }
  1134.         /*フリーエリア寸法表*/
  1135.         .size_dimension{}
  1136.         .size_dimension__Title{
  1137.         text-algn:center;
  1138.         font-size:1.4rem;
  1139.         margin:1em auto;
  1140.         }
  1141.         .size_dimension table {
  1142.         background-color: #fff;
  1143.         border-collapse: collapse;
  1144.         width:  100%;
  1145.         white-space: nowrap; */
  1146.         table-layout: fixed;
  1147.         min-width: 460px;
  1148.         }
  1149.         .size_dimension th {
  1150.         background-color: rgb(244, 238, 222);
  1151.         }
  1152.         .size_dimension th,.size_dimension td {
  1153.         border: solid 1px #ececec;
  1154.         padding: 5px 10px;
  1155.         text-align:center;
  1156.         }
  1157.         .table-wrap {
  1158.         overflow-x: scroll;
  1159.         }
  1160.     </style>
  1161. {% endblock %}
  1162. {% block javascript %}
  1163.     <script>
  1164.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  1165.         // 規格2に選択肢を割り当てる。
  1166.         function fnSetClassCategories(form, classcat_id2_selected) {
  1167.             var \$form = \$(form);
  1168.             var product_id = \$form.find('input[name=product_id]').val();
  1169.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  1170.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  1171.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  1172.         }
  1173.         {% if form.classcategory_id2 is defined %}
  1174.         fnSetClassCategories(
  1175.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  1176.         );
  1177.         {% elseif form.classcategory_id1 is defined %}
  1178.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  1179.         {% endif %}
  1180.     </script>
  1181.     <script>
  1182.         \$(function() {
  1183.             // bfcache無効化
  1184.             \$(window).bind('pageshow', function(event) {
  1185.                 if (event.originalEvent.persisted) {
  1186.                     location.reload(true);
  1187.                 }
  1188.             });
  1189.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  1190.             // img タグに width, height が付与されている.
  1191.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  1192.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  1193.             \$('.ec-grid2__cell').hide();
  1194.             var removeSize = function () {
  1195.                 \$('.slide-item').height('');
  1196.                 \$('.slide-item img')
  1197.                     .removeAttr('width')
  1198.                     .removeAttr('height')
  1199.                     .removeAttr('style');
  1200.             };
  1201.             var slickInitial = function(slick) {
  1202.                 \$('.ec-grid2__cell').fadeIn(1500);
  1203.                 var baseHeight = \$(slick.target).height();
  1204.                 var baseWidth = \$(slick.target).width();
  1205.                 var rate = baseWidth / baseHeight;
  1206.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  1207.                 // transform を使用することでCLSの影響を受けないようにする
  1208.                 \$('.slide-item img')
  1209.                     .css(
  1210.                         {
  1211.                             'transform-origin': 'top left',
  1212.                             'transform': 'scaleY(' + rate + ')',
  1213.                             'transition': 'transform .1s'
  1214.                         }
  1215.                     );
  1216.                 // 正しいサイズに近くなったら属性を解除する
  1217.                 setTimeout(removeSize, 500);
  1218.             };
  1219.             \$('.item_visual').on('init', slickInitial);
  1220.             // リサイズ時は CLS の影響を受けないため属性を解除する
  1221.             \$(window).resize(removeSize);
  1222.             \$('.item_visual').slick({
  1223.                 dots: false,
  1224.                 arrows: false,
  1225.                 responsive: [{
  1226.                     breakpoint: 768,
  1227.                     settings: {
  1228.                         dots: true
  1229.                     }
  1230.                 }]
  1231.             });
  1232.             \$('.slideThumb').on('click', function() {
  1233.                 var index = \$(this).attr('data-index');
  1234.                 \$('.item_visual').slick('slickGoTo', index, false);
  1235.             })
  1236.         });
  1237.     </script>
  1238.     <script>
  1239.         \$(function() {
  1240.             \$('.add-cart').on('click', function(event) {
  1241.                 {% if form.classcategory_id1 is defined %}
  1242.                 // 規格1フォームの必須チェック
  1243.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  1244.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1245.                     return true;
  1246.                 } else {
  1247.                     \$('#classcategory_id1')[0].setCustomValidity('');
  1248.                 }
  1249.                 {% endif %}
  1250.                 {% if form.classcategory_id2 is defined %}
  1251.                 // 規格2フォームの必須チェック
  1252.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1253.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1254.                     return true;
  1255.                 } else {
  1256.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1257.                 }
  1258.                 {% endif %}
  1259.                 // 個数フォームのチェック
  1260.                 if (\$('#quantity').val() < 1) {
  1261.                     \$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
  1262.                     return true;
  1263.                 } else {
  1264.                     \$('#quantity')[0].setCustomValidity('');
  1265.                 }
  1266.                 event.preventDefault();
  1267.                 \$form = \$('#form1');
  1268.                 \$.ajax({
  1269.                     url: \$form.attr('action'),
  1270.                     type: \$form.attr('method'),
  1271.                     data: \$form.serialize(),
  1272.                     dataType: 'json',
  1273.                     beforeSend: function(xhr, settings) {
  1274.                         // Buttonを無効にする
  1275.                         \$('.add-cart').prop('disabled', true);
  1276.                     }
  1277.                 }).done(function(data) {
  1278.                     // レスポンス内のメッセージをalertで表示
  1279.                     \$.each(data.messages, function() {
  1280.                         \$('#ec-modal-header').text(this);
  1281.                     });
  1282.                     \$('.ec-modal').show()
  1283.                     // カートブロックを更新する
  1284.                     \$.ajax({
  1285.                         url: \"{{ url('block_cart') }}\",
  1286.                         type: 'GET',
  1287.                         dataType: 'html'
  1288.                     }).done(function(html) {
  1289.                         \$('.ec-headerRole__cart').html(html);
  1290.                     });
  1291.                 }).fail(function(data) {
  1292.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  1293.                 }).always(function(data) {
  1294.                     // Buttonを有効にする
  1295.                     \$('.add-cart').prop('disabled', false);
  1296.                 });
  1297.             });
  1298.         });
  1299.         \$('.ec-modal-wrap').on('click', function(e) {
  1300.             // モーダル内の処理は外側にバブリングさせない
  1301.             e.stopPropagation();
  1302.         });
  1303.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1304.             \$('.ec-modal').hide()
  1305.         });
  1306.     </script>
  1307.     <script type=\"application/ld+json\">
  1308.     {
  1309.         \"@context\": \"https://schema.org/\",
  1310.         \"@type\": \"Product\",
  1311.         \"name\": \"{{ Product.name }}\",
  1312.         \"image\": [
  1313.             {% for img in Product.ProductImage %}
  1314.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1315.             {% else %}
  1316.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1317.             {% endfor %}
  1318.         ],
  1319.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1320.         {% if Product.code_min %}
  1321.         \"sku\": \"{{ Product.code_min }}\",
  1322.         {% endif %}
  1323.         \"offers\": {
  1324.             \"@type\": \"Offer\",
  1325.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1326.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1327.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  1328.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1329.         }
  1330.     }
  1331.     </script>
  1332. {% endblock %}
  1333. {% block main %}
  1334.     <div class=\"ec-productRole\">
  1335.         <div class=\"ec-grid2\">
  1336.             <div class=\"ec-grid2__cell\">
  1337.                 <div class=\"ec-sliderItemRole\">
  1338.                     <div class=\"item_visual\">
  1339.                         {% for ProductImage in Product.ProductImage %}
  1340.                             <div class=\"slide-item\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\" height=\"550\"{% if loop.index > 1 %} loading=\"lazy\"{% endif %}></div>
  1341.                         {% else %}
  1342.                             <div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" width=\"550\" height=\"550\"></div>
  1343.                         {% endfor %}
  1344.                     </div>
  1345.                     <div class=\"item_nav\">
  1346.                         {% for ProductImage in Product.ProductImage %}
  1347.                             <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\" width=\"133\" height=\"133\" loading=\"lazy\"></div>
  1348.                         {% endfor %}
  1349.                     </div>
  1350.                 </div>
  1351.             </div>
  1352.             <div class=\"ec-grid2__cell\">
  1353.                 <div class=\"ec-productRole__profile\">
  1354.                  {# 商品コード #}
  1355.                     {% if Product.code_min is not empty %}
  1356.                         <div class=\"ec-productRole__code\" style = \"font-size:80%;padding-top:.2em;\">
  1357.                             {{ '商品コード'|trans }}: <span class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
  1358.                         </div>
  1359.                     {% endif %}
  1360.                     {# 関連カテゴリ #}
  1361.                     {# {% if Product.ProductCategories is not empty %}
  1362.                         <div class=\"ec-productRole__category\">
  1363.                             <div>{{ '関連カテゴリ'|trans }}</div>
  1364.                             {% for ProductCategory in Product.ProductCategories %}
  1365.                                 <ul>
  1366.                                     <li>
  1367.                                         {% for Category in ProductCategory.Category.path %}
  1368.                                             <a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">{{ Category.name }}</a> {%- if loop.last == false %}
  1369.                                             <span>></span>{% endif -%}
  1370.                                         {% endfor %}
  1371.                                     </li>
  1372.                                 </ul>
  1373.                             {% endfor %}
  1374.                         </div>
  1375.                     {% endif %} #}
  1376.                     {# 関連カテゴリ カスタム#}
  1377.                     {% if Product.ProductCategories is not empty %}
  1378.                         <div style = \"font-size:80%; style = \"border:0;\" class=\"ec-productRole__category\">
  1379.                             {% for ProductCategory in Product.ProductCategories %}
  1380.                                 {% if (ProductCategory.Category.Children.snapshot == null) %}
  1381.                                     <ol style = \"list-style: none;margin:0;padding:0.4em;;\">
  1382.                                         <li style = \"list-style: none;margin:0;padding:0;\" class=\"breadcrumb-item\">
  1383.                                             {% for Category in ProductCategory.Category.path %}
  1384.                                                 <a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\" class=\"text-secondary\">{{ Category.name }}</a> {%- if loop.last == false %}
  1385.                                                 <span>/</span>{% endif -%}
  1386.                                             {% endfor %}
  1387.                                         </li>
  1388.                                     </ol>
  1389.                                 {% endif %}
  1390.                             {% endfor %}
  1391.                         </div>
  1392.                     {% endif %}
  1393.                     {# タグ #}
  1394.                     <ul class=\"ec-productRole__tags\">
  1395.                         {% for Tag in Product.Tags %}
  1396.                             <li class=\"ec-productRole__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
  1397.                         {% endfor %}
  1398.                     </ul>
  1399.                     {# 商品名 #}
  1400.                     <div class=\"ec-productRole__title\" style = \"border:0;\">
  1401.                         <h2 class=\"ec-headingTitle\" style = \"border:0;\">{{ Product.name }}</h2>
  1402.                     </div>
  1403.                     {# 商品説明#}
  1404.                     <div class=\"ec-productRole__description\" style = \"margin-top:1em;\">{{ Product.description_detail|raw|nl2br }}
  1405.                     </div>
  1406.                     {# 通常価格 #}
  1407.                     {% if Product.hasProductClass -%}
  1408.                         <div class=\"ec-productRole__priceRegular\">
  1409.                             {% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
  1410.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}</span></span>
  1411.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1412.                             {% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
  1413.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}~ {{ Product.getPrice01IncTaxMax|price }}</span></span>
  1414.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1415.                             {% endif %}
  1416.                         </div>
  1417.                     {% else %}
  1418.                         {% if Product.getPrice01Max is not null %}
  1419.                             <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:{{ Product.getPrice01IncTaxMin|price }}</span>
  1420.                             <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1421.                         {% endif %}
  1422.                     {% endif %}
  1423.                     {# 販売価格 #}
  1424.                     <div class=\"ec-productRole__price\" style = \"padding-bottom:2em;\">
  1425.                         {% if Product.hasProductClass -%}
  1426.                             {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
  1427.                                 <div class=\"ec-price\">
  1428.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span>
  1429.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1430.                                 </div>
  1431.                             {% else %}
  1432.                                 <div class=\"ec-price\">
  1433.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span>
  1434.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1435.                                 </div>
  1436.                             {% endif %}
  1437.                         {% else %}
  1438.                             <div class=\"ec-price\" style = \"color:#3c3c44;\">
  1439.                                 <span class=\"ec-price__price\" style = \"padding-left:0;\"><small class = \"Biz_ec-price__price\">リース料金</small>{{ Product.getPrice02IncTaxMin|price }}</span>
  1440.                                 <span class=\"ec-price__tax\" style = \"margin-left:-1em;\">{{ '(税込)'|trans }}</span>
  1441.                             </div>
  1442.                         {% endif %}
  1443.                     </div>
  1444.                     {# カート追加 #}
  1445.                     <form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  1446.                         {% if Product.stock_find %}
  1447.                             <div class=\"ec-productRole__actions\">
  1448.                                 {% if form.classcategory_id1 is defined %}
  1449.                                     <div class=\"ec-select\">
  1450.                                         {{ form_row(form.classcategory_id1) }}
  1451.                                         {{ form_errors(form.classcategory_id1) }}
  1452.                                     </div>
  1453.                                     {% if form.classcategory_id2 is defined %}
  1454.                                         <div class=\"ec-select\">
  1455.                                             {{ form_row(form.classcategory_id2) }}
  1456.                                             {{ form_errors(form.classcategory_id2) }}
  1457.                                         </div>
  1458.                                     {% endif %}
  1459.                                 {% endif %}
  1460.                                 {# 数量フォームを非表示▼ #}
  1461.                                 <div style=\"display:none;!important\" class=\"ec-numberInput\"><span>{{ '数量'|trans }}</span>
  1462.                                     {{ form_widget(form.quantity) }}
  1463.                                     {{ form_errors(form.quantity) }}
  1464.                                 </div>
  1465.                                 {# 数量フォームを非表示▲ #}
  1466.                             </div>
  1467.                             <div class=\"ec-productRole__btn\">
  1468.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  1469.                                     {{ 'カートに入れる'|trans }}
  1470.                                 </button>
  1471.                             </div>
  1472.                         {% else %}
  1473.                             <div class=\"ec-productRole__btn\">
  1474.                                 <button type=\"button\" style = \"color:#333;background:#fff;border:1px solid #ccc;\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1475.                                     {{ 'ただいま品切れ中です。'|trans }}
  1476.                                 </button>
  1477.                             </div>
  1478.                         {% endif %}
  1479.                         {{ form_rest(form) }}
  1480.                     </form>
  1481.                     <div class=\"ec-modal\">
  1482.                         <div class=\"ec-modal-overlay\">
  1483.                             <div class=\"ec-modal-wrap\">
  1484.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  1485.                                 <div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
  1486.                                 <div class=\"ec-modal-box\">
  1487.                                     <div class=\"ec-role\">
  1488.                                         <span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
  1489.                                         <a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
  1490.                                     </div>
  1491.                                 </div>
  1492.                             </div>
  1493.                         </div>
  1494.                     </div>
  1495.                     {% if BaseInfo.option_favorite_product %}
  1496.                         <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  1497.                             <div class=\"ec-productRole__btn\">
  1498.                                 {% if is_favorite == false %}
  1499.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  1500.                                         {{ 'お気に入りに追加'|trans }}
  1501.                                     </button>
  1502.                                 {% else %}
  1503.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  1504.                                             disabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
  1505.                                     </button>
  1506.                                 {% endif %}
  1507.                             </div>
  1508.                         </form>
  1509.                     {% endif %}
  1510.                     {# <div class=\"ec-productRole__description\">{{ Product.description_detail|raw|nl2br }}
  1511.                     </div> #}
  1512.                 </div>
  1513.             </div>
  1514.         </div>
  1515.         {% if Product.freearea %}
  1516.              <div class=\"ec-productRole__description\">
  1517.                  {{ include(template_from_string(Product.freearea)) }}
  1518.             </div>
  1519.         {% endif %}
  1520.     </div>
  1521. {% endblock %}
  1522. ""Product/detail.twig""/home/xs072418/officelotion.net/public_html/wyb/app/template/anivbtob/Product/detail.twig");
  1523.     }
  1524. }