var/cache/dev/twig/d7/d70ee4f63c25aef98c89a52b72b484f3.php line 40

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