var/cache/dev/twig/c2/c23d4d81ae4ac454235e367fa16cfb927471b5152091f976cde1340adedd3014.php line 16

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