var/cache/dev/twig/f6/f6655f191cd7d2dd89c4623575321e3b.php line 781

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. /* @SDream/Product/detail.twig */
  14. class __TwigTemplate_2657683ff746a06e79fce8a089636878 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_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@SDream/Product/detail.twig"));
  38.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@SDream/Product/detail.twig"));
  40.         // line 13
  41.         $context["body_class"] = "product_page";
  42.         // line 11
  43.         $this->parent $this->loadTemplate("default_frame.twig""@SDream/Product/detail.twig"11);
  44.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  45.         
  46.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  47.         
  48.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  49.     }
  50.     // line 15
  51.     public function block_stylesheet($context, array $blocks = [])
  52.     {
  53.         $macros $this->macros;
  54.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  55.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  56.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  57.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_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.     </style>
  124. ";
  125.         
  126.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  127.         
  128.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  129.     }
  130.     // line 95
  131.     public function block_javascript($context, array $blocks = [])
  132.     {
  133.         $macros $this->macros;
  134.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  135.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  136.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  137.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  138.         // line 96
  139.         echo "    <script>
  140.         eccube.classCategories = ";
  141.         // line 97
  142.         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.'97$this->source); })()));
  143.         echo ";
  144.         // 規格2に選択肢を割り当てる。
  145.         function fnSetClassCategories(form, classcat_id2_selected) {
  146.             var \$form = \$(form);
  147.             var product_id = \$form.find('input[name=product_id]').val();
  148.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  149.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  150.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  151.         }
  152.         ";
  153.         // line 108
  154.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse108)) {
  155.             // line 109
  156.             echo "        fnSetClassCategories(
  157.             \$('#form1'), ";
  158.             // line 110
  159.             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.'110$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse110), "vars", [], "any"falsefalsefalse110), "value", [], "any"falsefalsefalse110));
  160.             echo "
  161.         );
  162.         ";
  163.         } elseif (twig_get_attribute($this->env$this->source,         // line 112
  164. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse112)) {
  165.             // line 113
  166.             echo "        eccube.checkStock(\$('#form1'), ";
  167.             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.'113$this->source); })()), "id", [], "any"falsefalsefalse113), "html"nulltrue);
  168.             echo ", ";
  169.             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.'113$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse113), "vars", [], "any"falsefalsefalse113), "value", [], "any"falsefalsefalse113));
  170.             echo ", null);
  171.         ";
  172.         }
  173.         // line 115
  174.         echo "    </script>
  175.     <script>
  176.         \$(function() {
  177.             // bfcache無効化
  178.             \$(window).bind('pageshow', function(event) {
  179.                 if (event.originalEvent.persisted) {
  180.                     location.reload(true);
  181.                 }
  182.             });
  183.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  184.             // img タグに width, height が付与されている.
  185.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  186.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  187.             \$('.ec-grid2__cell').hide();
  188.             var removeSize = function () {
  189.                 \$('.slide-item').height('');
  190.                 \$('.slide-item img')
  191.                     .removeAttr('width')
  192.                     .removeAttr('height')
  193.                     .removeAttr('style');
  194.             };
  195.             var slickInitial = function(slick) {
  196.                 \$('.ec-grid2__cell').fadeIn(1500);
  197.                 var baseHeight = \$(slick.target).height();
  198.                 var baseWidth = \$(slick.target).width();
  199.                 var rate = baseWidth / baseHeight;
  200.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  201.                 // transform を使用することでCLSの影響を受けないようにする
  202.                 \$('.slide-item img')
  203.                     .css(
  204.                         {
  205.                             'transform-origin': 'top left',
  206.                             'transform': 'scaleY(' + rate + ')',
  207.                             'transition': 'transform .1s'
  208.                         }
  209.                     );
  210.                 // 正しいサイズに近くなったら属性を解除する
  211.                 setTimeout(removeSize, 500);
  212.             };
  213.             \$('.item_visual').on('init', slickInitial);
  214.             // リサイズ時は CLS の影響を受けないため属性を解除する
  215.             \$(window).resize(removeSize);
  216.             \$('.item_visual').slick({
  217.                 dots: false,
  218.                 arrows: false,
  219.                 responsive: [{
  220.                     breakpoint: 768,
  221.                     settings: {
  222.                         dots: true
  223.                     }
  224.                 }]
  225.             });
  226.             \$('.slideThumb').on('click', function() {
  227.                 var index = \$(this).attr('data-index');
  228.                 \$('.item_visual').slick('slickGoTo', index, false);
  229.             })
  230.         });
  231.     </script>
  232.     <script>
  233.         \$(function() {
  234.             \$('.add-cart').on('click', function(event) {
  235.                 ";
  236.         // line 179
  237.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse179)) {
  238.             // line 180
  239.             echo "                // 規格1フォームの必須チェック
  240.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  241.                     \$('#classcategory_id1')[0].setCustomValidity('";
  242.             // line 182
  243.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  244.             echo "');
  245.                     return true;
  246.                 } else {
  247.                     \$('#classcategory_id1')[0].setCustomValidity('');
  248.                 }
  249.                 ";
  250.         }
  251.         // line 188
  252.         echo "
  253.                 ";
  254.         // line 189
  255.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse189)) {
  256.             // line 190
  257.             echo "                // 規格2フォームの必須チェック
  258.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  259.                     \$('#classcategory_id2')[0].setCustomValidity('";
  260.             // line 192
  261.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  262.             echo "');
  263.                     return true;
  264.                 } else {
  265.                     \$('#classcategory_id2')[0].setCustomValidity('');
  266.                 }
  267.                 ";
  268.         }
  269.         // line 198
  270.         echo "
  271.                 // 個数フォームのチェック
  272.                 if (\$('#quantity').val() < 1) {
  273.                     \$('#quantity')[0].setCustomValidity('";
  274.         // line 201
  275.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html"nulltrue);
  276.         echo "');
  277.                     return true;
  278.                 } else {
  279.                     \$('#quantity')[0].setCustomValidity('');
  280.                 }
  281.                 event.preventDefault();
  282.                 \$form = \$('#form1');
  283.                 \$.ajax({
  284.                     url: \$form.attr('action'),
  285.                     type: \$form.attr('method'),
  286.                     data: \$form.serialize(),
  287.                     dataType: 'json',
  288.                     beforeSend: function(xhr, settings) {
  289.                         // Buttonを無効にする
  290.                         \$('.add-cart').prop('disabled', true);
  291.                     }
  292.                 }).done(function(data) {
  293.                     // レスポンス内のメッセージをalertで表示
  294.                     \$.each(data.messages, function() {
  295.                         \$('#ec-modal-header').text(this);
  296.                     });
  297.                     \$('.ec-modal').show()
  298.                     // カートブロックを更新する
  299.                     \$.ajax({
  300.                         url: \"";
  301.         // line 228
  302.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  303.         echo "\",
  304.                         type: 'GET',
  305.                         dataType: 'html'
  306.                     }).done(function(html) {
  307.                         \$('.ec-headerRole__cart').html(html);
  308.                     });
  309.                 }).fail(function(data) {
  310.                     alert('";
  311.         // line 235
  312.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html"nulltrue);
  313.         echo "');
  314.                 }).always(function(data) {
  315.                     // Buttonを有効にする
  316.                     \$('.add-cart').prop('disabled', false);
  317.                 });
  318.             });
  319.         });
  320.         \$('.ec-modal-wrap').on('click', function(e) {
  321.             // モーダル内の処理は外側にバブリングさせない
  322.             e.stopPropagation();
  323.         });
  324.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  325.             \$('.ec-modal').hide()
  326.         });
  327.     </script>
  328.     <script type=\"application/ld+json\">
  329.     {
  330.         \"@context\": \"https://schema.org/\",
  331.         \"@type\": \"Product\",
  332.         \"name\": \"";
  333.         // line 255
  334.         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.'255$this->source); })()), "name", [], "any"falsefalsefalse255), "html"nulltrue);
  335.         echo "\",
  336.         \"image\": [
  337.             ";
  338.         // line 257
  339.         $context['_parent'] = $context;
  340.         $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.'257$this->source); })()), "ProductImage", [], "any"falsefalsefalse257));
  341.         $context['_iterated'] = false;
  342.         $context['loop'] = [
  343.           'parent' => $context['_parent'],
  344.           'index0' => 0,
  345.           'index'  => 1,
  346.           'first'  => true,
  347.         ];
  348.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  349.             $length count($context['_seq']);
  350.             $context['loop']['revindex0'] = $length 1;
  351.             $context['loop']['revindex'] = $length;
  352.             $context['loop']['length'] = $length;
  353.             $context['loop']['last'] = === $length;
  354.         }
  355.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  356.             // line 258
  357.             echo "                \"";
  358.             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.'258$this->source); })()), "request", [], "any"falsefalsefalse258), "schemeAndHttpHost", [], "any"falsefalsefalse258), "html"nulltrue);
  359.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  360.             echo "\"";
  361.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse258)) {
  362.                 echo ",";
  363.             }
  364.             // line 259
  365.             echo "
  366.             ";
  367.             $context['_iterated'] = true;
  368.             ++$context['loop']['index0'];
  369.             ++$context['loop']['index'];
  370.             $context['loop']['first'] = false;
  371.             if (isset($context['loop']['length'])) {
  372.                 --$context['loop']['revindex0'];
  373.                 --$context['loop']['revindex'];
  374.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  375.             }
  376.         }
  377.         if (!$context['_iterated']) {
  378.             // line 261
  379.             echo "                \"";
  380.             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.'261$this->source); })()), "request", [], "any"falsefalsefalse261), "schemeAndHttpHost", [], "any"falsefalsefalse261), "html"nulltrue);
  381.             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);
  382.             echo "\"
  383.             ";
  384.         }
  385.         $_parent $context['_parent'];
  386.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  387.         $context array_intersect_key($context$_parent) + $_parent;
  388.         // line 263
  389.         echo "        ],
  390.         \"description\": \"";
  391.         // line 264
  392.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse264)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse264), 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.'264$this->source); })()), "description_detail", [], "any"falsefalsefalse264))) : (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.'264$this->source); })()), "description_detail", [], "any"falsefalsefalse264))), ["
  393. => """ " => ""]), 0300), "html"nulltrue);
  394.         echo "\",
  395.         ";
  396.         // line 265
  397.         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.'265$this->source); })()), "code_min", [], "any"falsefalsefalse265)) {
  398.             // line 266
  399.             echo "        \"sku\": \"";
  400.             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.'266$this->source); })()), "code_min", [], "any"falsefalsefalse266), "html"nulltrue);
  401.             echo "\",
  402.         ";
  403.         }
  404.         // line 268
  405.         echo "        \"offers\": {
  406.             \"@type\": \"Offer\",
  407.             \"url\": \"";
  408.         // line 270
  409.         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.'270$this->source); })()), "id", [], "any"falsefalsefalse270)]), "html"nulltrue);
  410.         echo "\",
  411.             \"priceCurrency\": \"";
  412.         // line 271
  413.         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.'271$this->source); })()), "currency", [], "any"falsefalsefalse271), "html"nulltrue);
  414.         echo "\",
  415.             \"price\": ";
  416.         // line 272
  417.         ((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.'272$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse272)) ? (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.'272$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse272), "html"nulltrue))) : (print (0)));
  418.         echo ",
  419.             \"availability\": \"";
  420.         // line 273
  421.         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.'273$this->source); })()), "stock_find", [], "any"falsefalsefalse273)) ? ("InStock") : ("OutOfStock"));
  422.         echo "\"
  423.         }
  424.     }
  425.     </script>
  426. ";
  427.         
  428.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  429.         
  430.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  431.     }
  432.     // line 279
  433.     public function block_main($context, array $blocks = [])
  434.     {
  435.         $macros $this->macros;
  436.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  437.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  438.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  439.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  440.         // line 280
  441.         echo "    <div class=\"ec-productRole\">
  442.         <div class=\"ec-grid2\">
  443.             <div class=\"ec-grid2__cell\">
  444.                 <div class=\"ec-sliderItemRole\">
  445. ";
  446.         // line 286
  447.         echo "
  448. ";
  449.         // line 288
  450.         echo $this->extensions['Symfony\Bridge\Twig\Extension\DumpExtension']->dump($this->env$context, (isset($context["eccube_config"]) || array_key_exists("eccube_config"$context) ? $context["eccube_config"] : (function () { throw new RuntimeError('Variable "eccube_config" does not exist.'288$this->source); })()));
  451.         echo "
  452. ";
  453.         // line 289
  454.         echo $this->extensions['Symfony\Bridge\Twig\Extension\DumpExtension']->dump($this->env$contexttwig_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.'289$this->source); })()), "get", [=> "app_mode"], "method"falsefalsefalse289));
  455.         echo "
  456.                     <div class=\"item_visual\">
  457.                     ";
  458.         // line 293
  459.         if ((twig_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.'293$this->source); })()), "app_mode", [], "any"falsefalsefalse293) != "display")) {
  460.             // line 294
  461.             echo "
  462.                         ";
  463.             // line 295
  464.             $context['_parent'] = $context;
  465.             $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.'295$this->source); })()), "ProductImage", [], "any"falsefalsefalse295));
  466.             $context['_iterated'] = false;
  467.             $context['loop'] = [
  468.               'parent' => $context['_parent'],
  469.               'index0' => 0,
  470.               'index'  => 1,
  471.               'first'  => true,
  472.             ];
  473.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  474.                 $length count($context['_seq']);
  475.                 $context['loop']['revindex0'] = $length 1;
  476.                 $context['loop']['revindex'] = $length;
  477.                 $context['loop']['length'] = $length;
  478.                 $context['loop']['last'] = === $length;
  479.             }
  480.             foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  481.                 // line 296
  482.                 echo "                            <div class=\"slide-item\">
  483.                                 <img src=\"";
  484.                 // line 297
  485.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  486.                 echo "\"
  487.                                     alt=\"";
  488.                 // line 298
  489.                 ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse298)) ? (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.'298$this->source); })()), "name", [], "any"falsefalsefalse298), "html"nulltrue))) : (print ("")));
  490.                 echo "\"
  491.                                     width=\"550\"
  492.                                     height=\"550\"
  493.                                     ";
  494.                 // line 301
  495.                 if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse301) > 1)) {
  496.                     echo "loading=\"lazy\"";
  497.                 }
  498.                 echo ">
  499.                             </div>
  500.                         ";
  501.                 $context['_iterated'] = true;
  502.                 ++$context['loop']['index0'];
  503.                 ++$context['loop']['index'];
  504.                 $context['loop']['first'] = false;
  505.                 if (isset($context['loop']['length'])) {
  506.                     --$context['loop']['revindex0'];
  507.                     --$context['loop']['revindex'];
  508.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  509.                 }
  510.             }
  511.             if (!$context['_iterated']) {
  512.                 // line 304
  513.                 echo "                            <div class=\"slide-item\">
  514.                                 <img src=\"";
  515.                 // line 305
  516.                 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);
  517.                 echo "\"
  518.                                     alt=\"";
  519.                 // line 306
  520.                 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.'306$this->source); })()), "name", [], "any"falsefalsefalse306), "html"nulltrue);
  521.                 echo "\"
  522.                                     width=\"550\"
  523.                                     height=\"550\">
  524.                             </div>
  525.                         ";
  526.             }
  527.             $_parent $context['_parent'];
  528.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  529.             $context array_intersect_key($context$_parent) + $_parent;
  530.             // line 311
  531.             echo "
  532.                     ";
  533.         } else {
  534.             // line 313
  535.             echo "
  536.                         ";
  537.             // line 314
  538.             $context['_parent'] = $context;
  539.             $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.'314$this->source); })()), "ProductDisplayImages", [], "any"falsefalsefalse314));
  540.             $context['_iterated'] = false;
  541.             $context['loop'] = [
  542.               'parent' => $context['_parent'],
  543.               'index0' => 0,
  544.               'index'  => 1,
  545.               'first'  => true,
  546.             ];
  547.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  548.                 $length count($context['_seq']);
  549.                 $context['loop']['revindex0'] = $length 1;
  550.                 $context['loop']['revindex'] = $length;
  551.                 $context['loop']['length'] = $length;
  552.                 $context['loop']['last'] = === $length;
  553.             }
  554.             foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  555.                 // line 315
  556.                 echo "                            <div class=\"slide-item\">
  557.                                 <img src=\"";
  558.                 // line 316
  559.                 echo twig_escape_filter($this->env, (twig_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.'316$this->source); })()), "img_folder", [], "any"falsefalsefalse316) . twig_get_attribute($this->env$this->source$context["ProductImage"], "fileName", [], "any"falsefalsefalse316)), "html"nulltrue);
  560.                 echo "\"
  561.                                     alt=\"";
  562.                 // line 317
  563.                 ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse317)) ? (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.'317$this->source); })()), "name", [], "any"falsefalsefalse317), "html"nulltrue))) : (print ("")));
  564.                 echo "\"
  565.                                     width=\"550\"
  566.                                     height=\"550\"
  567.                                     ";
  568.                 // line 320
  569.                 if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse320) > 1)) {
  570.                     echo "loading=\"lazy\"";
  571.                 }
  572.                 echo ">
  573.                             </div>
  574.                         ";
  575.                 $context['_iterated'] = true;
  576.                 ++$context['loop']['index0'];
  577.                 ++$context['loop']['index'];
  578.                 $context['loop']['first'] = false;
  579.                 if (isset($context['loop']['length'])) {
  580.                     --$context['loop']['revindex0'];
  581.                     --$context['loop']['revindex'];
  582.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  583.                 }
  584.             }
  585.             if (!$context['_iterated']) {
  586.                 // line 323
  587.                 echo "                            <div class=\"slide-item ec-productRole__noimage\">
  588.                                 ★画像準備中
  589.                             </div>
  590.                         ";
  591.             }
  592.             $_parent $context['_parent'];
  593.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  594.             $context array_intersect_key($context$_parent) + $_parent;
  595.             // line 327
  596.             echo "
  597.                     ";
  598.         }
  599.         // line 329
  600.         echo "
  601.                     </div>
  602.                     <div class=\"item_nav\">
  603.                     ";
  604.         // line 334
  605.         if ((twig_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.'334$this->source); })()), "app_mode", [], "any"falsefalsefalse334) != "display")) {
  606.             // line 335
  607.             echo "
  608.                         ";
  609.             // line 336
  610.             $context['_parent'] = $context;
  611.             $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.'336$this->source); })()), "ProductImage", [], "any"falsefalsefalse336));
  612.             $context['loop'] = [
  613.               'parent' => $context['_parent'],
  614.               'index0' => 0,
  615.               'index'  => 1,
  616.               'first'  => true,
  617.             ];
  618.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  619.                 $length count($context['_seq']);
  620.                 $context['loop']['revindex0'] = $length 1;
  621.                 $context['loop']['revindex'] = $length;
  622.                 $context['loop']['length'] = $length;
  623.                 $context['loop']['last'] = === $length;
  624.             }
  625.             foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  626.                 // line 337
  627.                 echo "                            <div class=\"slideThumb\" data-index=\"";
  628.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse337), "html"nulltrue);
  629.                 echo "\">
  630.                                 <img src=\"";
  631.                 // line 338
  632.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  633.                 echo "\"
  634.                                     alt=\"\"
  635.                                     width=\"133\"
  636.                                     height=\"133\"
  637.                                     loading=\"lazy\">
  638.                             </div>
  639.                         ";
  640.                 ++$context['loop']['index0'];
  641.                 ++$context['loop']['index'];
  642.                 $context['loop']['first'] = false;
  643.                 if (isset($context['loop']['length'])) {
  644.                     --$context['loop']['revindex0'];
  645.                     --$context['loop']['revindex'];
  646.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  647.                 }
  648.             }
  649.             $_parent $context['_parent'];
  650.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  651.             $context array_intersect_key($context$_parent) + $_parent;
  652.             // line 345
  653.             echo "
  654.                     ";
  655.         } else {
  656.             // line 347
  657.             echo "
  658.                         ";
  659.             // line 348
  660.             $context['_parent'] = $context;
  661.             $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.'348$this->source); })()), "ProductDisplayImages", [], "any"falsefalsefalse348));
  662.             $context['loop'] = [
  663.               'parent' => $context['_parent'],
  664.               'index0' => 0,
  665.               'index'  => 1,
  666.               'first'  => true,
  667.             ];
  668.             if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  669.                 $length count($context['_seq']);
  670.                 $context['loop']['revindex0'] = $length 1;
  671.                 $context['loop']['revindex'] = $length;
  672.                 $context['loop']['length'] = $length;
  673.                 $context['loop']['last'] = === $length;
  674.             }
  675.             foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  676.                 // line 349
  677.                 echo "                            <div class=\"slideThumb\" data-index=\"";
  678.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse349), "html"nulltrue);
  679.                 echo "\">
  680.                                 <img src=\"";
  681.                 // line 350
  682.                 echo twig_escape_filter($this->env, (twig_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.'350$this->source); })()), "img_folder", [], "any"falsefalsefalse350) . twig_get_attribute($this->env$this->source$context["ProductImage"], "fileName", [], "any"falsefalsefalse350)), "html"nulltrue);
  683.                 echo "\"
  684.                                     alt=\"\"
  685.                                     width=\"133\"
  686.                                     height=\"133\"
  687.                                     loading=\"lazy\">
  688.                             </div>
  689.                         ";
  690.                 ++$context['loop']['index0'];
  691.                 ++$context['loop']['index'];
  692.                 $context['loop']['first'] = false;
  693.                 if (isset($context['loop']['length'])) {
  694.                     --$context['loop']['revindex0'];
  695.                     --$context['loop']['revindex'];
  696.                     $context['loop']['last'] = === $context['loop']['revindex0'];
  697.                 }
  698.             }
  699.             $_parent $context['_parent'];
  700.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  701.             $context array_intersect_key($context$_parent) + $_parent;
  702.             // line 357
  703.             echo "
  704.                     ";
  705.         }
  706.         // line 359
  707.         echo "
  708.                     </div>
  709. ";
  710.         // line 362
  711.         echo "                </div>
  712.             </div>
  713.             <div class=\"ec-grid2__cell\">
  714.                 <div class=\"ec-productRole__profile\">
  715.                     ";
  716.         // line 367
  717.         echo "                    <div class=\"ec-productRole__title\">
  718.                         <h2 class=\"ec-headingTitle\">";
  719.         // line 368
  720.         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.'368$this->source); })()), "name", [], "any"falsefalsefalse368), "html"nulltrue);
  721.         echo "</h2>
  722.                     </div>
  723.                     ";
  724.         // line 371
  725.         echo "                    <ul class=\"ec-productRole__tags\">
  726.                         ";
  727.         // line 372
  728.         $context['_parent'] = $context;
  729.         $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.'372$this->source); })()), "Tags", [], "any"falsefalsefalse372));
  730.         foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
  731.             // line 373
  732.             echo "                            <li class=\"ec-productRole__tag tag_";
  733.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Tag"], "id", [], "any"falsefalsefalse373), "html"nulltrue);
  734.             echo "\">";
  735.             echo twig_escape_filter($this->env$context["Tag"], "html"nulltrue);
  736.             echo "</li>
  737.                         ";
  738.         }
  739.         $_parent $context['_parent'];
  740.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
  741.         $context array_intersect_key($context$_parent) + $_parent;
  742.         // line 375
  743.         echo "                    </ul>
  744. ";
  745.         // line 381
  746.         if ((twig_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.'381$this->source); })()), "app_mode", [], "any"falsefalsefalse381) != "display")) {
  747.             // line 382
  748.             echo "                    ";
  749.             // line 383
  750.             echo "                    ";
  751.             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.'383$this->source); })()), "hasProductClass", [], "any"falsefalsefalse383)) {
  752.                 // line 384
  753.                 echo "<div class=\"ec-productRole__priceRegular\">
  754.                             ";
  755.                 // line 385
  756.                 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.'385$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse385)) && (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.'385$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse385) == 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.'385$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse385)))) {
  757.                     // line 386
  758.                     echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  759.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  760.                     echo ":<span class=\"price01-default\">";
  761.                     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.'386$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse386)), "html"nulltrue);
  762.                     echo "</span></span>
  763.                                 <span class=\"ec-productRole__priceRegularTax\">";
  764.                     // line 387
  765.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  766.                     echo "</span>
  767.                             ";
  768.                 } elseif (( !(null === twig_get_attribute($this->env$this->source,                 // line 388
  769. (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'388$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse388)) &&  !(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.'388$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse388)))) {
  770.                     // line 389
  771.                     echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  772.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  773.                     echo ":<span class=\"price01-default\">";
  774.                     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.'389$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse389)), "html"nulltrue);
  775.                     echo "~ ";
  776.                     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.'389$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse389)), "html"nulltrue);
  777.                     echo "</span></span>
  778.                                 <span class=\"ec-productRole__priceRegularTax\">";
  779.                     // line 390
  780.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  781.                     echo "</span>
  782.                             ";
  783.                 }
  784.                 // line 392
  785.                 echo "                        </div>
  786.                     ";
  787.             } else {
  788.                 // line 394
  789.                 echo "                        ";
  790.                 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.'394$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse394))) {
  791.                     // line 395
  792.                     echo "                            <span class=\"ec-productRole__priceRegularPrice\">";
  793.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  794.                     echo ":";
  795.                     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.'395$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse395)), "html"nulltrue);
  796.                     echo "</span>
  797.                             <span class=\"ec-productRole__priceRegularTax\">";
  798.                     // line 396
  799.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  800.                     echo "</span>
  801.                         ";
  802.                 }
  803.                 // line 398
  804.                 echo "                    ";
  805.             }
  806.             // line 399
  807.             echo "                    ";
  808.             // line 400
  809.             echo "                    <div class=\"ec-productRole__price\">
  810.                         ";
  811.             // line 401
  812.             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.'401$this->source); })()), "hasProductClass", [], "any"falsefalsefalse401)) {
  813.                 // line 402
  814.                 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.'402$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse402) == 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.'402$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse402))) {
  815.                     // line 403
  816.                     echo "                                <div class=\"ec-price\">
  817.                                     <span class=\"ec-price__price price02-default\">";
  818.                     // line 404
  819.                     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.'404$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse404)), "html"nulltrue);
  820.                     echo "</span>
  821.                                     <span class=\"ec-price__tax\">";
  822.                     // line 405
  823.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  824.                     echo "</span>
  825.                                 </div>
  826.                             ";
  827.                 } else {
  828.                     // line 408
  829.                     echo "                                <div class=\"ec-price\">
  830.                                     <span class=\"ec-price__price price02-default\">";
  831.                     // line 409
  832.                     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.'409$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse409)), "html"nulltrue);
  833.                     echo " ~ ";
  834.                     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.'409$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse409)), "html"nulltrue);
  835.                     echo "</span>
  836.                                     <span class=\"ec-price__tax\">";
  837.                     // line 410
  838.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  839.                     echo "</span>
  840.                                 </div>
  841.                             ";
  842.                 }
  843.                 // line 413
  844.                 echo "                        ";
  845.             } else {
  846.                 // line 414
  847.                 echo "                            <div class=\"ec-price\">
  848.                                 <span class=\"ec-price__price\">";
  849.                 // line 415
  850.                 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.'415$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse415)), "html"nulltrue);
  851.                 echo "</span>
  852.                                 <span class=\"ec-price__tax\">";
  853.                 // line 416
  854.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  855.                 echo "</span>
  856.                             </div>
  857.                         ";
  858.             }
  859.             // line 419
  860.             echo "                    </div>
  861. ";
  862.         } else {
  863.             // line 421
  864.             echo "    ";
  865.             // line 422
  866.             echo "    <div class=\"ec-productRole__price\">
  867.         ";
  868.             // line 423
  869.             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.'423$this->source); })()), "getPriceSellerInTaxMin", [], "any"falsefalsefalse423))) {
  870.                 // line 424
  871.                 echo "            ";
  872.                 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.'424$this->source); })()), "getPriceSellerInTaxMin", [], "any"falsefalsefalse424) == 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.'424$this->source); })()), "getPriceSellerInTaxMax", [], "any"falsefalsefalse424))) {
  873.                     // line 425
  874.                     echo "                <div class=\"ec-price\">
  875.                     <span class=\"ec-price__price\">
  876.                         ";
  877.                     // line 427
  878.                     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.'427$this->source); })()), "getPriceSellerInTaxMin", [], "any"falsefalsefalse427)), "html"nulltrue);
  879.                     echo "
  880.                     </span>
  881.                     <span class=\"ec-price__tax\">";
  882.                     // line 429
  883.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  884.                     echo "</span>
  885.                 </div>
  886.             ";
  887.                 } else {
  888.                     // line 432
  889.                     echo "                <div class=\"ec-price\">
  890.                     <span class=\"ec-price__price\">
  891.                         ";
  892.                     // line 434
  893.                     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.'434$this->source); })()), "getPriceSellerInTaxMin", [], "any"falsefalsefalse434)), "html"nulltrue);
  894.                     echo "
  895.                         ~
  896.                         ";
  897.                     // line 436
  898.                     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.'436$this->source); })()), "getPriceSellerInTaxMax", [], "any"falsefalsefalse436)), "html"nulltrue);
  899.                     echo "
  900.                     </span>
  901.                     <span class=\"ec-price__tax\">";
  902.                     // line 438
  903.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  904.                     echo "</span>
  905.                 </div>
  906.             ";
  907.                 }
  908.                 // line 441
  909.                 echo "        ";
  910.             }
  911.             // line 442
  912.             echo "    </div>
  913. ";
  914.         }
  915.         // line 446
  916.         echo "                    ";
  917.         // line 447
  918.         echo "                    ";
  919.         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.'447$this->source); })()), "code_min", [], "any"falsefalsefalse447))) {
  920.             // line 448
  921.             echo "                        <div class=\"ec-productRole__code\">
  922.                             ";
  923.             // line 449
  924.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html"nulltrue);
  925.             echo ": <span class=\"product-code-default\">";
  926.             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.'449$this->source); })()), "code_min", [], "any"falsefalsefalse449), "html"nulltrue);
  927.             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.'449$this->source); })()), "code_min", [], "any"falsefalsefalse449) != 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.'449$this->source); })()), "code_max", [], "any"falsefalsefalse449))) {
  928.                 echo " ~ ";
  929.                 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.'449$this->source); })()), "code_max", [], "any"falsefalsefalse449), "html"nulltrue);
  930.             }
  931.             echo "</span>
  932.                         </div>
  933.                     ";
  934.         }
  935.         // line 452
  936.         echo "                    ";
  937.         // line 453
  938.         echo "                    ";
  939.         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.'453$this->source); })()), "ProductCategories", [], "any"falsefalsefalse453))) {
  940.             // line 454
  941.             echo "                        <div class=\"ec-productRole__category\">
  942.                             <div>";
  943.             // line 455
  944.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("関連カテゴリ"), "html"nulltrue);
  945.             echo "</div>
  946. ";
  947.             // line 458
  948.             echo "                            ";
  949.             // line 470
  950.             echo "
  951. ";
  952.             // line 473
  953.             echo "                            
  954.                         ";
  955.             // line 474
  956.             $context['_parent'] = $context;
  957.             $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.'474$this->source); })()), "ProductCategories", [], "any"falsefalsefalse474));
  958.             foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
  959.                 // line 475
  960.                 echo "                            <ul>
  961.                                 <li>
  962.                                     ";
  963.                 // line 477
  964.                 $context['_parent'] = $context;
  965.                 $context['_seq'] = twig_ensure_traversable(twig_slice($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductCategory"], "Category", [], "any"falsefalsefalse477), "path", [], "any"falsefalsefalse477), 1));
  966.                 $context['loop'] = [
  967.                   'parent' => $context['_parent'],
  968.                   'index0' => 0,
  969.                   'index'  => 1,
  970.                   'first'  => true,
  971.                 ];
  972.                 if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  973.                     $length count($context['_seq']);
  974.                     $context['loop']['revindex0'] = $length 1;
  975.                     $context['loop']['revindex'] = $length;
  976.                     $context['loop']['length'] = $length;
  977.                     $context['loop']['last'] = === $length;
  978.                 }
  979.                 foreach ($context['_seq'] as $context["_key"] => $context["Category"]) {
  980.                     // line 478
  981.                     echo "                                        <a href=\"";
  982.                     echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  983.                     echo "?category_id=";
  984.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "id", [], "any"falsefalsefalse478), "html"nulltrue);
  985.                     echo "\">
  986.                                             ";
  987.                     // line 479
  988.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "name", [], "any"falsefalsefalse479), "html"nulltrue);
  989.                     echo "
  990.                                         </a>
  991.                                         ";
  992.                     // line 481
  993.                     if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse481)) {
  994.                         // line 482
  995.                         echo "                                            <span>></span>
  996.                                         ";
  997.                     }
  998.                     // line 484
  999.                     echo "                                    ";
  1000.                     ++$context['loop']['index0'];
  1001.                     ++$context['loop']['index'];
  1002.                     $context['loop']['first'] = false;
  1003.                     if (isset($context['loop']['length'])) {
  1004.                         --$context['loop']['revindex0'];
  1005.                         --$context['loop']['revindex'];
  1006.                         $context['loop']['last'] = === $context['loop']['revindex0'];
  1007.                     }
  1008.                 }
  1009.                 $_parent $context['_parent'];
  1010.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category'], $context['_parent'], $context['loop']);
  1011.                 $context array_intersect_key($context$_parent) + $_parent;
  1012.                 // line 485
  1013.                 echo "                                </li>
  1014.                             </ul>
  1015.                         ";
  1016.             }
  1017.             $_parent $context['_parent'];
  1018.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
  1019.             $context array_intersect_key($context$_parent) + $_parent;
  1020.             // line 489
  1021.             echo "                        </div>
  1022.                     ";
  1023.         }
  1024.         // line 492
  1025.         if ((twig_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.'492$this->source); })()), "app_mode", [], "any"falsefalsefalse492) != "display")) {
  1026.             // line 493
  1027.             echo "                    <form action=\"";
  1028.             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.'493$this->source); })()), "id", [], "any"falsefalsefalse493)]), "html"nulltrue);
  1029.             echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  1030.                         ";
  1031.             // line 494
  1032.             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.'494$this->source); })()), "stock_find", [], "any"falsefalsefalse494)) {
  1033.                 // line 495
  1034.                 echo "                            <div class=\"ec-productRole__actions\">
  1035.                                 ";
  1036.                 // line 496
  1037.                 if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse496)) {
  1038.                     // line 497
  1039.                     echo "                                    <div class=\"ec-select\">
  1040.                                         ";
  1041.                     // line 498
  1042.                     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.'498$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse498), 'row');
  1043.                     echo "
  1044.                                         ";
  1045.                     // line 499
  1046.                     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.'499$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse499), 'errors');
  1047.                     echo "
  1048.                                     </div>
  1049.                                     ";
  1050.                     // line 501
  1051.                     if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse501)) {
  1052.                         // line 502
  1053.                         echo "                                        <div class=\"ec-select\">
  1054.                                             ";
  1055.                         // line 503
  1056.                         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.'503$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse503), 'row');
  1057.                         echo "
  1058.                                             ";
  1059.                         // line 504
  1060.                         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.'504$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse504), 'errors');
  1061.                         echo "
  1062.                                         </div>
  1063.                                     ";
  1064.                     }
  1065.                     // line 507
  1066.                     echo "                                ";
  1067.                 }
  1068.                 // line 508
  1069.                 echo "                                <div class=\"ec-numberInput\"><span>";
  1070.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html"nulltrue);
  1071.                 echo "</span>
  1072.                                     ";
  1073.                 // line 509
  1074.                 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.'509$this->source); })()), "quantity", [], "any"falsefalsefalse509), 'widget');
  1075.                 echo "
  1076.                                     ";
  1077.                 // line 510
  1078.                 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.'510$this->source); })()), "quantity", [], "any"falsefalsefalse510), 'errors');
  1079.                 echo "
  1080.                                 </div>
  1081.                             </div>
  1082.                             <div class=\"ec-productRole__btn\">
  1083.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  1084.                                     ";
  1085.                 // line 515
  1086.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html"nulltrue);
  1087.                 echo "
  1088.                                 </button>
  1089.                             </div>
  1090.                         ";
  1091.             } else {
  1092.                 // line 519
  1093.                 echo "                            <div class=\"ec-productRole__btn\">
  1094.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1095.                                     ";
  1096.                 // line 521
  1097.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  1098.                 echo "
  1099.                                 </button>
  1100.                             </div>
  1101.                         ";
  1102.             }
  1103.             // line 525
  1104.             echo "
  1105.                         ";
  1106.             // line 526
  1107.             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.'526$this->source); })()), 'rest');
  1108.             echo "
  1109.                     </form>
  1110.                     <div class=\"ec-modal\">
  1111.                         <div class=\"ec-modal-overlay\">
  1112.                             <div class=\"ec-modal-wrap\">
  1113.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
  1114.             // line 531
  1115.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  1116.             echo "\" alt=\"\"/></span></span>
  1117.                                 <div id=\"ec-modal-header\" class=\"text-center\">";
  1118.             // line 532
  1119.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html"nulltrue);
  1120.             echo "</div>
  1121.                                 <div class=\"ec-modal-box\">
  1122.                                     <div class=\"ec-role\">
  1123.                                         <span class=\"ec-inlineBtn--cancel\">";
  1124.             // line 535
  1125.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html"nulltrue);
  1126.             echo "</span>
  1127.                                         <a href=\"";
  1128.             // line 536
  1129.             echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  1130.             echo "\" class=\"ec-inlineBtn--action\">";
  1131.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html"nulltrue);
  1132.             echo "</a>
  1133.                                     </div>
  1134.                                 </div>
  1135.                             </div>
  1136.                         </div>
  1137.                     </div>
  1138.                     ";
  1139.             // line 542
  1140.             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.'542$this->source); })()), "option_favorite_product", [], "any"falsefalsefalse542)) {
  1141.                 // line 543
  1142.                 echo "                        <form action=\"";
  1143.                 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.'543$this->source); })()), "id", [], "any"falsefalsefalse543)]), "html"nulltrue);
  1144.                 echo "\" method=\"post\">
  1145.                             <div class=\"ec-productRole__btn\">
  1146.                                 ";
  1147.                 // line 545
  1148.                 if (((isset($context["is_favorite"]) || array_key_exists("is_favorite"$context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.'545$this->source); })()) == false)) {
  1149.                     // line 546
  1150.                     echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  1151.                                         ";
  1152.                     // line 547
  1153.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html"nulltrue);
  1154.                     echo "
  1155.                                     </button>
  1156.                                 ";
  1157.                 } else {
  1158.                     // line 550
  1159.                     echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  1160.                                             disabled=\"disabled\">";
  1161.                     // line 551
  1162.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html"nulltrue);
  1163.                     echo "
  1164.                                     </button>
  1165.                                 ";
  1166.                 }
  1167.                 // line 554
  1168.                 echo "                            </div>
  1169.                         </form>
  1170.                     ";
  1171.             }
  1172.             // line 557
  1173.             echo "                    <div class=\"ec-productRole__description\">";
  1174.             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.'557$this->source); })()), "description_detail", [], "any"falsefalsefalse557));
  1175.             echo "
  1176.                     </div>
  1177.                 </div>
  1178.             </div>
  1179.         </div>
  1180. ";
  1181.         }
  1182.         // line 564
  1183.         echo "
  1184.         ";
  1185.         // line 565
  1186.         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.'565$this->source); })()), "freearea", [], "any"falsefalsefalse565)) {
  1187.             // line 566
  1188.             echo "             <div class=\"ec-productRole__description\">
  1189.                  ";
  1190.             // line 567
  1191.             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.'567$this->source); })()), "freearea", [], "any"falsefalsefalse567)));
  1192.             echo "
  1193.             </div>
  1194.         ";
  1195.         }
  1196.         // line 570
  1197.         echo "    </div>
  1198. ";
  1199.         
  1200.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1201.         
  1202.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1203.     }
  1204.     public function getTemplateName()
  1205.     {
  1206.         return "@SDream/Product/detail.twig";
  1207.     }
  1208.     public function isTraitable()
  1209.     {
  1210.         return false;
  1211.     }
  1212.     public function getDebugInfo()
  1213.     {
  1214.         return array (  1249 => 570,  1243 => 567,  1240 => 566,  1238 => 565,  1235 => 564,  1225 => 557,  1220 => 554,  1214 => 551,  1211 => 550,  1205 => 547,  1202 => 546,  1200 => 545,  1194 => 543,  1192 => 542,  1181 => 536,  1177 => 535,  1171 => 532,  1167 => 531,  1159 => 526,  1156 => 525,  1149 => 521,  1145 => 519,  1138 => 515,  1130 => 510,  1126 => 509,  1121 => 508,  1118 => 507,  1112 => 504,  1108 => 503,  1105 => 502,  1103 => 501,  1098 => 499,  1094 => 498,  1091 => 497,  1089 => 496,  1086 => 495,  1084 => 494,  1079 => 493,  1077 => 492,  1073 => 489,  1065 => 485,  1051 => 484,  1047 => 482,  1045 => 481,  1040 => 479,  1033 => 478,  1016 => 477,  1012 => 475,  1008 => 474,  1005 => 473,  1002 => 470,  1000 => 458,  996 => 455,  993 => 454,  990 => 453,  988 => 452,  976 => 449,  973 => 448,  970 => 447,  968 => 446,  963 => 442,  960 => 441,  954 => 438,  949 => 436,  944 => 434,  940 => 432,  934 => 429,  929 => 427,  925 => 425,  922 => 424,  920 => 423,  917 => 422,  915 => 421,  911 => 419,  905 => 416,  901 => 415,  898 => 414,  895 => 413,  889 => 410,  883 => 409,  880 => 408,  874 => 405,  870 => 404,  867 => 403,  865 => 402,  863 => 401,  860 => 400,  858 => 399,  855 => 398,  850 => 396,  843 => 395,  840 => 394,  836 => 392,  831 => 390,  822 => 389,  820 => 388,  816 => 387,  809 => 386,  807 => 385,  804 => 384,  801 => 383,  799 => 382,  797 => 381,  794 => 375,  783 => 373,  779 => 372,  776 => 371,  771 => 368,  768 => 367,  762 => 362,  758 => 359,  754 => 357,  733 => 350,  728 => 349,  711 => 348,  708 => 347,  704 => 345,  683 => 338,  678 => 337,  661 => 336,  658 => 335,  656 => 334,  649 => 329,  645 => 327,  636 => 323,  618 => 320,  612 => 317,  608 => 316,  605 => 315,  587 => 314,  584 => 313,  580 => 311,  569 => 306,  565 => 305,  562 => 304,  544 => 301,  538 => 298,  534 => 297,  531 => 296,  513 => 295,  510 => 294,  508 => 293,  501 => 289,  497 => 288,  493 => 286,  486 => 280,  476 => 279,  461 => 273,  457 => 272,  453 => 271,  449 => 270,  445 => 268,  439 => 266,  437 => 265,  432 => 264,  429 => 263,  419 => 261,  405 => 259,  397 => 258,  379 => 257,  374 => 255,  351 => 235,  341 => 228,  311 => 201,  306 => 198,  297 => 192,  293 => 190,  291 => 189,  288 => 188,  279 => 182,  275 => 180,  273 => 179,  207 => 115,  199 => 113,  197 => 112,  192 => 110,  189 => 109,  187 => 108,  173 => 97,  170 => 96,  160 => 95,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  1215.     }
  1216.     public function getSourceContext()
  1217.     {
  1218.         return new Source("{#
  1219. This file is part of EC-CUBE
  1220. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  1221. http://www.ec-cube.co.jp/
  1222. For the full copyright and license information, please view the LICENSE
  1223. file that was distributed with this source code.
  1224. #}
  1225. {% extends 'default_frame.twig' %}
  1226. {% set body_class = 'product_page' %}
  1227. {% block stylesheet %}
  1228.     <style>
  1229.         .slick-slider {
  1230.             margin-bottom: 30px;
  1231.         }
  1232.         .slick-dots {
  1233.             position: absolute;
  1234.             bottom: -45px;
  1235.             display: block;
  1236.             width: 100%;
  1237.             padding: 0;
  1238.             list-style: none;
  1239.             text-align: center;
  1240.         }
  1241.         .slick-dots li {
  1242.             position: relative;
  1243.             display: inline-block;
  1244.             width: 20px;
  1245.             height: 20px;
  1246.             margin: 0 5px;
  1247.             padding: 0;
  1248.             cursor: pointer;
  1249.         }
  1250.         .slick-dots li button {
  1251.             font-size: 0;
  1252.             line-height: 0;
  1253.             display: block;
  1254.             width: 20px;
  1255.             height: 20px;
  1256.             padding: 5px;
  1257.             cursor: pointer;
  1258.             color: transparent;
  1259.             border: 0;
  1260.             outline: none;
  1261.             background: transparent;
  1262.         }
  1263.         .slick-dots li button:hover,
  1264.         .slick-dots li button:focus {
  1265.             outline: none;
  1266.         }
  1267.         .slick-dots li button:hover:before,
  1268.         .slick-dots li button:focus:before {
  1269.             opacity: 1;
  1270.         }
  1271.         .slick-dots li button:before {
  1272.             content: \" \";
  1273.             line-height: 20px;
  1274.             position: absolute;
  1275.             top: 0;
  1276.             left: 0;
  1277.             width: 12px;
  1278.             height: 12px;
  1279.             text-align: center;
  1280.             opacity: .25;
  1281.             background-color: black;
  1282.             border-radius: 50%;
  1283.         }
  1284.         .slick-dots li.slick-active button:before {
  1285.             opacity: .75;
  1286.             background-color: black;
  1287.         }
  1288.         .slick-dots li button.thumbnail img {
  1289.             width: 0;
  1290.             height: 0;
  1291.         }
  1292.     </style>
  1293. {% endblock %}
  1294. {% block javascript %}
  1295.     <script>
  1296.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  1297.         // 規格2に選択肢を割り当てる。
  1298.         function fnSetClassCategories(form, classcat_id2_selected) {
  1299.             var \$form = \$(form);
  1300.             var product_id = \$form.find('input[name=product_id]').val();
  1301.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  1302.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  1303.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  1304.         }
  1305.         {% if form.classcategory_id2 is defined %}
  1306.         fnSetClassCategories(
  1307.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  1308.         );
  1309.         {% elseif form.classcategory_id1 is defined %}
  1310.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  1311.         {% endif %}
  1312.     </script>
  1313.     <script>
  1314.         \$(function() {
  1315.             // bfcache無効化
  1316.             \$(window).bind('pageshow', function(event) {
  1317.                 if (event.originalEvent.persisted) {
  1318.                     location.reload(true);
  1319.                 }
  1320.             });
  1321.             // Core Web Vital の Cumulative Layout Shift(CLS)対策のため
  1322.             // img タグに width, height が付与されている.
  1323.             // 630px 未満の画面サイズでは縦横比が壊れるための対策
  1324.             // see https://github.com/EC-CUBE/ec-cube/pull/5023
  1325.             \$('.ec-grid2__cell').hide();
  1326.             var removeSize = function () {
  1327.                 \$('.slide-item').height('');
  1328.                 \$('.slide-item img')
  1329.                     .removeAttr('width')
  1330.                     .removeAttr('height')
  1331.                     .removeAttr('style');
  1332.             };
  1333.             var slickInitial = function(slick) {
  1334.                 \$('.ec-grid2__cell').fadeIn(1500);
  1335.                 var baseHeight = \$(slick.target).height();
  1336.                 var baseWidth = \$(slick.target).width();
  1337.                 var rate = baseWidth / baseHeight;
  1338.                 \$('.slide-item').height(baseHeight * rate); // 余白を削除する
  1339.                 // transform を使用することでCLSの影響を受けないようにする
  1340.                 \$('.slide-item img')
  1341.                     .css(
  1342.                         {
  1343.                             'transform-origin': 'top left',
  1344.                             'transform': 'scaleY(' + rate + ')',
  1345.                             'transition': 'transform .1s'
  1346.                         }
  1347.                     );
  1348.                 // 正しいサイズに近くなったら属性を解除する
  1349.                 setTimeout(removeSize, 500);
  1350.             };
  1351.             \$('.item_visual').on('init', slickInitial);
  1352.             // リサイズ時は CLS の影響を受けないため属性を解除する
  1353.             \$(window).resize(removeSize);
  1354.             \$('.item_visual').slick({
  1355.                 dots: false,
  1356.                 arrows: false,
  1357.                 responsive: [{
  1358.                     breakpoint: 768,
  1359.                     settings: {
  1360.                         dots: true
  1361.                     }
  1362.                 }]
  1363.             });
  1364.             \$('.slideThumb').on('click', function() {
  1365.                 var index = \$(this).attr('data-index');
  1366.                 \$('.item_visual').slick('slickGoTo', index, false);
  1367.             })
  1368.         });
  1369.     </script>
  1370.     <script>
  1371.         \$(function() {
  1372.             \$('.add-cart').on('click', function(event) {
  1373.                 {% if form.classcategory_id1 is defined %}
  1374.                 // 規格1フォームの必須チェック
  1375.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  1376.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1377.                     return true;
  1378.                 } else {
  1379.                     \$('#classcategory_id1')[0].setCustomValidity('');
  1380.                 }
  1381.                 {% endif %}
  1382.                 {% if form.classcategory_id2 is defined %}
  1383.                 // 規格2フォームの必須チェック
  1384.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1385.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1386.                     return true;
  1387.                 } else {
  1388.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1389.                 }
  1390.                 {% endif %}
  1391.                 // 個数フォームのチェック
  1392.                 if (\$('#quantity').val() < 1) {
  1393.                     \$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
  1394.                     return true;
  1395.                 } else {
  1396.                     \$('#quantity')[0].setCustomValidity('');
  1397.                 }
  1398.                 event.preventDefault();
  1399.                 \$form = \$('#form1');
  1400.                 \$.ajax({
  1401.                     url: \$form.attr('action'),
  1402.                     type: \$form.attr('method'),
  1403.                     data: \$form.serialize(),
  1404.                     dataType: 'json',
  1405.                     beforeSend: function(xhr, settings) {
  1406.                         // Buttonを無効にする
  1407.                         \$('.add-cart').prop('disabled', true);
  1408.                     }
  1409.                 }).done(function(data) {
  1410.                     // レスポンス内のメッセージをalertで表示
  1411.                     \$.each(data.messages, function() {
  1412.                         \$('#ec-modal-header').text(this);
  1413.                     });
  1414.                     \$('.ec-modal').show()
  1415.                     // カートブロックを更新する
  1416.                     \$.ajax({
  1417.                         url: \"{{ url('block_cart') }}\",
  1418.                         type: 'GET',
  1419.                         dataType: 'html'
  1420.                     }).done(function(html) {
  1421.                         \$('.ec-headerRole__cart').html(html);
  1422.                     });
  1423.                 }).fail(function(data) {
  1424.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  1425.                 }).always(function(data) {
  1426.                     // Buttonを有効にする
  1427.                     \$('.add-cart').prop('disabled', false);
  1428.                 });
  1429.             });
  1430.         });
  1431.         \$('.ec-modal-wrap').on('click', function(e) {
  1432.             // モーダル内の処理は外側にバブリングさせない
  1433.             e.stopPropagation();
  1434.         });
  1435.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1436.             \$('.ec-modal').hide()
  1437.         });
  1438.     </script>
  1439.     <script type=\"application/ld+json\">
  1440.     {
  1441.         \"@context\": \"https://schema.org/\",
  1442.         \"@type\": \"Product\",
  1443.         \"name\": \"{{ Product.name }}\",
  1444.         \"image\": [
  1445.             {% for img in Product.ProductImage %}
  1446.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1447.             {% else %}
  1448.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1449.             {% endfor %}
  1450.         ],
  1451.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1452.         {% if Product.code_min %}
  1453.         \"sku\": \"{{ Product.code_min }}\",
  1454.         {% endif %}
  1455.         \"offers\": {
  1456.             \"@type\": \"Offer\",
  1457.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1458.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1459.             \"price\": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}},
  1460.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1461.         }
  1462.     }
  1463.     </script>
  1464. {% endblock %}
  1465. {% block main %}
  1466.     <div class=\"ec-productRole\">
  1467.         <div class=\"ec-grid2\">
  1468.             <div class=\"ec-grid2__cell\">
  1469.                 <div class=\"ec-sliderItemRole\">
  1470. {# === SDR === #}
  1471. {{ dump(eccube_config) }}
  1472. {{ dump(eccube_config.get('app_mode')) }}
  1473.                     <div class=\"item_visual\">
  1474.                     {% if eccube_config.app_mode != 'display' %}
  1475.                         {% for ProductImage in Product.ProductImage %}
  1476.                             <div class=\"slide-item\">
  1477.                                 <img src=\"{{ asset(ProductImage, 'save_image') }}\"
  1478.                                     alt=\"{{ loop.first ? Product.name : '' }}\"
  1479.                                     width=\"550\"
  1480.                                     height=\"550\"
  1481.                                     {% if loop.index > 1 %}loading=\"lazy\"{% endif %}>
  1482.                             </div>
  1483.                         {% else %}
  1484.                             <div class=\"slide-item\">
  1485.                                 <img src=\"{{ asset(''|no_image_product, 'save_image') }}\"
  1486.                                     alt=\"{{ Product.name }}\"
  1487.                                     width=\"550\"
  1488.                                     height=\"550\">
  1489.                             </div>
  1490.                         {% endfor %}
  1491.                     {% else %}
  1492.                         {% for ProductImage in Product.ProductDisplayImages %}
  1493.                             <div class=\"slide-item\">
  1494.                                 <img src=\"{{ eccube_config.img_folder ~ ProductImage.fileName }}\"
  1495.                                     alt=\"{{ loop.first ? Product.name : '' }}\"
  1496.                                     width=\"550\"
  1497.                                     height=\"550\"
  1498.                                     {% if loop.index > 1 %}loading=\"lazy\"{% endif %}>
  1499.                             </div>
  1500.                         {% else %}
  1501.                             <div class=\"slide-item ec-productRole__noimage\">
  1502.                                 ★画像準備中
  1503.                             </div>
  1504.                         {% endfor %}
  1505.                     {% endif %}
  1506.                     </div>
  1507.                     <div class=\"item_nav\">
  1508.                     {% if eccube_config.app_mode != 'display' %}
  1509.                         {% for ProductImage in Product.ProductImage %}
  1510.                             <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\">
  1511.                                 <img src=\"{{ asset(ProductImage, 'save_image') }}\"
  1512.                                     alt=\"\"
  1513.                                     width=\"133\"
  1514.                                     height=\"133\"
  1515.                                     loading=\"lazy\">
  1516.                             </div>
  1517.                         {% endfor %}
  1518.                     {% else %}
  1519.                         {% for ProductImage in Product.ProductDisplayImages %}
  1520.                             <div class=\"slideThumb\" data-index=\"{{ loop.index0 }}\">
  1521.                                 <img src=\"{{ eccube_config.img_folder ~ ProductImage.fileName }}\"
  1522.                                     alt=\"\"
  1523.                                     width=\"133\"
  1524.                                     height=\"133\"
  1525.                                     loading=\"lazy\">
  1526.                             </div>
  1527.                         {% endfor %}
  1528.                     {% endif %}
  1529.                     </div>
  1530. {# === SDR === #}
  1531.                 </div>
  1532.             </div>
  1533.             <div class=\"ec-grid2__cell\">
  1534.                 <div class=\"ec-productRole__profile\">
  1535.                     {# 商品名 #}
  1536.                     <div class=\"ec-productRole__title\">
  1537.                         <h2 class=\"ec-headingTitle\">{{ Product.name }}</h2>
  1538.                     </div>
  1539.                     {# タグ #}
  1540.                     <ul class=\"ec-productRole__tags\">
  1541.                         {% for Tag in Product.Tags %}
  1542.                             <li class=\"ec-productRole__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
  1543.                         {% endfor %}
  1544.                     </ul>
  1545. {# === SDR === 
  1546.     app_mode: '%env(APP_MODE)%' #表示用モード(display:表示用サイト sales:販売用サイト)
  1547. #}
  1548. {% if eccube_config.app_mode != 'display' %}
  1549.                     {# 通常価格 #}
  1550.                     {% if Product.hasProductClass -%}
  1551.                         <div class=\"ec-productRole__priceRegular\">
  1552.                             {% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
  1553.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}</span></span>
  1554.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1555.                             {% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
  1556.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}~ {{ Product.getPrice01IncTaxMax|price }}</span></span>
  1557.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1558.                             {% endif %}
  1559.                         </div>
  1560.                     {% else %}
  1561.                         {% if Product.getPrice01Max is not null %}
  1562.                             <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:{{ Product.getPrice01IncTaxMin|price }}</span>
  1563.                             <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1564.                         {% endif %}
  1565.                     {% endif %}
  1566.                     {# 販売価格 #}
  1567.                     <div class=\"ec-productRole__price\">
  1568.                         {% if Product.hasProductClass -%}
  1569.                             {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
  1570.                                 <div class=\"ec-price\">
  1571.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span>
  1572.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1573.                                 </div>
  1574.                             {% else %}
  1575.                                 <div class=\"ec-price\">
  1576.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span>
  1577.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1578.                                 </div>
  1579.                             {% endif %}
  1580.                         {% else %}
  1581.                             <div class=\"ec-price\">
  1582.                                 <span class=\"ec-price__price\">{{ Product.getPrice02IncTaxMin|price }}</span>
  1583.                                 <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1584.                             </div>
  1585.                         {% endif %}
  1586.                     </div>
  1587. {% else %}
  1588.     {#規格あり・規格なしに関係なく、表示対象の ProductClass から価格を取得#}
  1589.     <div class=\"ec-productRole__price\">
  1590.         {% if Product.getPriceSellerInTaxMin is not null %}
  1591.             {% if Product.getPriceSellerInTaxMin == Product.getPriceSellerInTaxMax %}
  1592.                 <div class=\"ec-price\">
  1593.                     <span class=\"ec-price__price\">
  1594.                         {{ Product.getPriceSellerInTaxMin|price }}
  1595.                     </span>
  1596.                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1597.                 </div>
  1598.             {% else %}
  1599.                 <div class=\"ec-price\">
  1600.                     <span class=\"ec-price__price\">
  1601.                         {{ Product.getPriceSellerInTaxMin|price }}
  1602.                         ~
  1603.                         {{ Product.getPriceSellerInTaxMax|price }}
  1604.                     </span>
  1605.                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1606.                 </div>
  1607.             {% endif %}
  1608.         {% endif %}
  1609.     </div>
  1610. {% endif %}
  1611. {# === SDR === #}
  1612.                     {# 商品コード #}
  1613.                     {% if Product.code_min is not empty %}
  1614.                         <div class=\"ec-productRole__code\">
  1615.                             {{ '商品コード'|trans }}: <span class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
  1616.                         </div>
  1617.                     {% endif %}
  1618.                     {# 関連カテゴリ #}
  1619.                     {% if Product.ProductCategories is not empty %}
  1620.                         <div class=\"ec-productRole__category\">
  1621.                             <div>{{ '関連カテゴリ'|trans }}</div>
  1622. {# ===== SDR ===== #}
  1623. {# 従来の仕組み #}
  1624.                             {#
  1625.                             {% for ProductCategory in Product.ProductCategories %}
  1626.                                 <ul>
  1627.                                     <li>
  1628.                                         {% for Category in ProductCategory.Category.path %}
  1629.                                             <a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">{{ Category.name }}</a> {%- if loop.last == false %}
  1630.                                             <span>></span>{% endif -%}
  1631.                                         {% endfor %}
  1632.                                     </li>
  1633.                                 </ul>
  1634.                             {% endfor %}
  1635.                             #}
  1636. {#    ※要望を実現するために、一階層目は表示しないようにしました。(第一階層を非表示とする仕組みです)
  1637.     ※カテゴリ階層を変更する際は、この表示にも影響します。#}
  1638.                             
  1639.                         {% for ProductCategory in Product.ProductCategories %}
  1640.                             <ul>
  1641.                                 <li>
  1642.                                     {% for Category in ProductCategory.Category.path|slice(1) %}
  1643.                                         <a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">
  1644.                                             {{ Category.name }}
  1645.                                         </a>
  1646.                                         {% if not loop.last %}
  1647.                                             <span>></span>
  1648.                                         {% endif %}
  1649.                                     {% endfor %}
  1650.                                 </li>
  1651.                             </ul>
  1652.                         {% endfor %}
  1653. {# ===== SDR ===== #}
  1654.                         </div>
  1655.                     {% endif %}
  1656. {# === SDR === #}
  1657. {% if eccube_config.app_mode != 'display' %}
  1658.                     <form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  1659.                         {% if Product.stock_find %}
  1660.                             <div class=\"ec-productRole__actions\">
  1661.                                 {% if form.classcategory_id1 is defined %}
  1662.                                     <div class=\"ec-select\">
  1663.                                         {{ form_row(form.classcategory_id1) }}
  1664.                                         {{ form_errors(form.classcategory_id1) }}
  1665.                                     </div>
  1666.                                     {% if form.classcategory_id2 is defined %}
  1667.                                         <div class=\"ec-select\">
  1668.                                             {{ form_row(form.classcategory_id2) }}
  1669.                                             {{ form_errors(form.classcategory_id2) }}
  1670.                                         </div>
  1671.                                     {% endif %}
  1672.                                 {% endif %}
  1673.                                 <div class=\"ec-numberInput\"><span>{{ '数量'|trans }}</span>
  1674.                                     {{ form_widget(form.quantity) }}
  1675.                                     {{ form_errors(form.quantity) }}
  1676.                                 </div>
  1677.                             </div>
  1678.                             <div class=\"ec-productRole__btn\">
  1679.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  1680.                                     {{ 'カートに入れる'|trans }}
  1681.                                 </button>
  1682.                             </div>
  1683.                         {% else %}
  1684.                             <div class=\"ec-productRole__btn\">
  1685.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1686.                                     {{ 'ただいま品切れ中です。'|trans }}
  1687.                                 </button>
  1688.                             </div>
  1689.                         {% endif %}
  1690.                         {{ form_rest(form) }}
  1691.                     </form>
  1692.                     <div class=\"ec-modal\">
  1693.                         <div class=\"ec-modal-overlay\">
  1694.                             <div class=\"ec-modal-wrap\">
  1695.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  1696.                                 <div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
  1697.                                 <div class=\"ec-modal-box\">
  1698.                                     <div class=\"ec-role\">
  1699.                                         <span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
  1700.                                         <a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
  1701.                                     </div>
  1702.                                 </div>
  1703.                             </div>
  1704.                         </div>
  1705.                     </div>
  1706.                     {% if BaseInfo.option_favorite_product %}
  1707.                         <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  1708.                             <div class=\"ec-productRole__btn\">
  1709.                                 {% if is_favorite == false %}
  1710.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  1711.                                         {{ 'お気に入りに追加'|trans }}
  1712.                                     </button>
  1713.                                 {% else %}
  1714.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  1715.                                             disabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
  1716.                                     </button>
  1717.                                 {% endif %}
  1718.                             </div>
  1719.                         </form>
  1720.                     {% endif %}
  1721.                     <div class=\"ec-productRole__description\">{{ Product.description_detail|raw|nl2br }}
  1722.                     </div>
  1723.                 </div>
  1724.             </div>
  1725.         </div>
  1726. {% endif %}
  1727. {# === SDR === #}
  1728.         {% if Product.freearea %}
  1729.              <div class=\"ec-productRole__description\">
  1730.                  {{ include(template_from_string(Product.freearea)) }}
  1731.             </div>
  1732.         {% endif %}
  1733.     </div>
  1734. {% endblock %}""@SDream/Product/detail.twig""/home/xs262729/sandrea.net/public_html/display.sandrea.net/app/Plugin/SDream/Resource/template/Product/detail.twig");
  1735.     }
  1736. }