var/cache/dev/twig/fc/fc9a8947f73465442d9959bc2dd54fd89676af711001474ab1ce85e574801065.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_d0c7dea1dce37d432c6b6d51568a5ab8388cd6a43e6684aff7be556088b90218 extends \Eccube\Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'stylesheet' => [$this'block_stylesheet'],
  24.             'javascript' => [$this'block_javascript'],
  25.             'main' => [$this'block_main'],
  26.         ];
  27.     }
  28.     protected function doGetParent(array $context)
  29.     {
  30.         // line 11
  31.         return "default_frame.twig";
  32.     }
  33.     protected function doDisplay(array $context, array $blocks = [])
  34.     {
  35.         $macros $this->macros;
  36.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  38.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Product/detail.twig"));
  40.         // line 13
  41.         $context["body_class"] = "product_page";
  42.         // line 11
  43.         $this->parent $this->loadTemplate("default_frame.twig""Product/detail.twig"11);
  44.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  45.         
  46.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  47.         
  48.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  49.     }
  50.     // line 15
  51.     public function block_stylesheet($context, array $blocks = [])
  52.     {
  53.         $macros $this->macros;
  54.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  55.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  56.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  57.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  58.         // line 16
  59.         echo "    <style>
  60.         .slick-slider {
  61.             margin-bottom: 30px;
  62.         }
  63.         .slick-dots {
  64.             position: absolute;
  65.             bottom: -45px;
  66.             display: block;
  67.             width: 100%;
  68.             padding: 0;
  69.             list-style: none;
  70.             text-align: center;
  71.         }
  72.         .slick-dots li {
  73.             position: relative;
  74.             display: inline-block;
  75.             width: 20px;
  76.             height: 20px;
  77.             margin: 0 5px;
  78.             padding: 0;
  79.             cursor: pointer;
  80.         }
  81.         .slick-dots li button {
  82.             font-size: 0;
  83.             line-height: 0;
  84.             display: block;
  85.             width: 20px;
  86.             height: 20px;
  87.             padding: 5px;
  88.             cursor: pointer;
  89.             color: transparent;
  90.             border: 0;
  91.             outline: none;
  92.             background: transparent;
  93.         }
  94.         .slick-dots li button:hover,
  95.         .slick-dots li button:focus {
  96.             outline: none;
  97.         }
  98.         .slick-dots li button:hover:before,
  99.         .slick-dots li button:focus:before {
  100.             opacity: 1;
  101.         }
  102.         .slick-dots li button:before {
  103.             content: \" \";
  104.             line-height: 20px;
  105.             position: absolute;
  106.             top: 0;
  107.             left: 0;
  108.             width: 12px;
  109.             height: 12px;
  110.             text-align: center;
  111.             opacity: .25;
  112.             background-color: black;
  113.             border-radius: 50%;
  114.         }
  115.         .slick-dots li.slick-active button:before {
  116.             opacity: .75;
  117.             background-color: black;
  118.         }
  119.         .slick-dots li button.thumbnail img {
  120.             width: 0;
  121.             height: 0;
  122.         }
  123.     </style>
  124. ";
  125.         
  126.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  127.         
  128.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  129.     }
  130.     // line 95
  131.     public function block_javascript($context, array $blocks = [])
  132.     {
  133.         $macros $this->macros;
  134.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  135.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  136.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  137.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  138.         // line 96
  139.         echo "    <script>
  140.         eccube.classCategories = ";
  141.         // line 97
  142.         echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson((isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'97$this->source); })()));
  143.         echo ";
  144.         // 規格2に選択肢を割り当てる。
  145.         function fnSetClassCategories(form, classcat_id2_selected) {
  146.             var \$form = \$(form);
  147.             var product_id = \$form.find('input[name=product_id]').val();
  148.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  149.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  150.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  151.         }
  152.         ";
  153.         // line 108
  154.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse108)) {
  155.             // line 109
  156.             echo "        fnSetClassCategories(
  157.             \$('#form1'), ";
  158.             // line 110
  159.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'110$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse110), "vars", [], "any"falsefalsefalse110), "value", [], "any"falsefalsefalse110));
  160.             echo "
  161.         );
  162.         ";
  163.         } elseif (twig_get_attribute($this->env$this->source,         // line 112
  164. ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse112)) {
  165.             // line 113
  166.             echo "        eccube.checkStock(\$('#form1'), ";
  167.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'113$this->source); })()), "id", [], "any"falsefalsefalse113), "html"nulltrue);
  168.             echo ", ";
  169.             echo json_encode(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'113$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse113), "vars", [], "any"falsefalsefalse113), "value", [], "any"falsefalsefalse113));
  170.             echo ", null);
  171.         ";
  172.         }
  173.         // line 115
  174.         echo "    </script>
  175.     <script>
  176.         \$(function() {
  177.             // bfcache無効化
  178.             \$(window).bind('pageshow', function(event) {
  179.                 if (event.originalEvent.persisted) {
  180.                     location.reload(true);
  181.                 }
  182.             });
  183.             \$('.item_visual').slick({
  184.                 dots: false,
  185.                 arrows: false,
  186.                 responsive: [{
  187.                     breakpoint: 768,
  188.                     settings: {
  189.                         dots: true
  190.                     }
  191.                 }]
  192.             });
  193.             \$('.slide-thumb').on('click', function() {
  194.                 var index = \$(this).attr('data-index');
  195.                 \$('.item_visual').slick('slickGoTo', index, false);
  196.             })
  197.         });
  198.     </script>
  199.     <script>
  200.         \$(function() {
  201.             \$('.add-cart').on('click', function(event) {
  202.                 ";
  203.         // line 145
  204.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse145)) {
  205.             // line 146
  206.             echo "                // 規格1フォームの必須チェック
  207.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  208.                     \$('#classcategory_id1')[0].setCustomValidity('";
  209.             // line 148
  210.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  211.             echo "');
  212.                     return true;
  213.                 } else {
  214.                     \$('#classcategory_id1')[0].setCustomValidity('');
  215.                 }
  216.                 ";
  217.         }
  218.         // line 154
  219.         echo "
  220.                 ";
  221.         // line 155
  222.         if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse155)) {
  223.             // line 156
  224.             echo "                // 規格2フォームの必須チェック
  225.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  226.                     \$('#classcategory_id2')[0].setCustomValidity('";
  227.             // line 158
  228.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html"nulltrue);
  229.             echo "');
  230.                     return true;
  231.                 } else {
  232.                     \$('#classcategory_id2')[0].setCustomValidity('');
  233.                 }
  234.                 ";
  235.         }
  236.         // line 164
  237.         echo "
  238.                 // 個数フォームのチェック
  239.                 if (\$('#quantity').val() < 1) {
  240.                     \$('#quantity')[0].setCustomValidity('";
  241.         // line 167
  242.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html"nulltrue);
  243.         echo "');
  244.                     return true;
  245.                 } else {
  246.                     \$('#quantity')[0].setCustomValidity('');
  247.                 }
  248.                 event.preventDefault();
  249.                 \$form = \$('#form1');
  250.                 \$.ajax({
  251.                     url: \$form.attr('action'),
  252.                     type: \$form.attr('method'),
  253.                     data: \$form.serialize(),
  254.                     dataType: 'json',
  255.                     beforeSend: function(xhr, settings) {
  256.                         // Buttonを無効にする
  257.                         \$('.add-cart').prop('disabled', true);
  258.                     }
  259.                 }).done(function(data) {
  260.                     // レスポンス内のメッセージをalertで表示
  261.                     \$.each(data.messages, function() {
  262.                         \$('#ec-modal-header').html(this);
  263.                     });
  264.                     \$('.ec-modal').show()
  265.                     // カートブロックを更新する
  266.                     \$.ajax({
  267.                         url: \"";
  268.         // line 194
  269.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  270.         echo "\",
  271.                         type: 'GET',
  272.                         dataType: 'html'
  273.                     }).done(function(html) {
  274.                         \$('.ec-headerRole__cart').html(html);
  275.                     });
  276.                 }).fail(function(data) {
  277.                     alert('";
  278.         // line 201
  279.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html"nulltrue);
  280.         echo "');
  281.                 }).always(function(data) {
  282.                     // Buttonを有効にする
  283.                     \$('.add-cart').prop('disabled', false);
  284.                 });
  285.             });
  286.         });
  287.         \$('.ec-modal-wrap').on('click', function(e) {
  288.             // モーダル内の処理は外側にバブリングさせない
  289.             e.stopPropagation();
  290.         });
  291.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  292.             \$('.ec-modal').hide()
  293.         });
  294.     </script>
  295.     <script type=\"application/ld+json\">
  296.     {
  297.         \"@context\": \"https://schema.org/\",
  298.         \"@type\": \"Product\",
  299.         \"name\": \"";
  300.         // line 221
  301.         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.'221$this->source); })()), "name", [], "any"falsefalsefalse221), "html"nulltrue);
  302.         echo "\",
  303.         \"image\": [
  304.             ";
  305.         // line 223
  306.         $context['_parent'] = $context;
  307.         $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.'223$this->source); })()), "ProductImage", [], "any"falsefalsefalse223));
  308.         $context['_iterated'] = false;
  309.         $context['loop'] = [
  310.           'parent' => $context['_parent'],
  311.           'index0' => 0,
  312.           'index'  => 1,
  313.           'first'  => true,
  314.         ];
  315.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  316.             $length count($context['_seq']);
  317.             $context['loop']['revindex0'] = $length 1;
  318.             $context['loop']['revindex'] = $length;
  319.             $context['loop']['length'] = $length;
  320.             $context['loop']['last'] = === $length;
  321.         }
  322.         foreach ($context['_seq'] as $context["_key"] => $context["img"]) {
  323.             // line 224
  324.             echo "                \"";
  325.             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.'224$this->source); })()), "request", [], "any"falsefalsefalse224), "schemeAndHttpHost", [], "any"falsefalsefalse224), "html"nulltrue);
  326.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["img"], "save_image"), "html"nulltrue);
  327.             echo "\"";
  328.             if ( !twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse224)) {
  329.                 echo ",";
  330.             }
  331.             // line 225
  332.             echo "
  333.             ";
  334.             $context['_iterated'] = true;
  335.             ++$context['loop']['index0'];
  336.             ++$context['loop']['index'];
  337.             $context['loop']['first'] = false;
  338.             if (isset($context['loop']['length'])) {
  339.                 --$context['loop']['revindex0'];
  340.                 --$context['loop']['revindex'];
  341.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  342.             }
  343.         }
  344.         if (!$context['_iterated']) {
  345.             // line 227
  346.             echo "                \"";
  347.             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.'227$this->source); })()), "request", [], "any"falsefalsefalse227), "schemeAndHttpHost", [], "any"falsefalsefalse227), "html"nulltrue);
  348.             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);
  349.             echo "\"
  350.             ";
  351.         }
  352.         $_parent $context['_parent'];
  353.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['img'], $context['_parent'], $context['loop']);
  354.         $context array_intersect_key($context$_parent) + $_parent;
  355.         // line 229
  356.         echo "        ],
  357.         \"description\": \"";
  358.         // line 230
  359.         echo twig_escape_filter($this->envtwig_slice($this->envtwig_replace_filter(((twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"truetruefalse230)) ? (_twig_default_filter(twig_get_attribute($this->env$this->source, ($context["Product"] ?? null), "description_list", [], "any"falsefalsefalse230), 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.'230$this->source); })()), "description_detail", [], "any"falsefalsefalse230))) : (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.'230$this->source); })()), "description_detail", [], "any"falsefalsefalse230))), ["
  360. => """ " => ""]), 0300), "html"nulltrue);
  361.         echo "\",
  362.         ";
  363.         // line 231
  364.         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.'231$this->source); })()), "code_min", [], "any"falsefalsefalse231)) {
  365.             // line 232
  366.             echo "        \"sku\": \"";
  367.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'232$this->source); })()), "code_min", [], "any"falsefalsefalse232), "html"nulltrue);
  368.             echo "\",
  369.         ";
  370.         }
  371.         // line 234
  372.         echo "        \"offers\": {
  373.             \"@type\": \"Offer\",
  374.             \"url\": \"";
  375.         // line 236
  376.         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.'236$this->source); })()), "id", [], "any"falsefalsefalse236)]), "html"nulltrue);
  377.         echo "\",
  378.             \"priceCurrency\": \"";
  379.         // line 237
  380.         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.'237$this->source); })()), "currency", [], "any"falsefalsefalse237), "html"nulltrue);
  381.         echo "\",
  382.             \"price\": ";
  383.         // line 238
  384.         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.'238$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse238), "html"nulltrue);
  385.         echo ",
  386.             \"availability\": \"";
  387.         // line 239
  388.         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.'239$this->source); })()), "stock_find", [], "any"falsefalsefalse239)) ? ("InStock") : ("OutOfStock"));
  389.         echo "\"
  390.         }
  391.     }
  392.     </script>
  393. ";
  394.         
  395.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  396.         
  397.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  398.     }
  399.     // line 245
  400.     public function block_main($context, array $blocks = [])
  401.     {
  402.         $macros $this->macros;
  403.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  404.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  405.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  406.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  407.         // line 246
  408.         echo "    <div class=\"ec-productRole mt-4\">
  409.         <div class=\"row\">
  410.             <div class=\"col-12 col-lg-6\">
  411.                 <div class=\"ec-sliderItemRole px-0\">
  412.                     <div class=\"item_visual\">
  413.                         ";
  414.         // line 252
  415.         $context['_parent'] = $context;
  416.         $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.'252$this->source); })()), "ProductImage", [], "any"falsefalsefalse252));
  417.         $context['_iterated'] = false;
  418.         $context['loop'] = [
  419.           'parent' => $context['_parent'],
  420.           'index0' => 0,
  421.           'index'  => 1,
  422.           'first'  => true,
  423.         ];
  424.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  425.             $length count($context['_seq']);
  426.             $context['loop']['revindex0'] = $length 1;
  427.             $context['loop']['revindex'] = $length;
  428.             $context['loop']['length'] = $length;
  429.             $context['loop']['last'] = === $length;
  430.         }
  431.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  432.             // line 253
  433.             echo "                            <div class=\"slide-item\"><img src=\"";
  434.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  435.             echo "\" alt=\"";
  436.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse253)) ? (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.'253$this->source); })()), "name", [], "any"falsefalsefalse253), "html"nulltrue))) : (print ("")));
  437.             echo "\"></div>
  438.                         ";
  439.             $context['_iterated'] = true;
  440.             ++$context['loop']['index0'];
  441.             ++$context['loop']['index'];
  442.             $context['loop']['first'] = false;
  443.             if (isset($context['loop']['length'])) {
  444.                 --$context['loop']['revindex0'];
  445.                 --$context['loop']['revindex'];
  446.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  447.             }
  448.         }
  449.         if (!$context['_iterated']) {
  450.             // line 255
  451.             echo "                            <div class=\"slide-item\"><img src=\"";
  452.             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);
  453.             echo "\" alt=\"";
  454.             ((twig_get_attribute($this->env$this->source$context["loop"], "first", [], "any"falsefalsefalse255)) ? (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.'255$this->source); })()), "name", [], "any"falsefalsefalse255), "html"nulltrue))) : (print ("")));
  455.             echo "\" /></div>
  456.                         ";
  457.         }
  458.         $_parent $context['_parent'];
  459.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  460.         $context array_intersect_key($context$_parent) + $_parent;
  461.         // line 257
  462.         echo "                    </div>
  463.                     <div class=\"item_nav\">
  464.                         <div class=\"row\" style=\"width: 100%;\">
  465.                             ";
  466.         // line 260
  467.         $context['_parent'] = $context;
  468.         $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.'260$this->source); })()), "ProductImage", [], "any"falsefalsefalse260));
  469.         $context['loop'] = [
  470.           'parent' => $context['_parent'],
  471.           'index0' => 0,
  472.           'index'  => 1,
  473.           'first'  => true,
  474.         ];
  475.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  476.             $length count($context['_seq']);
  477.             $context['loop']['revindex0'] = $length 1;
  478.             $context['loop']['revindex'] = $length;
  479.             $context['loop']['length'] = $length;
  480.             $context['loop']['last'] = === $length;
  481.         }
  482.         foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
  483.             // line 261
  484.             echo "                                <div class=\"slide-thumb col-4\" data-index=\"";
  485.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index0", [], "any"falsefalsefalse261), "html"nulltrue);
  486.             echo "\"><img class=\"img-fluid\" src=\"";
  487.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($context["ProductImage"], "save_image"), "html"nulltrue);
  488.             echo "\" alt=\"\"></div>
  489.                             ";
  490.             ++$context['loop']['index0'];
  491.             ++$context['loop']['index'];
  492.             $context['loop']['first'] = false;
  493.             if (isset($context['loop']['length'])) {
  494.                 --$context['loop']['revindex0'];
  495.                 --$context['loop']['revindex'];
  496.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  497.             }
  498.         }
  499.         $_parent $context['_parent'];
  500.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
  501.         $context array_intersect_key($context$_parent) + $_parent;
  502.         // line 263
  503.         echo "                        </div>
  504.                     </div>
  505.                 </div>
  506.             </div>
  507.             <div class=\"col-12 col-lg-6\">
  508.                 <div class=\"ec-productRole__profile ml-0\">
  509.                     ";
  510.         // line 270
  511.         echo "                    <div class=\"ec-productRole__title\">
  512.                         <h2 class=\"ec-headingTitle\">";
  513.         // line 271
  514.         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.'271$this->source); })()), "name", [], "any"falsefalsefalse271), "html"nulltrue);
  515.         echo "</h2>
  516.                     </div>
  517.                     ";
  518.         // line 274
  519.         echo "                    <ul class=\"ec-productRole__tags\">
  520.                         ";
  521.         // line 275
  522.         $context['_parent'] = $context;
  523.         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'275$this->source); })()), "Tags", [], "any"falsefalsefalse275));
  524.         foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
  525.             // line 276
  526.             echo "                            <li class=\"ec-productRole__tag tag_";
  527.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Tag"], "id", [], "any"falsefalsefalse276), "html"nulltrue);
  528.             echo "\">";
  529.             echo twig_escape_filter($this->env$context["Tag"], "html"nulltrue);
  530.             echo "</li>
  531.                         ";
  532.         }
  533.         $_parent $context['_parent'];
  534.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
  535.         $context array_intersect_key($context$_parent) + $_parent;
  536.         // line 278
  537.         echo "                    </ul>
  538.                     ";
  539.         // line 280
  540.         echo "                    ";
  541.         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.'280$this->source); })()), "hasProductClass", [], "any"falsefalsefalse280)) {
  542.             // line 281
  543.             echo "<div class=\"ec-productRole__priceRegular\">
  544.                             ";
  545.             // line 282
  546.             if (( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'282$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse282)) && (twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'282$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse282) == twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'282$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse282)))) {
  547.                 // line 283
  548.                 echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  549.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  550.                 echo ":<span class=\"price01-default\">";
  551.                 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.'283$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse283)), "html"nulltrue);
  552.                 echo "</span></span>
  553.                                 <span class=\"ec-productRole__priceRegularTax\">";
  554.                 // line 284
  555.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  556.                 echo "</span>
  557.                             ";
  558.             } elseif (( !(null === twig_get_attribute($this->env$this->source,             // line 285
  559. (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'285$this->source); })()), "getPrice01Min", [], "any"falsefalsefalse285)) &&  !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'285$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse285)))) {
  560.                 // line 286
  561.                 echo "                                <span class=\"ec-productRole__priceRegularPrice\">";
  562.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  563.                 echo ":<span class=\"price01-default\">";
  564.                 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.'286$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse286)), "html"nulltrue);
  565.                 echo "~ ";
  566.                 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.'286$this->source); })()), "getPrice01IncTaxMax", [], "any"falsefalsefalse286)), "html"nulltrue);
  567.                 echo "</span></span>
  568.                                 <span class=\"ec-productRole__priceRegularTax\">";
  569.                 // line 287
  570.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  571.                 echo "</span>
  572.                             ";
  573.             }
  574.             // line 289
  575.             echo "                        </div>
  576.                     ";
  577.         } else {
  578.             // line 291
  579.             echo "                        ";
  580.             if ( !(null === twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'291$this->source); })()), "getPrice01Max", [], "any"falsefalsefalse291))) {
  581.                 // line 292
  582.                 echo "                            <span class=\"ec-productRole__priceRegularPrice\">";
  583.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("通常価格"), "html"nulltrue);
  584.                 echo ":";
  585.                 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.'292$this->source); })()), "getPrice01IncTaxMin", [], "any"falsefalsefalse292)), "html"nulltrue);
  586.                 echo "</span>
  587.                             <span class=\"ec-productRole__priceRegularTax\">";
  588.                 // line 293
  589.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  590.                 echo "</span>
  591.                         ";
  592.             }
  593.             // line 295
  594.             echo "                    ";
  595.         }
  596.         // line 296
  597.         echo "                    ";
  598.         // line 297
  599.         echo "                    <div class=\"ec-productRole__price\">
  600.                         ";
  601.         // line 298
  602.         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.'298$this->source); })()), "hasProductClass", [], "any"falsefalsefalse298)) {
  603.             // line 299
  604.             if ((twig_get_attribute($this->env$this->source, (isset($context["Product"]) || array_key_exists("Product"$context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.'299$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse299) == 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.'299$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse299))) {
  605.                 // line 300
  606.                 echo "                                <div class=\"ec-price\">
  607.                                     <span class=\"ec-price__price price02-default\">";
  608.                 // line 301
  609.                 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.'301$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse301)), "html"nulltrue);
  610.                 echo "</span>
  611.                                     <span class=\"ec-price__tax\">";
  612.                 // line 302
  613.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  614.                 echo "</span>
  615.                                 </div>
  616.                             ";
  617.             } else {
  618.                 // line 305
  619.                 echo "                                <div class=\"ec-price\">
  620.                                     <span class=\"ec-price__price price02-default\">";
  621.                 // line 306
  622.                 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.'306$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse306)), "html"nulltrue);
  623.                 echo " ~ ";
  624.                 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.'306$this->source); })()), "getPrice02IncTaxMax", [], "any"falsefalsefalse306)), "html"nulltrue);
  625.                 echo "</span>
  626.                                     <span class=\"ec-price__tax\">";
  627.                 // line 307
  628.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  629.                 echo "</span>
  630.                                 </div>
  631.                             ";
  632.             }
  633.             // line 310
  634.             echo "                        ";
  635.         } else {
  636.             // line 311
  637.             echo "                            <div class=\"ec-price\">
  638.                                 <span class=\"ec-price__price\">";
  639.             // line 312
  640.             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.'312$this->source); })()), "getPrice02IncTaxMin", [], "any"falsefalsefalse312)), "html"nulltrue);
  641.             echo "</span>
  642.                                 <span class=\"ec-price__tax\">";
  643.             // line 313
  644.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html"nulltrue);
  645.             echo "</span>
  646.                             </div>
  647.                         ";
  648.         }
  649.         // line 316
  650.         echo "                    </div>
  651.                     ";
  652.         // line 318
  653.         echo "                    ";
  654.         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.'318$this->source); })()), "code_min", [], "any"falsefalsefalse318))) {
  655.             // line 319
  656.             echo "                        <div class=\"ec-productRole__code\">
  657.                             ";
  658.             // line 320
  659.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("商品コード"), "html"nulltrue);
  660.             echo ": <span class=\"product-code-default\">";
  661.             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.'320$this->source); })()), "code_min", [], "any"falsefalsefalse320), "html"nulltrue);
  662.             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.'320$this->source); })()), "code_min", [], "any"falsefalsefalse320) != 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.'320$this->source); })()), "code_max", [], "any"falsefalsefalse320))) {
  663.                 echo " ~ ";
  664.                 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.'320$this->source); })()), "code_max", [], "any"falsefalsefalse320), "html"nulltrue);
  665.             }
  666.             echo "</span>
  667.                         </div>
  668.                     ";
  669.         }
  670.         // line 323
  671.         echo "                    ";
  672.         // line 324
  673.         echo "                    ";
  674.         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.'324$this->source); })()), "ProductCategories", [], "any"falsefalsefalse324))) {
  675.             // line 325
  676.             echo "                        <div class=\"ec-productRole__category\">
  677.                             <div>";
  678.             // line 326
  679.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("関連カテゴリ"), "html"nulltrue);
  680.             echo "</div>
  681.                             ";
  682.             // line 327
  683.             $context['_parent'] = $context;
  684.             $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.'327$this->source); })()), "ProductCategories", [], "any"falsefalsefalse327));
  685.             foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
  686.                 // line 328
  687.                 echo "                                <ul>
  688.                                     <li>
  689.                                         ";
  690.                 // line 330
  691.                 $context['_parent'] = $context;
  692.                 $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["ProductCategory"], "Category", [], "any"falsefalsefalse330), "path", [], "any"falsefalsefalse330));
  693.                 $context['loop'] = [
  694.                   'parent' => $context['_parent'],
  695.                   'index0' => 0,
  696.                   'index'  => 1,
  697.                   'first'  => true,
  698.                 ];
  699.                 if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  700.                     $length count($context['_seq']);
  701.                     $context['loop']['revindex0'] = $length 1;
  702.                     $context['loop']['revindex'] = $length;
  703.                     $context['loop']['length'] = $length;
  704.                     $context['loop']['last'] = === $length;
  705.                 }
  706.                 foreach ($context['_seq'] as $context["_key"] => $context["Category"]) {
  707.                     // line 331
  708.                     echo "                                            <a href=\"";
  709.                     echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_list");
  710.                     echo "?category_id=";
  711.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "id", [], "any"falsefalsefalse331), "html"nulltrue);
  712.                     echo "\">";
  713.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Category"], "name", [], "any"falsefalsefalse331), "html"nulltrue);
  714.                     echo "</a>";
  715.                     if ((twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse331) == false)) {
  716.                         // line 332
  717.                         echo "                                            <span>></span>";
  718.                     }
  719.                     ++$context['loop']['index0'];
  720.                     ++$context['loop']['index'];
  721.                     $context['loop']['first'] = false;
  722.                     if (isset($context['loop']['length'])) {
  723.                         --$context['loop']['revindex0'];
  724.                         --$context['loop']['revindex'];
  725.                         $context['loop']['last'] = === $context['loop']['revindex0'];
  726.                     }
  727.                 }
  728.                 $_parent $context['_parent'];
  729.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category'], $context['_parent'], $context['loop']);
  730.                 $context array_intersect_key($context$_parent) + $_parent;
  731.                 // line 334
  732.                 echo "                                    </li>
  733.                                 </ul>
  734.                             ";
  735.             }
  736.             $_parent $context['_parent'];
  737.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
  738.             $context array_intersect_key($context$_parent) + $_parent;
  739.             // line 337
  740.             echo "                        </div>
  741.                     ";
  742.         }
  743.         // line 339
  744.         echo "                    <form action=\"";
  745.         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.'339$this->source); })()), "id", [], "any"falsefalsefalse339)]), "html"nulltrue);
  746.         echo "\" method=\"post\" id=\"form1\" name=\"form1\">
  747.                         ";
  748.         // line 340
  749.         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.'340$this->source); })()), "stock_find", [], "any"falsefalsefalse340)) {
  750.             // line 341
  751.             echo "                            <div class=\"ec-productRole__actions\">
  752.                                 ";
  753.             // line 342
  754.             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse342)) {
  755.                 // line 343
  756.                 echo "                                    <div class=\"ec-select\">
  757.                                         ";
  758.                 // line 344
  759.                 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.'344$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse344), 'widget');
  760.                 echo "
  761.                                         ";
  762.                 // line 345
  763.                 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.'345$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse345), 'errors');
  764.                 echo "
  765.                                     </div>
  766.                                     ";
  767.                 // line 347
  768.                 if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse347)) {
  769.                     // line 348
  770.                     echo "                                        <div class=\"ec-select\">
  771.                                             ";
  772.                     // line 349
  773.                     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.'349$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse349), 'widget');
  774.                     echo "
  775.                                             ";
  776.                     // line 350
  777.                     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.'350$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse350), 'errors');
  778.                     echo "
  779.                                         </div>
  780.                                     ";
  781.                 }
  782.                 // line 353
  783.                 echo "                                ";
  784.             }
  785.             // line 354
  786.             echo "                                <div class=\"ec-numberInput\"><span>";
  787.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html"nulltrue);
  788.             echo "</span>
  789.                                     ";
  790.             // line 355
  791.             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.'355$this->source); })()), "quantity", [], "any"falsefalsefalse355), 'widget');
  792.             echo "
  793.                                     ";
  794.             // line 356
  795.             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.'356$this->source); })()), "quantity", [], "any"falsefalsefalse356), 'errors');
  796.             echo "
  797.                                 </div>
  798.                             </div>
  799.                             <div class=\"ec-productRole__btn\">
  800.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  801.                                     ";
  802.             // line 361
  803.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html"nulltrue);
  804.             echo "
  805.                                 </button>
  806.                             </div>
  807.                         ";
  808.         } else {
  809.             // line 365
  810.             echo "                            <div class=\"ec-productRole__btn\">
  811.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  812.                                     ";
  813.             // line 367
  814.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html"nulltrue);
  815.             echo "
  816.                                 </button>
  817.                             </div>
  818.                         ";
  819.         }
  820.         // line 371
  821.         echo "
  822.                         ";
  823.         // line 372
  824.         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.'372$this->source); })()), 'rest');
  825.         echo "
  826.                     </form>
  827.                     <div class=\"ec-modal\">
  828.                         <div class=\"ec-modal-overlay\">
  829.                             <div class=\"ec-modal-wrap\">
  830.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"";
  831.         // line 377
  832.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/icon/cross-dark.svg"), "html"nulltrue);
  833.         echo "\" alt=\"\"/></span></span>
  834.                                 <div id=\"ec-modal-header\" class=\"text-center\">";
  835.         // line 378
  836.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html"nulltrue);
  837.         echo "</div>
  838.                                 <div class=\"ec-modal-box\">
  839.                                     <div class=\"ec-role\">
  840.                                         <span class=\"ec-inlineBtn--cancel\">";
  841.         // line 381
  842.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お買い物を続ける"), "html"nulltrue);
  843.         echo "</span>
  844.                                         <a href=\"";
  845.         // line 382
  846.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("cart");
  847.         echo "\" class=\"ec-inlineBtn--action\">";
  848.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへ進む"), "html"nulltrue);
  849.         echo "</a>
  850.                                     </div>
  851.                                 </div>
  852.                             </div>
  853.                         </div>
  854.                     </div>
  855.                     ";
  856.         // line 388
  857.         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.'388$this->source); })()), "option_favorite_product", [], "any"falsefalsefalse388)) {
  858.             // line 389
  859.             echo "                        <form action=\"";
  860.             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.'389$this->source); })()), "id", [], "any"falsefalsefalse389)]), "html"nulltrue);
  861.             echo "\" method=\"post\">
  862.                             <div class=\"ec-productRole__btn\">
  863.                                 ";
  864.             // line 391
  865.             if (((isset($context["is_favorite"]) || array_key_exists("is_favorite"$context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.'391$this->source); })()) == false)) {
  866.                 // line 392
  867.                 echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  868.                                         ";
  869.                 // line 393
  870.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html"nulltrue);
  871.                 echo "
  872.                                     </button>
  873.                                 ";
  874.             } else {
  875.                 // line 396
  876.                 echo "                                    <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  877.                                             disabled=\"disabled\">";
  878.                 // line 397
  879.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済です。"), "html"nulltrue);
  880.                 echo "
  881.                                     </button>
  882.                                 ";
  883.             }
  884.             // line 400
  885.             echo "                            </div>
  886.                         </form>
  887.                     ";
  888.         }
  889.         // line 403
  890.         echo "                    <div class=\"ec-productRole__description\">";
  891.         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.'403$this->source); })()), "description_detail", [], "any"falsefalsefalse403));
  892.         echo "
  893.                     </div>
  894.                 </div>
  895.             </div>
  896.         </div>
  897.         ";
  898.         // line 408
  899.         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); })()), "freearea", [], "any"falsefalsefalse408)) {
  900.             // line 409
  901.             echo "             <div class=\"ec-productRole__description\">
  902.                  ";
  903.             // line 410
  904.             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.'410$this->source); })()), "freearea", [], "any"falsefalsefalse410)));
  905.             echo "
  906.             </div>
  907.         ";
  908.         }
  909.         // line 413
  910.         echo "    </div>
  911. ";
  912.         
  913.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  914.         
  915.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  916.     }
  917.     public function getTemplateName()
  918.     {
  919.         return "Product/detail.twig";
  920.     }
  921.     public function isTraitable()
  922.     {
  923.         return false;
  924.     }
  925.     public function getDebugInfo()
  926.     {
  927.         return array (  955 => 413,  949 => 410,  946 => 409,  944 => 408,  935 => 403,  930 => 400,  924 => 397,  921 => 396,  915 => 393,  912 => 392,  910 => 391,  904 => 389,  902 => 388,  891 => 382,  887 => 381,  881 => 378,  877 => 377,  869 => 372,  866 => 371,  859 => 367,  855 => 365,  848 => 361,  840 => 356,  836 => 355,  831 => 354,  828 => 353,  822 => 350,  818 => 349,  815 => 348,  813 => 347,  808 => 345,  804 => 344,  801 => 343,  799 => 342,  796 => 341,  794 => 340,  789 => 339,  785 => 337,  777 => 334,  762 => 332,  753 => 331,  736 => 330,  732 => 328,  728 => 327,  724 => 326,  721 => 325,  718 => 324,  716 => 323,  704 => 320,  701 => 319,  698 => 318,  695 => 316,  689 => 313,  685 => 312,  682 => 311,  679 => 310,  673 => 307,  667 => 306,  664 => 305,  658 => 302,  654 => 301,  651 => 300,  649 => 299,  647 => 298,  644 => 297,  642 => 296,  639 => 295,  634 => 293,  627 => 292,  624 => 291,  620 => 289,  615 => 287,  606 => 286,  604 => 285,  600 => 284,  593 => 283,  591 => 282,  588 => 281,  585 => 280,  582 => 278,  571 => 276,  567 => 275,  564 => 274,  559 => 271,  556 => 270,  548 => 263,  529 => 261,  512 => 260,  507 => 257,  496 => 255,  478 => 253,  460 => 252,  452 => 246,  442 => 245,  427 => 239,  423 => 238,  419 => 237,  415 => 236,  411 => 234,  405 => 232,  403 => 231,  398 => 230,  395 => 229,  385 => 227,  371 => 225,  363 => 224,  345 => 223,  340 => 221,  317 => 201,  307 => 194,  277 => 167,  272 => 164,  263 => 158,  259 => 156,  257 => 155,  254 => 154,  245 => 148,  241 => 146,  239 => 145,  207 => 115,  199 => 113,  197 => 112,  192 => 110,  189 => 109,  187 => 108,  173 => 97,  170 => 96,  160 => 95,  73 => 16,  63 => 15,  52 => 11,  50 => 13,  37 => 11,);
  928.     }
  929.     public function getSourceContext()
  930.     {
  931.         return new Source("{#
  932. This file is part of EC-CUBE
  933. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  934. http://www.ec-cube.co.jp/
  935. For the full copyright and license information, please view the LICENSE
  936. file that was distributed with this source code.
  937. #}
  938. {% extends 'default_frame.twig' %}
  939. {% set body_class = 'product_page' %}
  940. {% block stylesheet %}
  941.     <style>
  942.         .slick-slider {
  943.             margin-bottom: 30px;
  944.         }
  945.         .slick-dots {
  946.             position: absolute;
  947.             bottom: -45px;
  948.             display: block;
  949.             width: 100%;
  950.             padding: 0;
  951.             list-style: none;
  952.             text-align: center;
  953.         }
  954.         .slick-dots li {
  955.             position: relative;
  956.             display: inline-block;
  957.             width: 20px;
  958.             height: 20px;
  959.             margin: 0 5px;
  960.             padding: 0;
  961.             cursor: pointer;
  962.         }
  963.         .slick-dots li button {
  964.             font-size: 0;
  965.             line-height: 0;
  966.             display: block;
  967.             width: 20px;
  968.             height: 20px;
  969.             padding: 5px;
  970.             cursor: pointer;
  971.             color: transparent;
  972.             border: 0;
  973.             outline: none;
  974.             background: transparent;
  975.         }
  976.         .slick-dots li button:hover,
  977.         .slick-dots li button:focus {
  978.             outline: none;
  979.         }
  980.         .slick-dots li button:hover:before,
  981.         .slick-dots li button:focus:before {
  982.             opacity: 1;
  983.         }
  984.         .slick-dots li button:before {
  985.             content: \" \";
  986.             line-height: 20px;
  987.             position: absolute;
  988.             top: 0;
  989.             left: 0;
  990.             width: 12px;
  991.             height: 12px;
  992.             text-align: center;
  993.             opacity: .25;
  994.             background-color: black;
  995.             border-radius: 50%;
  996.         }
  997.         .slick-dots li.slick-active button:before {
  998.             opacity: .75;
  999.             background-color: black;
  1000.         }
  1001.         .slick-dots li button.thumbnail img {
  1002.             width: 0;
  1003.             height: 0;
  1004.         }
  1005.     </style>
  1006. {% endblock %}
  1007. {% block javascript %}
  1008.     <script>
  1009.         eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
  1010.         // 規格2に選択肢を割り当てる。
  1011.         function fnSetClassCategories(form, classcat_id2_selected) {
  1012.             var \$form = \$(form);
  1013.             var product_id = \$form.find('input[name=product_id]').val();
  1014.             var \$sele1 = \$form.find('select[name=classcategory_id1]');
  1015.             var \$sele2 = \$form.find('select[name=classcategory_id2]');
  1016.             eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
  1017.         }
  1018.         {% if form.classcategory_id2 is defined %}
  1019.         fnSetClassCategories(
  1020.             \$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
  1021.         );
  1022.         {% elseif form.classcategory_id1 is defined %}
  1023.         eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
  1024.         {% endif %}
  1025.     </script>
  1026.     <script>
  1027.         \$(function() {
  1028.             // bfcache無効化
  1029.             \$(window).bind('pageshow', function(event) {
  1030.                 if (event.originalEvent.persisted) {
  1031.                     location.reload(true);
  1032.                 }
  1033.             });
  1034.             \$('.item_visual').slick({
  1035.                 dots: false,
  1036.                 arrows: false,
  1037.                 responsive: [{
  1038.                     breakpoint: 768,
  1039.                     settings: {
  1040.                         dots: true
  1041.                     }
  1042.                 }]
  1043.             });
  1044.             \$('.slide-thumb').on('click', function() {
  1045.                 var index = \$(this).attr('data-index');
  1046.                 \$('.item_visual').slick('slickGoTo', index, false);
  1047.             })
  1048.         });
  1049.     </script>
  1050.     <script>
  1051.         \$(function() {
  1052.             \$('.add-cart').on('click', function(event) {
  1053.                 {% if form.classcategory_id1 is defined %}
  1054.                 // 規格1フォームの必須チェック
  1055.                 if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
  1056.                     \$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1057.                     return true;
  1058.                 } else {
  1059.                     \$('#classcategory_id1')[0].setCustomValidity('');
  1060.                 }
  1061.                 {% endif %}
  1062.                 {% if form.classcategory_id2 is defined %}
  1063.                 // 規格2フォームの必須チェック
  1064.                 if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
  1065.                     \$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
  1066.                     return true;
  1067.                 } else {
  1068.                     \$('#classcategory_id2')[0].setCustomValidity('');
  1069.                 }
  1070.                 {% endif %}
  1071.                 // 個数フォームのチェック
  1072.                 if (\$('#quantity').val() < 1) {
  1073.                     \$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
  1074.                     return true;
  1075.                 } else {
  1076.                     \$('#quantity')[0].setCustomValidity('');
  1077.                 }
  1078.                 event.preventDefault();
  1079.                 \$form = \$('#form1');
  1080.                 \$.ajax({
  1081.                     url: \$form.attr('action'),
  1082.                     type: \$form.attr('method'),
  1083.                     data: \$form.serialize(),
  1084.                     dataType: 'json',
  1085.                     beforeSend: function(xhr, settings) {
  1086.                         // Buttonを無効にする
  1087.                         \$('.add-cart').prop('disabled', true);
  1088.                     }
  1089.                 }).done(function(data) {
  1090.                     // レスポンス内のメッセージをalertで表示
  1091.                     \$.each(data.messages, function() {
  1092.                         \$('#ec-modal-header').html(this);
  1093.                     });
  1094.                     \$('.ec-modal').show()
  1095.                     // カートブロックを更新する
  1096.                     \$.ajax({
  1097.                         url: \"{{ url('block_cart') }}\",
  1098.                         type: 'GET',
  1099.                         dataType: 'html'
  1100.                     }).done(function(html) {
  1101.                         \$('.ec-headerRole__cart').html(html);
  1102.                     });
  1103.                 }).fail(function(data) {
  1104.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  1105.                 }).always(function(data) {
  1106.                     // Buttonを有効にする
  1107.                     \$('.add-cart').prop('disabled', false);
  1108.                 });
  1109.             });
  1110.         });
  1111.         \$('.ec-modal-wrap').on('click', function(e) {
  1112.             // モーダル内の処理は外側にバブリングさせない
  1113.             e.stopPropagation();
  1114.         });
  1115.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1116.             \$('.ec-modal').hide()
  1117.         });
  1118.     </script>
  1119.     <script type=\"application/ld+json\">
  1120.     {
  1121.         \"@context\": \"https://schema.org/\",
  1122.         \"@type\": \"Product\",
  1123.         \"name\": \"{{ Product.name }}\",
  1124.         \"image\": [
  1125.             {% for img in Product.ProductImage %}
  1126.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(img, 'save_image') }}\"{% if not loop.last %},{% endif %}
  1127.             {% else %}
  1128.                 \"{{ app.request.schemeAndHttpHost }}{{ asset(''|no_image_product, 'save_image') }}\"
  1129.             {% endfor %}
  1130.         ],
  1131.         \"description\": \"{{ Product.description_list | default(Product.description_detail) | replace({'\\n': '', '\\r': ''}) | slice(0,300) }}\",
  1132.         {% if Product.code_min %}
  1133.         \"sku\": \"{{ Product.code_min }}\",
  1134.         {% endif %}
  1135.         \"offers\": {
  1136.             \"@type\": \"Offer\",
  1137.             \"url\": \"{{ url('product_detail', {'id': Product.id}) }}\",
  1138.             \"priceCurrency\": \"{{ eccube_config.currency }}\",
  1139.             \"price\": {{ Product.getPrice02IncTaxMin }},
  1140.             \"availability\": \"{{ Product.stock_find ? \"InStock\" : \"OutOfStock\" }}\"
  1141.         }
  1142.     }
  1143.     </script>
  1144. {% endblock %}
  1145. {% block main %}
  1146.     <div class=\"ec-productRole mt-4\">
  1147.         <div class=\"row\">
  1148.             <div class=\"col-12 col-lg-6\">
  1149.                 <div class=\"ec-sliderItemRole px-0\">
  1150.                     <div class=\"item_visual\">
  1151.                         {% for ProductImage in Product.ProductImage %}
  1152.                             <div class=\"slide-item\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\"></div>
  1153.                         {% else %}
  1154.                             <div class=\"slide-item\"><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ loop.first ? Product.name : '' }}\" /></div>
  1155.                         {% endfor %}
  1156.                     </div>
  1157.                     <div class=\"item_nav\">
  1158.                         <div class=\"row\" style=\"width: 100%;\">
  1159.                             {% for ProductImage in Product.ProductImage %}
  1160.                                 <div class=\"slide-thumb col-4\" data-index=\"{{ loop.index0 }}\"><img class=\"img-fluid\" src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"\"></div>
  1161.                             {% endfor %}
  1162.                         </div>
  1163.                     </div>
  1164.                 </div>
  1165.             </div>
  1166.             <div class=\"col-12 col-lg-6\">
  1167.                 <div class=\"ec-productRole__profile ml-0\">
  1168.                     {# 商品名 #}
  1169.                     <div class=\"ec-productRole__title\">
  1170.                         <h2 class=\"ec-headingTitle\">{{ Product.name }}</h2>
  1171.                     </div>
  1172.                     {# タグ #}
  1173.                     <ul class=\"ec-productRole__tags\">
  1174.                         {% for Tag in Product.Tags %}
  1175.                             <li class=\"ec-productRole__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
  1176.                         {% endfor %}
  1177.                     </ul>
  1178.                     {# 通常価格 #}
  1179.                     {% if Product.hasProductClass -%}
  1180.                         <div class=\"ec-productRole__priceRegular\">
  1181.                             {% if Product.getPrice01Min is not null and Product.getPrice01IncTaxMin == Product.getPrice01IncTaxMax %}
  1182.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}</span></span>
  1183.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1184.                             {% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
  1185.                                 <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:<span class=\"price01-default\">{{ Product.getPrice01IncTaxMin|price }}~ {{ Product.getPrice01IncTaxMax|price }}</span></span>
  1186.                                 <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1187.                             {% endif %}
  1188.                         </div>
  1189.                     {% else %}
  1190.                         {% if Product.getPrice01Max is not null %}
  1191.                             <span class=\"ec-productRole__priceRegularPrice\">{{ '通常価格'|trans }}:{{ Product.getPrice01IncTaxMin|price }}</span>
  1192.                             <span class=\"ec-productRole__priceRegularTax\">{{ '税込'|trans }}</span>
  1193.                         {% endif %}
  1194.                     {% endif %}
  1195.                     {# 販売価格 #}
  1196.                     <div class=\"ec-productRole__price\">
  1197.                         {% if Product.hasProductClass -%}
  1198.                             {% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
  1199.                                 <div class=\"ec-price\">
  1200.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span>
  1201.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1202.                                 </div>
  1203.                             {% else %}
  1204.                                 <div class=\"ec-price\">
  1205.                                     <span class=\"ec-price__price price02-default\">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span>
  1206.                                     <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1207.                                 </div>
  1208.                             {% endif %}
  1209.                         {% else %}
  1210.                             <div class=\"ec-price\">
  1211.                                 <span class=\"ec-price__price\">{{ Product.getPrice02IncTaxMin|price }}</span>
  1212.                                 <span class=\"ec-price__tax\">{{ '税込'|trans }}</span>
  1213.                             </div>
  1214.                         {% endif %}
  1215.                     </div>
  1216.                     {# 商品コード #}
  1217.                     {% if Product.code_min is not empty %}
  1218.                         <div class=\"ec-productRole__code\">
  1219.                             {{ '商品コード'|trans }}: <span class=\"product-code-default\">{{ Product.code_min }}{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}{% endif %}</span>
  1220.                         </div>
  1221.                     {% endif %}
  1222.                     {# 関連カテゴリ #}
  1223.                     {% if Product.ProductCategories is not empty %}
  1224.                         <div class=\"ec-productRole__category\">
  1225.                             <div>{{ '関連カテゴリ'|trans }}</div>
  1226.                             {% for ProductCategory in Product.ProductCategories %}
  1227.                                 <ul>
  1228.                                     <li>
  1229.                                         {% for Category in ProductCategory.Category.path %}
  1230.                                             <a href=\"{{ url('product_list') }}?category_id={{ Category.id }}\">{{ Category.name }}</a> {%- if loop.last == false %}
  1231.                                             <span>></span>{% endif -%}
  1232.                                         {% endfor %}
  1233.                                     </li>
  1234.                                 </ul>
  1235.                             {% endfor %}
  1236.                         </div>
  1237.                     {% endif %}
  1238.                     <form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
  1239.                         {% if Product.stock_find %}
  1240.                             <div class=\"ec-productRole__actions\">
  1241.                                 {% if form.classcategory_id1 is defined %}
  1242.                                     <div class=\"ec-select\">
  1243.                                         {{ form_widget(form.classcategory_id1) }}
  1244.                                         {{ form_errors(form.classcategory_id1) }}
  1245.                                     </div>
  1246.                                     {% if form.classcategory_id2 is defined %}
  1247.                                         <div class=\"ec-select\">
  1248.                                             {{ form_widget(form.classcategory_id2) }}
  1249.                                             {{ form_errors(form.classcategory_id2) }}
  1250.                                         </div>
  1251.                                     {% endif %}
  1252.                                 {% endif %}
  1253.                                 <div class=\"ec-numberInput\"><span>{{ '数量'|trans }}</span>
  1254.                                     {{ form_widget(form.quantity) }}
  1255.                                     {{ form_errors(form.quantity) }}
  1256.                                 </div>
  1257.                             </div>
  1258.                             <div class=\"ec-productRole__btn\">
  1259.                                 <button type=\"submit\" class=\"ec-blockBtn--action add-cart\">
  1260.                                     {{ 'カートに入れる'|trans }}
  1261.                                 </button>
  1262.                             </div>
  1263.                         {% else %}
  1264.                             <div class=\"ec-productRole__btn\">
  1265.                                 <button type=\"button\" class=\"ec-blockBtn--action\" disabled=\"disabled\">
  1266.                                     {{ 'ただいま品切れ中です。'|trans }}
  1267.                                 </button>
  1268.                             </div>
  1269.                         {% endif %}
  1270.                         {{ form_rest(form) }}
  1271.                     </form>
  1272.                     <div class=\"ec-modal\">
  1273.                         <div class=\"ec-modal-overlay\">
  1274.                             <div class=\"ec-modal-wrap\">
  1275.                                 <span class=\"ec-modal-close\"><span class=\"ec-icon\"><img src=\"{{ asset('assets/icon/cross-dark.svg') }}\" alt=\"\"/></span></span>
  1276.                                 <div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
  1277.                                 <div class=\"ec-modal-box\">
  1278.                                     <div class=\"ec-role\">
  1279.                                         <span class=\"ec-inlineBtn--cancel\">{{ 'お買い物を続ける'|trans }}</span>
  1280.                                         <a href=\"{{ url('cart') }}\" class=\"ec-inlineBtn--action\">{{ 'カートへ進む'|trans }}</a>
  1281.                                     </div>
  1282.                                 </div>
  1283.                             </div>
  1284.                         </div>
  1285.                     </div>
  1286.                     {% if BaseInfo.option_favorite_product %}
  1287.                         <form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
  1288.                             <div class=\"ec-productRole__btn\">
  1289.                                 {% if is_favorite == false %}
  1290.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\">
  1291.                                         {{ 'お気に入りに追加'|trans }}
  1292.                                     </button>
  1293.                                 {% else %}
  1294.                                     <button type=\"submit\" id=\"favorite\" class=\"ec-blockBtn--cancel\"
  1295.                                             disabled=\"disabled\">{{ 'お気に入りに追加済です。'|trans }}
  1296.                                     </button>
  1297.                                 {% endif %}
  1298.                             </div>
  1299.                         </form>
  1300.                     {% endif %}
  1301.                     <div class=\"ec-productRole__description\">{{ Product.description_detail|raw|nl2br }}
  1302.                     </div>
  1303.                 </div>
  1304.             </div>
  1305.         </div>
  1306.         {% if Product.freearea %}
  1307.              <div class=\"ec-productRole__description\">
  1308.                  {{ include(template_from_string(Product.freearea)) }}
  1309.             </div>
  1310.         {% endif %}
  1311.     </div>
  1312. {% endblock %}
  1313. ""Product/detail.twig""/home/saiclients/sai-clientstest.com/public_html/app/template/bootcube2/Product/detail.twig");
  1314.     }
  1315. }