var/cache/dev/twig/45/45c046c0bc4791da7b509693d46165d27514ae618bceeee0f4f97a0639b6a66c.php line 40

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