var/cache/dev/twig/7d/7d85730715592ce5ac4a5b35f4e2d257ddd371a83a1fef2c68b101d20ddef59a.php line 458

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. /* @Recommend42/Product/list.twig */
  14. class __TwigTemplate_6dba45cb4f454b178bc7006f464dc8f91c79cc5923d88ae0f2861713ed052e7c 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.             'javascript' => [$this'block_javascript'],
  24.             'main' => [$this'block_main'],
  25.         ];
  26.     }
  27.     protected function doGetParent(array $context)
  28.     {
  29.         // line 2
  30.         return "default_frame.twig";
  31.     }
  32.     protected function doDisplay(array $context, array $blocks = [])
  33.     {
  34.         $macros $this->macros;
  35.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  36.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@Recommend42/Product/list.twig"));
  37.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  38.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@Recommend42/Product/list.twig"));
  39.         // line 4
  40.         $context["body_class"] = "product_page";
  41.         // line 2
  42.         $this->parent $this->loadTemplate("default_frame.twig""@Recommend42/Product/list.twig"2);
  43.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  44.         
  45.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  46.         
  47.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  48.     }
  49.     // line 6
  50.     public function block_javascript($context, array $blocks = [])
  51.     {
  52.         $macros $this->macros;
  53.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  54.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  55.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  56.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  57.         // line 7
  58.         echo "    <script>
  59.         eccube.productsClassCategories = {
  60.             ";
  61.         // line 9
  62.         $context['_parent'] = $context;
  63.         $context['_seq'] = twig_ensure_traversable((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'9$this->source); })()));
  64.         $context['loop'] = [
  65.           'parent' => $context['_parent'],
  66.           'index0' => 0,
  67.           'index'  => 1,
  68.           'first'  => true,
  69.         ];
  70.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  71.             $length count($context['_seq']);
  72.             $context['loop']['revindex0'] = $length 1;
  73.             $context['loop']['revindex'] = $length;
  74.             $context['loop']['length'] = $length;
  75.             $context['loop']['last'] = === $length;
  76.         }
  77.         foreach ($context['_seq'] as $context["_key"] => $context["Product"]) {
  78.             // line 10
  79.             echo "            \"";
  80.             echo twig_escape_filter($this->envtwig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse10), "js"), "html"nulltrue);
  81.             echo "\": ";
  82.             echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson($context["Product"]);
  83.             if ((twig_get_attribute($this->env$this->source$context["loop"], "last", [], "any"falsefalsefalse10) == false)) {
  84.                 echo ", ";
  85.             }
  86.             // line 11
  87.             echo "            ";
  88.             ++$context['loop']['index0'];
  89.             ++$context['loop']['index'];
  90.             $context['loop']['first'] = false;
  91.             if (isset($context['loop']['length'])) {
  92.                 --$context['loop']['revindex0'];
  93.                 --$context['loop']['revindex'];
  94.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  95.             }
  96.         }
  97.         $_parent $context['_parent'];
  98.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Product'], $context['_parent'], $context['loop']);
  99.         $context array_intersect_key($context$_parent) + $_parent;
  100.         // line 12
  101.         echo "        };
  102.         \$(function() {
  103.             \$('.ec-blockFavoriteBtn').on(\"click\", function(e) {
  104.                 e.stopImmediatePropagation();
  105.                 e.preventDefault();
  106.                 var \$form = \$(this).parents('form.ec-favoriteForm');
  107.                 \$form.attr('action', \$(this).attr(\"data-action\"));
  108.                 \$form.attr('method', \$(this).attr(\"data-method\"));
  109.                 \$.ajax({
  110.                     url: \$form.attr('action'),
  111.                     type: \$form.attr('method'),
  112.                     dataType: 'json',
  113.                 }).done(function(data) {
  114.                     \$(\$form).find(\".ec-blockFavoriteBtnDisable\").removeClass(\"d-none\");
  115.                     \$(\$form).find(\".ec-blockFavoriteBtn\").addClass(\"d-none\");
  116.                 }).fail(function(data) {
  117.                     alert('";
  118.         // line 29
  119.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りの追加に失敗しました。"), "html"nulltrue);
  120.         echo "');
  121.                 });
  122.             })
  123.             \$('.ec-blockFavoriteBtnDisable').on(\"click\", function(e) {
  124.                 e.stopImmediatePropagation();
  125.                 e.preventDefault();
  126.                 var \$form = \$(this).parents('form.ec-favoriteForm');
  127.                 \$form.attr('action', \$(this).attr(\"data-action\"));
  128.                 \$form.attr('method', \$(this).attr(\"data-method\"));
  129.                 \$.ajax({
  130.                     url: \$form.attr('action'),
  131.                     type: \$form.attr('method'),
  132.                     dataType: 'json',
  133.                 }).done(function(data) {
  134.                     \$(\$form).find(\".ec-blockFavoriteBtnDisable\").addClass(\"d-none\");
  135.                     \$(\$form).find(\".ec-blockFavoriteBtn\").removeClass(\"d-none\");
  136.                 }).fail(function(data) {
  137.                     alert('";
  138.         // line 46
  139.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りの追加に失敗しました。"), "html"nulltrue);
  140.         echo "');
  141.                 });
  142.             })
  143.             // 表示件数を変更
  144.             \$('.disp-number').change(function() {
  145.                 var dispNumber = \$(this).val();
  146.                 \$('#disp_number').val(dispNumber);
  147.                 \$('#pageno').val(1);
  148.                 \$(\"#form1\").submit();
  149.             });
  150.             // 並び順を変更
  151.             \$('.order-by').change(function() {
  152.                 var orderBy = \$(this).val();
  153.                 \$('#orderby').val(orderBy);
  154.                 \$('#pageno').val(1);
  155.                 \$(\"#form1\").submit();
  156.             });
  157.             var modalTimer;
  158.             \$('.add-cart').on('click', function(e) {
  159.                 var self = \$(this);
  160.                 onAddCart(e, \$(this), 1, function() {
  161.                     var \$form = self.parents('li');
  162.                     \$form.find(\".ec-productRole__btn--only\").addClass(\"d-none\");
  163.                     \$form.find(\".ec-productRole__btn--group\").removeClass(\"d-none\");
  164.                     window.clearTimeout(modalTimer);
  165.                     \$('.ec-modal').show()
  166.                     modalTimer = window.setTimeout(function() {
  167.                         \$('.ec-modal').hide();
  168.                     }, 1500)
  169.                 });
  170.             });
  171.             \$('.minus__btn').on('click', function(e) {
  172.                 onAddCart(e, \$(this), -1);
  173.             })
  174.             \$('.plus__btn').on('click', function(e) {
  175.                 onAddCart(e, \$(this));
  176.             })
  177.             function onAddCart(e, self, quantity = 1, callback) {
  178.                 var \$form = \$(self).parents('li').find('form.productForm');
  179.                 // 個数フォームのチェック
  180.                 \$form.parent().find('.quantity').val(quantity);
  181.                 e.preventDefault();
  182.                 \$.ajax({
  183.                     url: \$form.attr('action'),
  184.                     type: \$form.attr('method'),
  185.                     data: \$form.serialize(),
  186.                     dataType: 'json',
  187.                     beforeSend: function(xhr, settings) {
  188.                         // Buttonを無効にする
  189.                         \$(self).prop('disabled', true);
  190.                     }
  191.                 }).done(function(data) {
  192.                     // レスポンス内のメッセージをalertで表示
  193.                     \$.each(data.messages, function() {
  194.                         \$('#ec-modal-header').text(this);
  195.                     });
  196.                     var \$quantityLabelEl = \$(self).parents('li').find('.quantity_label');
  197.                     \$quantityLabelEl.text(\$quantityLabelEl.text() * 1 + quantity * 1);
  198.                     if(callback) {
  199.                         callback();
  200.                     }
  201.                     // カートブロックを更新する
  202.                     \$.ajax({
  203.                         url: '";
  204.         // line 117
  205.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("block_cart");
  206.         echo "',
  207.                         type: 'GET',
  208.                         dataType: 'html'
  209.                     }).done(function(html) {
  210.                         \$('.ec-headerRole__cart').html(html);
  211.                     });
  212.                 }).fail(function(data) {
  213.                     alert('";
  214.         // line 124
  215.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートへの追加に失敗しました。"), "html"nulltrue);
  216.         echo "');
  217.                     \$(self).prop('disabled', false);
  218.                 }).always(function(data) {
  219.                     var \$parent = \$(self).parents('li');
  220.                     let stockVal = \$parent.find('.stock').val() * 1;
  221.                     var \$quantityLabelEl = \$parent.find('.quantity_label');
  222.                     var _quantity = \$quantityLabelEl.text() * 1;
  223.                     if(_quantity == 0) {
  224.                         // enable minus button
  225.                         \$(self).prop('disabled', false);
  226.                         \$parent.find(\".ec-productRole__btn--only\").removeClass(\"d-none\");
  227.                         \$parent.find(\".ec-productRole__btn--group\").addClass(\"d-none\");
  228.                     }
  229.                     if(_quantity > 0 && _quantity < stockVal) {
  230.                         // Buttonを有効にする
  231.                         \$(self).prop('disabled', false);
  232.                         \$parent.find('.plus__btn').prop('disabled', false);
  233.                     }
  234.                 });
  235.             }
  236.         });
  237.         \$('.ec-modal-wrap').on('click', function(e) {
  238.             // モーダル内の処理は外側にバブリングさせない
  239.             e.stopPropagation();
  240.         });
  241.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  242.             \$('.ec-modal').hide()
  243.         });
  244.     </script>
  245. ";
  246.         
  247.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  248.         
  249.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  250.     }
  251.     // line 159
  252.     public function block_main($context, array $blocks = [])
  253.     {
  254.         $macros $this->macros;
  255.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  256.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  257.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  258.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  259.         // line 160
  260.         echo "    <ul class=\"breadcrumb w-p\">
  261.         <li class=\"breadcrumb__item\">
  262.             <a href=\"";
  263.         // line 162
  264.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("homepage");
  265.         echo "\" class=\"breadcrumb__item__link\">
  266.                 ホーム
  267.             </a>
  268.         </li>
  269.         <li class=\"breadcrumb__item\">
  270.             <p class=\"breadcrumb__item__arrow\">></p>
  271.         </li>
  272.         <li class=\"breadcrumb__item\">
  273.             <p class=\"breadcrumb__item__text\">注目商品一覧</p>
  274.         </li>
  275.     </ul>
  276.     <div class=\"ec-pageHeader contentHeader\">
  277.         <h1>";
  278.         // line 174
  279.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("注目商品一覧"), "html"nulltrue);
  280.         echo "</h1>
  281.     </div>
  282.     ";
  283.         // line 176
  284.         if ((twig_length_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'176$this->source); })()), "category_id", [], "any"falsefalsefalse176), "vars", [], "any"falsefalsefalse176), "errors", [], "any"falsefalsefalse176)) > 0)) {
  285.             // line 177
  286.             echo "        <div class=\"ec-searchnavRole\">
  287.             <p class=\"errormsg text-danger\">";
  288.             // line 178
  289.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ご指定のカテゴリは存在しません"), "html"nulltrue);
  290.             echo "</p>
  291.         </div>
  292.     ";
  293.         } else {
  294.             // line 181
  295.             echo "        <div class=\"ec-searchnavRole\">
  296.             <form name=\"form1\" id=\"form1\" method=\"get\" action=\"?\">
  297.                 ";
  298.             // line 183
  299.             $context['_parent'] = $context;
  300.             $context['_seq'] = twig_ensure_traversable((isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'183$this->source); })()));
  301.             foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
  302.                 // line 184
  303.                 echo "                    <input type=\"hidden\" id=\"";
  304.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse184), "id", [], "any"falsefalsefalse184), "html"nulltrue);
  305.                 echo "\"
  306.                            name=\"";
  307.                 // line 185
  308.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse185), "full_name", [], "any"falsefalsefalse185), "html"nulltrue);
  309.                 echo "\"
  310.                            ";
  311.                 // line 186
  312.                 if ( !twig_test_empty(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse186), "value", [], "any"falsefalsefalse186))) {
  313.                     echo "value=\"";
  314.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "vars", [], "any"falsefalsefalse186), "value", [], "any"falsefalsefalse186), "html"nulltrue);
  315.                     echo "\" ";
  316.                 }
  317.                 echo "/>
  318.                 ";
  319.             }
  320.             $_parent $context['_parent'];
  321.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
  322.             $context array_intersect_key($context$_parent) + $_parent;
  323.             // line 188
  324.             echo "            </form>
  325.             ";
  326.             // line 207
  327.             echo "            <div class=\"ec-searchnavRole__infos\">
  328.                 <div class=\"ec-searchnavRole__counter\">
  329.                     ";
  330.             // line 209
  331.             if ((twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'209$this->source); })()), "totalItemCount", [], "any"falsefalsefalse209) > 0)) {
  332.                 // line 210
  333.                 echo "                        <p class=\"ec-searchnavRole__counter__title\">検索結果</p>
  334.                         ";
  335.                 // line 211
  336.                 echo $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("<p class=\"ec-searchnavRole__counter__number\">%count%件</p>", ["%count%" => twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'211$this->source); })()), "totalItemCount", [], "any"falsefalsefalse211)]);
  337.                 echo "
  338.                     ";
  339.             } else {
  340.                 // line 213
  341.                 echo "                        <span>";
  342.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お探しの商品は見つかりませんでした"), "html"nulltrue);
  343.                 echo "</span>
  344.                     ";
  345.             }
  346.             // line 215
  347.             echo "                </div>
  348.                 ";
  349.             // line 216
  350.             if ((twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'216$this->source); })()), "totalItemCount", [], "any"falsefalsefalse216) > 0)) {
  351.                 // line 217
  352.                 echo "                    <div class=\"ec-searchnavRole__actions\">
  353.                         <div class=\"ec-select\">
  354.                             ";
  355.                 // line 219
  356.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'219$this->source); })()), "disp_number", [], "any"falsefalsefalse219), 'widget', ["id" => """attr" => ["class" => "disp-number"]]);
  357.                 echo "
  358.                             ";
  359.                 // line 220
  360.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(twig_get_attribute($this->env$this->source, (isset($context["search_form"]) || array_key_exists("search_form"$context) ? $context["search_form"] : (function () { throw new RuntimeError('Variable "search_form" does not exist.'220$this->source); })()), "orderby", [], "any"falsefalsefalse220), 'widget', ["id" => """attr" => ["class" => "order-by"]]);
  361.                 echo "
  362.                         </div>
  363.                     </div>
  364.                 ";
  365.             }
  366.             // line 224
  367.             echo "            </div>
  368.         </div>
  369.         <ul class=\"stockList\">
  370.             <li class=\"stockList__block\">
  371.                 <p class=\"stockList__block__text\">在庫あり:</p>
  372.                 <p class=\"stockList__block__mark\">◎</p>
  373.             </li>
  374.             <li class=\"stockList__block\">
  375.                 <p class=\"stockList__block__text\">残りわずか:</p>
  376.                 <p class=\"stockList__block__mark\">○</p>
  377.             </li>
  378.             <li class=\"stockList__block\">
  379.                 <p class=\"stockList__block__text\">取り寄せ:</p>
  380.                 <p class=\"stockList__block__mark\">■</p>
  381.             </li>
  382.         </ul>
  383.         ";
  384.             // line 240
  385.             if ((twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'240$this->source); })()), "totalItemCount", [], "any"falsefalsefalse240) > 0)) {
  386.                 // line 241
  387.                 echo "            <div class=\"ec-shelfRole\">
  388.                 <ul class=\"ec-shelfGrid\">
  389.                     ";
  390.                 // line 243
  391.                 $context['_parent'] = $context;
  392.                 $context['_seq'] = twig_ensure_traversable((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'243$this->source); })()));
  393.                 $context['loop'] = [
  394.                   'parent' => $context['_parent'],
  395.                   'index0' => 0,
  396.                   'index'  => 1,
  397.                   'first'  => true,
  398.                 ];
  399.                 if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  400.                     $length count($context['_seq']);
  401.                     $context['loop']['revindex0'] = $length 1;
  402.                     $context['loop']['revindex'] = $length;
  403.                     $context['loop']['length'] = $length;
  404.                     $context['loop']['last'] = === $length;
  405.                 }
  406.                 foreach ($context['_seq'] as $context["_key"] => $context["Product"]) {
  407.                     // line 244
  408.                     echo "                        <li class=\"ec-shelfGrid__item\">
  409.                             <a href=\"";
  410.                     // line 245
  411.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse245)]), "html"nulltrue);
  412.                     echo "\">
  413.                                 <div class=\"ec-shelfGrid__item-image\">
  414.                                     <img src=\"";
  415.                     // line 247
  416.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(twig_get_attribute($this->env$this->source$context["Product"], "main_list_image", [], "any"falsefalsefalse247)), "save_image"), "html"nulltrue);
  417.                     echo "\" alt=\"";
  418.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "name", [], "any"falsefalsefalse247), "html"nulltrue);
  419.                     echo "\" ";
  420.                     if ((twig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse247) > 5)) {
  421.                         echo " loading=\"lazy\"";
  422.                     }
  423.                     echo ">
  424.                                     ";
  425.                     // line 248
  426.                     if ((twig_length_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "Tags", [], "any"falsefalsefalse248)) > 0)) {
  427.                         // line 249
  428.                         echo "                                    <ul class=\"ec-shelfGrid__item-tags\">
  429.                                         ";
  430.                         // line 250
  431.                         $context['_parent'] = $context;
  432.                         $context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env$this->source$context["Product"], "Tags", [], "any"falsefalsefalse250));
  433.                         foreach ($context['_seq'] as $context["_key"] => $context["Tag"]) {
  434.                             // line 251
  435.                             echo "                                            <li class=\"ec-shelfGrid__item-tags__tag tag_";
  436.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Tag"], "id", [], "any"falsefalsefalse251), "html"nulltrue);
  437.                             echo "\">";
  438.                             echo twig_escape_filter($this->env$context["Tag"], "html"nulltrue);
  439.                             echo "</li>
  440.                                         ";
  441.                         }
  442.                         $_parent $context['_parent'];
  443.                         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Tag'], $context['_parent'], $context['loop']);
  444.                         $context array_intersect_key($context$_parent) + $_parent;
  445.                         // line 253
  446.                         echo "                                    </ul>
  447.                                     ";
  448.                     }
  449.                     // line 255
  450.                     echo "                                </div>
  451.                                 <p class=\"ec-shelfGrid__item-name\">";
  452.                     // line 256
  453.                     echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "name", [], "any"falsefalsefalse256), "html"nulltrue);
  454.                     echo "</p>
  455.                                 ";
  456.                     // line 257
  457.                     if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_USER")) {
  458.                         // line 258
  459.                         echo "
  460.                                 <div class=\"ec-shelfGrid__item-stock\">
  461.                                     <div class=\"ec-shelfGrid__item-stock__block\">
  462.                                         <p class=\"ec-shelfGrid__item-stock__block__title\">
  463.                                             【発送目安】
  464.                                         </p>
  465.                                         <p class=\"ec-shelfGrid__item-stock__block__detail\">
  466.                                             ";
  467.                         // line 265
  468.                         if (twig_get_attribute($this->env$this->source$context["Product"], "getDeliveryDuration", [], "any"falsefalsefalse265)) {
  469.                             // line 266
  470.                             echo "                                                ";
  471.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["Product"], "getDeliveryDuration", [], "any"falsefalsefalse266), "name", [], "any"falsefalsefalse266), "html"nulltrue);
  472.                             echo "
  473.                                             ";
  474.                         } else {
  475.                             // line 268
  476.                             echo "                                                指定なし
  477.                                             ";
  478.                         }
  479.                         // line 270
  480.                         echo "                                        </p>
  481.                                     </div>
  482.                                     <div class=\"ec-shelfGrid__item-stock__block\">
  483.                                         <p class=\"ec-shelfGrid__item-stock__block__title\">
  484.                                             【在庫】
  485.                                         </p>
  486.                                         ";
  487.                         // line 277
  488.                         echo "                                        <p class=\"ec-shelfGrid__item-stock__block__detail\">
  489.                                             ";
  490.                         // line 278
  491.                         if ((twig_get_attribute($this->env$this->source$context["Product"], "getStockUnlimitedMin", [], "any"falsefalsefalse278) || (twig_get_attribute($this->env$this->source$context["Product"], "getStockMin", [], "any"falsefalsefalse278) >= 10))) {
  492.                             // line 279
  493.                             echo "                                                ◎
  494.                                             ";
  495.                         } else {
  496.                             // line 281
  497.                             echo "                                                ";
  498.                             if (((twig_get_attribute($this->env$this->source$context["Product"], "getStockMin", [], "any"falsefalsefalse281) >= 1) && (twig_get_attribute($this->env$this->source$context["Product"], "getStockMin", [], "any"falsefalsefalse281) <= 9))) {
  499.                                 // line 282
  500.                                 echo "                                                    ○
  501.                                                 ";
  502.                             }
  503.                             // line 284
  504.                             echo "                                                ";
  505.                             if ((twig_get_attribute($this->env$this->source$context["Product"], "getStockMin", [], "any"falsefalsefalse284) <= 0)) {
  506.                                 // line 285
  507.                                 echo "                                                    ■
  508.                                                 ";
  509.                             }
  510.                             // line 287
  511.                             echo "                                            ";
  512.                         }
  513.                         // line 288
  514.                         echo "                                        </p>
  515.                                     </div>
  516.                                 </div>
  517.                                 ";
  518.                         // line 296
  519.                         echo "                                ";
  520.                         if (twig_get_attribute($this->env$this->source$context["Product"], "description_list", [], "any"falsefalsefalse296)) {
  521.                             // line 297
  522.                             echo "                                    <p>";
  523.                             echo twig_nl2br(twig_get_attribute($this->env$this->source$context["Product"], "description_list", [], "any"falsefalsefalse297));
  524.                             echo "</p>
  525.                                 ";
  526.                         }
  527.                         // line 299
  528.                         echo "                                <div class=\"ec-shelfGrid__item-flex\">
  529.                                     <p class=\"price02-default ec-shelfGrid__item-price\">
  530.                                         ";
  531.                         // line 301
  532.                         if (twig_get_attribute($this->env$this->source$context["Product"], "hasProductClass", [], "any"falsefalsefalse301)) {
  533.                             // line 302
  534.                             echo "                                            ";
  535.                             if ((twig_get_attribute($this->env$this->source$context["Product"], "getPrice02Min", [], "any"falsefalsefalse302) == twig_get_attribute($this->env$this->source$context["Product"], "getPrice02Max", [], "any"falsefalsefalse302))) {
  536.                                 // line 303
  537.                                 echo "                                                ";
  538.                                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMin", [], "any"falsefalsefalse303)), "html"nulltrue);
  539.                                 echo "
  540.                                             ";
  541.                             } else {
  542.                                 // line 305
  543.                                 echo "                                                ";
  544.                                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMin", [], "any"falsefalsefalse305)), "html"nulltrue);
  545.                                 echo " ~ ";
  546.                                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMax", [], "any"falsefalsefalse305)), "html"nulltrue);
  547.                                 echo "
  548.                                             ";
  549.                             }
  550.                             // line 307
  551.                             echo "                                        ";
  552.                         } else {
  553.                             // line 308
  554.                             echo "                                            ";
  555.                             echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter(twig_get_attribute($this->env$this->source$context["Product"], "getPrice02IncTaxMin", [], "any"falsefalsefalse308)), "html"nulltrue);
  556.                             echo "
  557.                                         ";
  558.                         }
  559.                         // line 310
  560.                         echo "                                    </p>
  561.                                     ";
  562.                         // line 311
  563.                         if ($this->extensions['Symfony\Bridge\Twig\Extension\SecurityExtension']->isGranted("ROLE_USER")) {
  564.                             // line 312
  565.                             echo "                                    <div class=\"ec-shelfGrid__item-flex__favorite\">
  566.                                         <form class=\"ec-favoriteForm\" action=\"?\" method=\"?\">
  567.                                             <div class=\"ec-productRole__btn\">
  568.                                                 <button data-method=\"POST\" data-action=\"";
  569.                             // line 315
  570.                             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$context["Product"], "id", [], "any"falsefalsefalse315)]), "html"nulltrue);
  571.                             echo "\" id=\"favorite\" class=\"";
  572.                             if ((twig_get_attribute($this->env$this->source, ($context["isFavorite"] ?? null), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse315), [], "array"truetruefalse315) && (twig_get_attribute($this->env$this->source, (isset($context["isFavorite"]) || array_key_exists("isFavorite"$context) ? $context["isFavorite"] : (function () { throw new RuntimeError('Variable "isFavorite" does not exist.'315$this->source); })()), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse315), [], "array"falsefalsefalse315) == true))) {
  573.                                 echo " d-none ";
  574.                             }
  575.                             echo " ec-blockFavoriteBtn ec-blockBtn--cancel ec-shelfGrid__item-flex__favorite__btn\">
  576.                                                     <img src=\"";
  577.                             // line 316
  578.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/favorite/before.svg"), "html"nulltrue);
  579.                             echo "\" alt=\"お気に入り\" width=\"24\" height=\"24\" loading=\"lazy\">
  580.                                                 </button>
  581.                                                 <button data-method=\"DELETE\" data-action=\"";
  582.                             // line 318
  583.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_favorite_delete", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse318)]), "html"nulltrue);
  584.                             echo "\" id=\"favorite\" class=\"";
  585.                             if ((twig_get_attribute($this->env$this->source, ($context["isFavorite"] ?? null), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse318), [], "array"truetruefalse318) && (twig_get_attribute($this->env$this->source, (isset($context["isFavorite"]) || array_key_exists("isFavorite"$context) ? $context["isFavorite"] : (function () { throw new RuntimeError('Variable "isFavorite" does not exist.'318$this->source); })()), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse318), [], "array"falsefalsefalse318) == false))) {
  586.                                 echo " d-none ";
  587.                             }
  588.                             echo "ec-blockFavoriteBtnDisable ec-blockBtn--cancel ec-shelfGrid__item-flex__favorite__btn\">
  589.                                                    <img src=\"";
  590.                             // line 319
  591.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/favorite/after.svg"), "html"nulltrue);
  592.                             echo "\" alt=\"お気に入り\" width=\"24\" height=\"24\" loading=\"lazy\">
  593.                                                 </button>
  594.                                             </div>
  595.                                         </form>
  596.                                     </div>
  597.                                     ";
  598.                         }
  599.                         // line 325
  600.                         echo "                                </div>
  601.                             </a>
  602.                                 ";
  603.                         // line 328
  604.                         if ((( !twig_get_attribute($this->env$this->source$context["Product"], "getStockUnlimitedMin", [], "any"falsefalsefalse328) && (twig_get_attribute($this->env$this->source$context["Product"], "getStockMin", [], "any"falsefalsefalse328) <= 0)) && twig_get_attribute($this->env$this->source$context["Product"], "isStockDiscontinued", [], "any"falsefalsefalse328))) {
  605.                             // line 329
  606.                             echo "                                    <div class=\"ec-productRole__btn\">
  607.                                         <button type=\"button\" class=\"ec-disabled__btn\" disabled=\"disabled\">
  608.                                             ";
  609.                             // line 331
  610.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("在庫なし"), "html"nulltrue);
  611.                             echo "
  612.                                         </button>
  613.                                     </div>
  614.                                 ";
  615.                         } else {
  616.                             // line 335
  617.                             echo "                                    ";
  618.                             $context["form"] = twig_get_attribute($this->env$this->source, (isset($context["forms"]) || array_key_exists("forms"$context) ? $context["forms"] : (function () { throw new RuntimeError('Variable "forms" does not exist.'335$this->source); })()), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse335), [], "array"falsefalsefalse335);
  619.                             // line 336
  620.                             echo "                                    <form class=\"productForm\" name=\"form";
  621.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse336), "html"nulltrue);
  622.                             echo "\" id=\"productForm";
  623.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse336), "html"nulltrue);
  624.                             echo "\" action=\"";
  625.                             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$context["Product"], "id", [], "any"falsefalsefalse336)]), "html"nulltrue);
  626.                             echo "\" method=\"post\">
  627.                                         <div class=\"ec-productRole__actions\">
  628.                                             ";
  629.                             // line 338
  630.                             if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id1", [], "any"truetruefalse338)) {
  631.                                 // line 339
  632.                                 echo "                                                <div class=\"ec-select\">
  633.                                                     ";
  634.                                 // line 340
  635.                                 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.'340$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse340), 'widget');
  636.                                 echo "
  637.                                                     ";
  638.                                 // line 341
  639.                                 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.'341$this->source); })()), "classcategory_id1", [], "any"falsefalsefalse341), 'errors');
  640.                                 echo "
  641.                                                 </div>
  642.                                                 ";
  643.                                 // line 343
  644.                                 if (twig_get_attribute($this->env$this->source, ($context["form"] ?? null), "classcategory_id2", [], "any"truetruefalse343)) {
  645.                                     // line 344
  646.                                     echo "                                                    <div class=\"ec-select\">
  647.                                                         ";
  648.                                     // line 345
  649.                                     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_id2", [], "any"falsefalsefalse345), 'widget');
  650.                                     echo "
  651.                                                         ";
  652.                                     // line 346
  653.                                     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.'346$this->source); })()), "classcategory_id2", [], "any"falsefalsefalse346), 'errors');
  654.                                     echo "
  655.                                                     </div>
  656.                                                 ";
  657.                                 }
  658.                                 // line 349
  659.                                 echo "                                            ";
  660.                             }
  661.                             // line 350
  662.                             echo "                                                <div class=\"ec-numberInput d-none\"><span>";
  663.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("数量"), "html"nulltrue);
  664.                             echo "</span>
  665.                                                     ";
  666.                             // line 351
  667.                             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.'351$this->source); })()), "quantity", [], "any"falsefalsefalse351), 'widget', ["attr" => ["class" => "quantity"]]);
  668.                             echo "
  669.                                                     ";
  670.                             // line 352
  671.                             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.'352$this->source); })()), "quantity", [], "any"falsefalsefalse352), 'errors');
  672.                             echo "
  673.                                                 </div>
  674.                                         
  675.                                         </div>
  676.                                         ";
  677.                             // line 356
  678.                             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.'356$this->source); })()), 'rest');
  679.                             echo "
  680.                                     </form>
  681.                                     ";
  682.                             // line 358
  683.                             $context["default"] = 0;
  684.                             // line 359
  685.                             echo "                                    ";
  686.                             if (twig_get_attribute($this->env$this->source, ($context["itemInCart"] ?? null), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse359), [], "array"truetruefalse359)) {
  687.                                 // line 360
  688.                                 echo "                                        ";
  689.                                 $context["default"] = twig_get_attribute($this->env$this->source, (isset($context["itemInCart"]) || array_key_exists("itemInCart"$context) ? $context["itemInCart"] : (function () { throw new RuntimeError('Variable "itemInCart" does not exist.'360$this->source); })()), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse360), [], "array"falsefalsefalse360);
  690.                                 // line 361
  691.                                 echo "                                    ";
  692.                             }
  693.                             // line 362
  694.                             echo "                                    ";
  695.                             $context["disabled"] = false;
  696.                             // line 363
  697.                             echo "                                    ";
  698.                             if ( !twig_get_attribute($this->env$this->source$context["Product"], "isStockDiscontinued", [], "any"falsefalsefalse363)) {
  699.                                 // line 364
  700.                                 echo "                                        <input type=\"hidden\" name=\"stock\" class=\"stock\" value=\"999999999999\">
  701.                                     ";
  702.                             } else {
  703.                                 // line 366
  704.                                 echo "                                        ";
  705.                                 if ((twig_get_attribute($this->env$this->source$context["Product"], "getStockMin", [], "any"falsefalsefalse366) <= (isset($context["default"]) || array_key_exists("default"$context) ? $context["default"] : (function () { throw new RuntimeError('Variable "default" does not exist.'366$this->source); })()))) {
  706.                                     // line 367
  707.                                     echo "                                            ";
  708.                                     $context["disabled"] = true;
  709.                                     // line 368
  710.                                     echo "                                        ";
  711.                                 }
  712.                                 // line 369
  713.                                 echo "                                        <input type=\"hidden\" name=\"stock\" class=\"stock\" value=\"";
  714.                                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "getStockMin", [], "any"falsefalsefalse369), "html"nulltrue);
  715.                                 echo "\">
  716.                                     ";
  717.                             }
  718.                             // line 371
  719.                             echo "                                    <div class=\"ec-productRole__btn--group ec-productRole__btn ";
  720.                             if (twig_get_attribute($this->env$this->source, ($context["itemInCart"] ?? null), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse371), [], "array"truetruefalse371)) {
  721.                                 echo " d-block ";
  722.                             } else {
  723.                                 echo " d-none ";
  724.                             }
  725.                             echo "\">
  726.                                         <div class=\"d-flex align-items-center ec-productRole__btn-wrapper\">
  727.                                             <button class=\"minus__btn\" data-cartid=\"";
  728.                             // line 373
  729.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse373), "html"nulltrue);
  730.                             echo "\" form=\"productForm";
  731.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse373), "html"nulltrue);
  732.                             echo "\">
  733.                                                 <span>−</span>
  734.                                             </button>
  735.                                             <span class=\"quantity_label\">";
  736.                             // line 376
  737.                             echo twig_escape_filter($this->env, (isset($context["default"]) || array_key_exists("default"$context) ? $context["default"] : (function () { throw new RuntimeError('Variable "default" does not exist.'376$this->source); })()), "html"nulltrue);
  738.                             echo "</span>
  739.                                             <button class=\"plus__btn\" data-cartid=\"";
  740.                             // line 377
  741.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse377), "html"nulltrue);
  742.                             echo "\" form=\"productForm";
  743.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse377), "html"nulltrue);
  744.                             echo "\" ";
  745.                             if ((isset($context["disabled"]) || array_key_exists("disabled"$context) ? $context["disabled"] : (function () { throw new RuntimeError('Variable "disabled" does not exist.'377$this->source); })())) {
  746.                                 echo "disabled";
  747.                             }
  748.                             echo ">
  749.                                                 <span>+</span>
  750.                                             </button>
  751.                                         </div>
  752.                                     </div>
  753.                                     <div class=\"ec-productRole__btn--only ec-productRole__btn ";
  754.                             // line 382
  755.                             if (twig_get_attribute($this->env$this->source, ($context["itemInCart"] ?? null), twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse382), [], "array"truetruefalse382)) {
  756.                                 echo " d-none ";
  757.                             } else {
  758.                                 echo " d-block ";
  759.                             }
  760.                             echo "\">
  761.                                         <button type=\"submit\" class=\"ec-regular__btn add-cart\" data-cartid=\"";
  762.                             // line 383
  763.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse383), "html"nulltrue);
  764.                             echo "\" form=\"productForm";
  765.                             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsefalse383), "html"nulltrue);
  766.                             echo "\">
  767.                                             ";
  768.                             // line 384
  769.                             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html"nulltrue);
  770.                             echo "
  771.                                         </button>
  772.                                     </div>
  773.                                 ";
  774.                         }
  775.                         // line 388
  776.                         echo "                            ";
  777.                     } else {
  778.                         // line 389
  779.                         echo "                                <a href=\"";
  780.                         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("entry_contact");
  781.                         echo "\" class=\"ec-blockProductBtn--action\">会員登録はこちら</a>
  782.                             ";
  783.                     }
  784.                     // line 391
  785.                     echo "                        </li>
  786.                     ";
  787.                     ++$context['loop']['index0'];
  788.                     ++$context['loop']['index'];
  789.                     $context['loop']['first'] = false;
  790.                     if (isset($context['loop']['length'])) {
  791.                         --$context['loop']['revindex0'];
  792.                         --$context['loop']['revindex'];
  793.                         $context['loop']['last'] = === $context['loop']['revindex0'];
  794.                     }
  795.                 }
  796.                 $_parent $context['_parent'];
  797.                 unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Product'], $context['_parent'], $context['loop']);
  798.                 $context array_intersect_key($context$_parent) + $_parent;
  799.                 // line 393
  800.                 echo "                </ul>
  801.             </div>
  802.             <div class=\"ec-modal\">
  803.                 <div class=\"ec-modal-overlay\">
  804.                     <div class=\"ec-modal-wrap\">
  805.                         <div class=\"ec-modal-box\">
  806.                             <div class=\"ec-role\">
  807.                                 <div class=\"ec-modal-icon\">
  808.                                     <img src=\"";
  809.                 // line 401
  810.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/icon/icon_cart.png""user_data"), "html"nulltrue);
  811.                 echo "\" alt=\"\">
  812.                                 </div>
  813.                             </div>
  814.                         </div>
  815.                         <div id=\"ec-modal-header\" class=\"text-center\">";
  816.                 // line 405
  817.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに追加しました。"), "html"nulltrue);
  818.                 echo "</div>
  819.                     </div>
  820.                 </div>
  821.             </div>
  822.             <ul class=\"stockList bottom\">
  823.                 <li class=\"stockList__block\">
  824.                     <p class=\"stockList__block__text\">在庫あり:</p>
  825.                     <p class=\"stockList__block__mark\">◎</p>
  826.                 </li>
  827.                 <li class=\"stockList__block\">
  828.                     <p class=\"stockList__block__text\">残りわずか:</p>
  829.                     <p class=\"stockList__block__mark\">○</p>
  830.                 </li>
  831.                 <li class=\"stockList__block\">
  832.                     <p class=\"stockList__block__text\">取り寄せ:</p>
  833.                     <p class=\"stockList__block__mark\">■</p>
  834.                 </li>
  835.             </ul>
  836.             <div class=\"ec-pagerRole\">
  837.                 ";
  838.                 // line 424
  839.                 $this->loadTemplate("pager.twig""@Recommend42/Product/list.twig"424)->display(twig_array_merge($context, ["pages" => twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'424$this->source); })()), "paginationData", [], "any"falsefalsefalse424)]));
  840.                 // line 425
  841.                 echo "            </div>
  842.         ";
  843.             }
  844.             // line 427
  845.             echo "    ";
  846.         }
  847.         
  848.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  849.         
  850.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  851.     }
  852.     public function getTemplateName()
  853.     {
  854.         return "@Recommend42/Product/list.twig";
  855.     }
  856.     public function isTraitable()
  857.     {
  858.         return false;
  859.     }
  860.     public function getDebugInfo()
  861.     {
  862.         return array (  878 => 427,  874 => 425,  872 => 424,  850 => 405,  843 => 401,  833 => 393,  818 => 391,  812 => 389,  809 => 388,  802 => 384,  796 => 383,  788 => 382,  774 => 377,  770 => 376,  762 => 373,  752 => 371,  746 => 369,  743 => 368,  740 => 367,  737 => 366,  733 => 364,  730 => 363,  727 => 362,  724 => 361,  721 => 360,  718 => 359,  716 => 358,  711 => 356,  704 => 352,  700 => 351,  695 => 350,  692 => 349,  686 => 346,  682 => 345,  679 => 344,  677 => 343,  672 => 341,  668 => 340,  665 => 339,  663 => 338,  653 => 336,  650 => 335,  643 => 331,  639 => 329,  637 => 328,  632 => 325,  623 => 319,  615 => 318,  610 => 316,  602 => 315,  597 => 312,  595 => 311,  592 => 310,  586 => 308,  583 => 307,  575 => 305,  569 => 303,  566 => 302,  564 => 301,  560 => 299,  554 => 297,  551 => 296,  546 => 288,  543 => 287,  539 => 285,  536 => 284,  532 => 282,  529 => 281,  525 => 279,  523 => 278,  520 => 277,  512 => 270,  508 => 268,  502 => 266,  500 => 265,  491 => 258,  489 => 257,  485 => 256,  482 => 255,  478 => 253,  467 => 251,  463 => 250,  460 => 249,  458 => 248,  448 => 247,  443 => 245,  440 => 244,  423 => 243,  419 => 241,  417 => 240,  399 => 224,  392 => 220,  388 => 219,  384 => 217,  382 => 216,  379 => 215,  373 => 213,  368 => 211,  365 => 210,  363 => 209,  359 => 207,  356 => 188,  344 => 186,  340 => 185,  335 => 184,  331 => 183,  327 => 181,  321 => 178,  318 => 177,  316 => 176,  311 => 174,  296 => 162,  292 => 160,  282 => 159,  238 => 124,  228 => 117,  154 => 46,  134 => 29,  115 => 12,  101 => 11,  93 => 10,  76 => 9,  72 => 7,  62 => 6,  51 => 2,  49 => 4,  36 => 2,);
  863.     }
  864.     public function getSourceContext()
  865.     {
  866.         return new Source("
  867. {% extends 'default_frame.twig' %}
  868. {% set body_class = 'product_page' %}
  869. {% block javascript %}
  870.     <script>
  871.         eccube.productsClassCategories = {
  872.             {% for Product in pagination %}
  873.             \"{{ Product.id|escape('js') }}\": {{ class_categories_as_json(Product)|raw }}{% if loop.last == false %}, {% endif %}
  874.             {% endfor %}
  875.         };
  876.         \$(function() {
  877.             \$('.ec-blockFavoriteBtn').on(\"click\", function(e) {
  878.                 e.stopImmediatePropagation();
  879.                 e.preventDefault();
  880.                 var \$form = \$(this).parents('form.ec-favoriteForm');
  881.                 \$form.attr('action', \$(this).attr(\"data-action\"));
  882.                 \$form.attr('method', \$(this).attr(\"data-method\"));
  883.                 \$.ajax({
  884.                     url: \$form.attr('action'),
  885.                     type: \$form.attr('method'),
  886.                     dataType: 'json',
  887.                 }).done(function(data) {
  888.                     \$(\$form).find(\".ec-blockFavoriteBtnDisable\").removeClass(\"d-none\");
  889.                     \$(\$form).find(\".ec-blockFavoriteBtn\").addClass(\"d-none\");
  890.                 }).fail(function(data) {
  891.                     alert('{{ 'お気に入りの追加に失敗しました。'|trans }}');
  892.                 });
  893.             })
  894.             \$('.ec-blockFavoriteBtnDisable').on(\"click\", function(e) {
  895.                 e.stopImmediatePropagation();
  896.                 e.preventDefault();
  897.                 var \$form = \$(this).parents('form.ec-favoriteForm');
  898.                 \$form.attr('action', \$(this).attr(\"data-action\"));
  899.                 \$form.attr('method', \$(this).attr(\"data-method\"));
  900.                 \$.ajax({
  901.                     url: \$form.attr('action'),
  902.                     type: \$form.attr('method'),
  903.                     dataType: 'json',
  904.                 }).done(function(data) {
  905.                     \$(\$form).find(\".ec-blockFavoriteBtnDisable\").addClass(\"d-none\");
  906.                     \$(\$form).find(\".ec-blockFavoriteBtn\").removeClass(\"d-none\");
  907.                 }).fail(function(data) {
  908.                     alert('{{ 'お気に入りの追加に失敗しました。'|trans }}');
  909.                 });
  910.             })
  911.             // 表示件数を変更
  912.             \$('.disp-number').change(function() {
  913.                 var dispNumber = \$(this).val();
  914.                 \$('#disp_number').val(dispNumber);
  915.                 \$('#pageno').val(1);
  916.                 \$(\"#form1\").submit();
  917.             });
  918.             // 並び順を変更
  919.             \$('.order-by').change(function() {
  920.                 var orderBy = \$(this).val();
  921.                 \$('#orderby').val(orderBy);
  922.                 \$('#pageno').val(1);
  923.                 \$(\"#form1\").submit();
  924.             });
  925.             var modalTimer;
  926.             \$('.add-cart').on('click', function(e) {
  927.                 var self = \$(this);
  928.                 onAddCart(e, \$(this), 1, function() {
  929.                     var \$form = self.parents('li');
  930.                     \$form.find(\".ec-productRole__btn--only\").addClass(\"d-none\");
  931.                     \$form.find(\".ec-productRole__btn--group\").removeClass(\"d-none\");
  932.                     window.clearTimeout(modalTimer);
  933.                     \$('.ec-modal').show()
  934.                     modalTimer = window.setTimeout(function() {
  935.                         \$('.ec-modal').hide();
  936.                     }, 1500)
  937.                 });
  938.             });
  939.             \$('.minus__btn').on('click', function(e) {
  940.                 onAddCart(e, \$(this), -1);
  941.             })
  942.             \$('.plus__btn').on('click', function(e) {
  943.                 onAddCart(e, \$(this));
  944.             })
  945.             function onAddCart(e, self, quantity = 1, callback) {
  946.                 var \$form = \$(self).parents('li').find('form.productForm');
  947.                 // 個数フォームのチェック
  948.                 \$form.parent().find('.quantity').val(quantity);
  949.                 e.preventDefault();
  950.                 \$.ajax({
  951.                     url: \$form.attr('action'),
  952.                     type: \$form.attr('method'),
  953.                     data: \$form.serialize(),
  954.                     dataType: 'json',
  955.                     beforeSend: function(xhr, settings) {
  956.                         // Buttonを無効にする
  957.                         \$(self).prop('disabled', true);
  958.                     }
  959.                 }).done(function(data) {
  960.                     // レスポンス内のメッセージをalertで表示
  961.                     \$.each(data.messages, function() {
  962.                         \$('#ec-modal-header').text(this);
  963.                     });
  964.                     var \$quantityLabelEl = \$(self).parents('li').find('.quantity_label');
  965.                     \$quantityLabelEl.text(\$quantityLabelEl.text() * 1 + quantity * 1);
  966.                     if(callback) {
  967.                         callback();
  968.                     }
  969.                     // カートブロックを更新する
  970.                     \$.ajax({
  971.                         url: '{{ url('block_cart') }}',
  972.                         type: 'GET',
  973.                         dataType: 'html'
  974.                     }).done(function(html) {
  975.                         \$('.ec-headerRole__cart').html(html);
  976.                     });
  977.                 }).fail(function(data) {
  978.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  979.                     \$(self).prop('disabled', false);
  980.                 }).always(function(data) {
  981.                     var \$parent = \$(self).parents('li');
  982.                     let stockVal = \$parent.find('.stock').val() * 1;
  983.                     var \$quantityLabelEl = \$parent.find('.quantity_label');
  984.                     var _quantity = \$quantityLabelEl.text() * 1;
  985.                     if(_quantity == 0) {
  986.                         // enable minus button
  987.                         \$(self).prop('disabled', false);
  988.                         \$parent.find(\".ec-productRole__btn--only\").removeClass(\"d-none\");
  989.                         \$parent.find(\".ec-productRole__btn--group\").addClass(\"d-none\");
  990.                     }
  991.                     if(_quantity > 0 && _quantity < stockVal) {
  992.                         // Buttonを有効にする
  993.                         \$(self).prop('disabled', false);
  994.                         \$parent.find('.plus__btn').prop('disabled', false);
  995.                     }
  996.                 });
  997.             }
  998.         });
  999.         \$('.ec-modal-wrap').on('click', function(e) {
  1000.             // モーダル内の処理は外側にバブリングさせない
  1001.             e.stopPropagation();
  1002.         });
  1003.         \$('.ec-modal-overlay, .ec-modal, .ec-modal-close, .ec-inlineBtn--cancel').on('click', function() {
  1004.             \$('.ec-modal').hide()
  1005.         });
  1006.     </script>
  1007. {% endblock %}
  1008. {% block main %}
  1009.     <ul class=\"breadcrumb w-p\">
  1010.         <li class=\"breadcrumb__item\">
  1011.             <a href=\"{{ url('homepage') }}\" class=\"breadcrumb__item__link\">
  1012.                 ホーム
  1013.             </a>
  1014.         </li>
  1015.         <li class=\"breadcrumb__item\">
  1016.             <p class=\"breadcrumb__item__arrow\">></p>
  1017.         </li>
  1018.         <li class=\"breadcrumb__item\">
  1019.             <p class=\"breadcrumb__item__text\">注目商品一覧</p>
  1020.         </li>
  1021.     </ul>
  1022.     <div class=\"ec-pageHeader contentHeader\">
  1023.         <h1>{{ '注目商品一覧'|trans }}</h1>
  1024.     </div>
  1025.     {% if search_form.category_id.vars.errors|length > 0 %}
  1026.         <div class=\"ec-searchnavRole\">
  1027.             <p class=\"errormsg text-danger\">{{ 'ご指定のカテゴリは存在しません'|trans }}</p>
  1028.         </div>
  1029.     {% else %}
  1030.         <div class=\"ec-searchnavRole\">
  1031.             <form name=\"form1\" id=\"form1\" method=\"get\" action=\"?\">
  1032.                 {% for item in search_form %}
  1033.                     <input type=\"hidden\" id=\"{{ item.vars.id }}\"
  1034.                            name=\"{{ item.vars.full_name }}\"
  1035.                            {% if item.vars.value is not empty %}value=\"{{ item.vars.value }}\" {% endif %}/>
  1036.                 {% endfor %}
  1037.             </form>
  1038.             {# <div class=\"ec-searchnavRole__topicpath\">
  1039.                 <ol class=\"ec-topicpath\">
  1040.                     <li class=\"ec-topicpath__item\"><a href=\"{{ url('product_list') }}\">{{ '全て'|trans }}</a>
  1041.                     </li>
  1042.                     {% if Category is not null %}
  1043.                         {% for Path in Category.path %}
  1044.                             <li class=\"ec-topicpath__divider\">|</li>
  1045.                             <li class=\"ec-topicpath__item{% if loop.last %}--active{% endif %}\"><a
  1046.                                         href=\"{{ url('product_list') }}?category_id={{ Path.id }}\">{{ Path.name }}</a>
  1047.                             </li>
  1048.                         {% endfor %}
  1049.                     {% endif %}
  1050.                     {% if search_form.vars.value and search_form.vars.value.name %}
  1051.                         <li class=\"ec-topicpath__divider\">|</li>
  1052.                         <li class=\"ec-topicpath__item\">{{ '「%name%」の検索結果'|trans({ '%name%': search_form.vars.value.name }) }}</li>
  1053.                     {% endif %}
  1054.                 </ol>
  1055.             </div> #}
  1056.             <div class=\"ec-searchnavRole__infos\">
  1057.                 <div class=\"ec-searchnavRole__counter\">
  1058.                     {% if pagination.totalItemCount > 0 %}
  1059.                         <p class=\"ec-searchnavRole__counter__title\">検索結果</p>
  1060.                         {{ '<p class=\"ec-searchnavRole__counter__number\">%count%件</p>'|trans({ '%count%': pagination.totalItemCount })|raw }}
  1061.                     {% else %}
  1062.                         <span>{{ 'お探しの商品は見つかりませんでした'|trans }}</span>
  1063.                     {% endif %}
  1064.                 </div>
  1065.                 {% if pagination.totalItemCount > 0 %}
  1066.                     <div class=\"ec-searchnavRole__actions\">
  1067.                         <div class=\"ec-select\">
  1068.                             {{ form_widget(search_form.disp_number, {'id': '', 'attr': {'class': 'disp-number'}}) }}
  1069.                             {{ form_widget(search_form.orderby, {'id': '', 'attr': {'class': 'order-by'}}) }}
  1070.                         </div>
  1071.                     </div>
  1072.                 {% endif %}
  1073.             </div>
  1074.         </div>
  1075.         <ul class=\"stockList\">
  1076.             <li class=\"stockList__block\">
  1077.                 <p class=\"stockList__block__text\">在庫あり:</p>
  1078.                 <p class=\"stockList__block__mark\">◎</p>
  1079.             </li>
  1080.             <li class=\"stockList__block\">
  1081.                 <p class=\"stockList__block__text\">残りわずか:</p>
  1082.                 <p class=\"stockList__block__mark\">○</p>
  1083.             </li>
  1084.             <li class=\"stockList__block\">
  1085.                 <p class=\"stockList__block__text\">取り寄せ:</p>
  1086.                 <p class=\"stockList__block__mark\">■</p>
  1087.             </li>
  1088.         </ul>
  1089.         {% if pagination.totalItemCount > 0 %}
  1090.             <div class=\"ec-shelfRole\">
  1091.                 <ul class=\"ec-shelfGrid\">
  1092.                     {% for Product in pagination %}
  1093.                         <li class=\"ec-shelfGrid__item\">
  1094.                             <a href=\"{{ url('product_detail', {'id': Product.id}) }}\">
  1095.                                 <div class=\"ec-shelfGrid__item-image\">
  1096.                                     <img src=\"{{ asset(Product.main_list_image|no_image_product, 'save_image') }}\" alt=\"{{ Product.name }}\" {% if loop.index > 5 %} loading=\"lazy\"{% endif %}>
  1097.                                     {% if Product.Tags|length > 0  %}
  1098.                                     <ul class=\"ec-shelfGrid__item-tags\">
  1099.                                         {% for Tag in Product.Tags %}
  1100.                                             <li class=\"ec-shelfGrid__item-tags__tag tag_{{ Tag.id }}\">{{ Tag }}</li>
  1101.                                         {% endfor %}
  1102.                                     </ul>
  1103.                                     {% endif %}
  1104.                                 </div>
  1105.                                 <p class=\"ec-shelfGrid__item-name\">{{ Product.name }}</p>
  1106.                                 {% if is_granted('ROLE_USER') %}
  1107.                                 <div class=\"ec-shelfGrid__item-stock\">
  1108.                                     <div class=\"ec-shelfGrid__item-stock__block\">
  1109.                                         <p class=\"ec-shelfGrid__item-stock__block__title\">
  1110.                                             【発送目安】
  1111.                                         </p>
  1112.                                         <p class=\"ec-shelfGrid__item-stock__block__detail\">
  1113.                                             {% if Product.getDeliveryDuration %}
  1114.                                                 {{Product.getDeliveryDuration.name}}
  1115.                                             {% else %}
  1116.                                                 指定なし
  1117.                                             {% endif %}
  1118.                                         </p>
  1119.                                     </div>
  1120.                                     <div class=\"ec-shelfGrid__item-stock__block\">
  1121.                                         <p class=\"ec-shelfGrid__item-stock__block__title\">
  1122.                                             【在庫】
  1123.                                         </p>
  1124.                                         {# 在庫をマークで表示何個から何個か◎等はこれから確認 #}
  1125.                                         <p class=\"ec-shelfGrid__item-stock__block__detail\">
  1126.                                             {% if Product.getStockUnlimitedMin or Product.getStockMin >= 10 %}
  1127.                                                 ◎
  1128.                                             {% else %}
  1129.                                                 {% if Product.getStockMin >= 1 and Product.getStockMin <= 9 %}
  1130.                                                     ○
  1131.                                                 {% endif %}
  1132.                                                 {% if Product.getStockMin <= 0 %}
  1133.                                                     ■
  1134.                                                 {% endif %}
  1135.                                             {% endif %}
  1136.                                         </p>
  1137.                                     </div>
  1138.                                 </div>
  1139.                                 {# {% if not Product.getStockUnlimitedMin %}
  1140.                                     <p>
  1141.                                         発送可能{{Product.getStockMin}}個
  1142.                                     </p>
  1143.                                 {% endif %} #}
  1144.                                 {% if Product.description_list %}
  1145.                                     <p>{{ Product.description_list|raw|nl2br }}</p>
  1146.                                 {% endif %}
  1147.                                 <div class=\"ec-shelfGrid__item-flex\">
  1148.                                     <p class=\"price02-default ec-shelfGrid__item-price\">
  1149.                                         {% if Product.hasProductClass %}
  1150.                                             {% if Product.getPrice02Min == Product.getPrice02Max %}
  1151.                                                 {{ Product.getPrice02IncTaxMin|price }}
  1152.                                             {% else %}
  1153.                                                 {{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}
  1154.                                             {% endif %}
  1155.                                         {% else %}
  1156.                                             {{ Product.getPrice02IncTaxMin|price }}
  1157.                                         {% endif %}
  1158.                                     </p>
  1159.                                     {% if is_granted('ROLE_USER') %}
  1160.                                     <div class=\"ec-shelfGrid__item-flex__favorite\">
  1161.                                         <form class=\"ec-favoriteForm\" action=\"?\" method=\"?\">
  1162.                                             <div class=\"ec-productRole__btn\">
  1163.                                                 <button data-method=\"POST\" data-action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" id=\"favorite\" class=\"{% if isFavorite[Product.id] is defined and isFavorite[Product.id] == true %} d-none {% endif %} ec-blockFavoriteBtn ec-blockBtn--cancel ec-shelfGrid__item-flex__favorite__btn\">
  1164.                                                     <img src=\"{{ asset('assets/img/favorite/before.svg') }}\" alt=\"お気に入り\" width=\"24\" height=\"24\" loading=\"lazy\">
  1165.                                                 </button>
  1166.                                                 <button data-method=\"DELETE\" data-action=\"{{ url('product_favorite_delete', {id:Product.id}) }}\" id=\"favorite\" class=\"{% if isFavorite[Product.id] is defined and isFavorite[Product.id] == false %} d-none {% endif %}ec-blockFavoriteBtnDisable ec-blockBtn--cancel ec-shelfGrid__item-flex__favorite__btn\">
  1167.                                                    <img src=\"{{ asset('assets/img/favorite/after.svg') }}\" alt=\"お気に入り\" width=\"24\" height=\"24\" loading=\"lazy\">
  1168.                                                 </button>
  1169.                                             </div>
  1170.                                         </form>
  1171.                                     </div>
  1172.                                     {% endif %}
  1173.                                 </div>
  1174.                             </a>
  1175.                                 {% if not Product.getStockUnlimitedMin and Product.getStockMin <= 0 and Product.isStockDiscontinued %}
  1176.                                     <div class=\"ec-productRole__btn\">
  1177.                                         <button type=\"button\" class=\"ec-disabled__btn\" disabled=\"disabled\">
  1178.                                             {{ '在庫なし'|trans }}
  1179.                                         </button>
  1180.                                     </div>
  1181.                                 {% else %}
  1182.                                     {% set form = forms[Product.id] %}
  1183.                                     <form class=\"productForm\" name=\"form{{ Product.id }}\" id=\"productForm{{ Product.id }}\" action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\">
  1184.                                         <div class=\"ec-productRole__actions\">
  1185.                                             {% if form.classcategory_id1 is defined %}
  1186.                                                 <div class=\"ec-select\">
  1187.                                                     {{ form_widget(form.classcategory_id1) }}
  1188.                                                     {{ form_errors(form.classcategory_id1) }}
  1189.                                                 </div>
  1190.                                                 {% if form.classcategory_id2 is defined %}
  1191.                                                     <div class=\"ec-select\">
  1192.                                                         {{ form_widget(form.classcategory_id2) }}
  1193.                                                         {{ form_errors(form.classcategory_id2) }}
  1194.                                                     </div>
  1195.                                                 {% endif %}
  1196.                                             {% endif %}
  1197.                                                 <div class=\"ec-numberInput d-none\"><span>{{ '数量'|trans }}</span>
  1198.                                                     {{ form_widget(form.quantity, {'attr': {'class': 'quantity'}} ) }}
  1199.                                                     {{ form_errors(form.quantity) }}
  1200.                                                 </div>
  1201.                                         
  1202.                                         </div>
  1203.                                         {{ form_rest(form) }}
  1204.                                     </form>
  1205.                                     {% set default = 0 %}
  1206.                                     {% if itemInCart[Product.id] is defined %}
  1207.                                         {% set default = itemInCart[Product.id] %}
  1208.                                     {% endif %}
  1209.                                     {% set disabled = false %}
  1210.                                     {% if not Product.isStockDiscontinued %}
  1211.                                         <input type=\"hidden\" name=\"stock\" class=\"stock\" value=\"999999999999\">
  1212.                                     {% else %}
  1213.                                         {% if Product.getStockMin <= default %}
  1214.                                             {% set disabled = true %}
  1215.                                         {% endif %}
  1216.                                         <input type=\"hidden\" name=\"stock\" class=\"stock\" value=\"{{Product.getStockMin}}\">
  1217.                                     {% endif %}
  1218.                                     <div class=\"ec-productRole__btn--group ec-productRole__btn {% if itemInCart[Product.id] is defined %} d-block {% else %} d-none {% endif %}\">
  1219.                                         <div class=\"d-flex align-items-center ec-productRole__btn-wrapper\">
  1220.                                             <button class=\"minus__btn\" data-cartid=\"{{ Product.id }}\" form=\"productForm{{ Product.id }}\">
  1221.                                                 <span>−</span>
  1222.                                             </button>
  1223.                                             <span class=\"quantity_label\">{{ default }}</span>
  1224.                                             <button class=\"plus__btn\" data-cartid=\"{{ Product.id }}\" form=\"productForm{{ Product.id }}\" {% if disabled %}disabled{% endif %}>
  1225.                                                 <span>+</span>
  1226.                                             </button>
  1227.                                         </div>
  1228.                                     </div>
  1229.                                     <div class=\"ec-productRole__btn--only ec-productRole__btn {% if itemInCart[Product.id] is defined %} d-none {% else %} d-block {% endif %}\">
  1230.                                         <button type=\"submit\" class=\"ec-regular__btn add-cart\" data-cartid=\"{{ Product.id }}\" form=\"productForm{{ Product.id }}\">
  1231.                                             {{ 'カートに入れる'|trans }}
  1232.                                         </button>
  1233.                                     </div>
  1234.                                 {% endif %}
  1235.                             {% else %}
  1236.                                 <a href=\"{{ url('entry_contact') }}\" class=\"ec-blockProductBtn--action\">会員登録はこちら</a>
  1237.                             {% endif %}
  1238.                         </li>
  1239.                     {% endfor %}
  1240.                 </ul>
  1241.             </div>
  1242.             <div class=\"ec-modal\">
  1243.                 <div class=\"ec-modal-overlay\">
  1244.                     <div class=\"ec-modal-wrap\">
  1245.                         <div class=\"ec-modal-box\">
  1246.                             <div class=\"ec-role\">
  1247.                                 <div class=\"ec-modal-icon\">
  1248.                                     <img src=\"{{ asset('assets/img/icon/icon_cart.png', 'user_data') }}\" alt=\"\">
  1249.                                 </div>
  1250.                             </div>
  1251.                         </div>
  1252.                         <div id=\"ec-modal-header\" class=\"text-center\">{{ 'カートに追加しました。'|trans }}</div>
  1253.                     </div>
  1254.                 </div>
  1255.             </div>
  1256.             <ul class=\"stockList bottom\">
  1257.                 <li class=\"stockList__block\">
  1258.                     <p class=\"stockList__block__text\">在庫あり:</p>
  1259.                     <p class=\"stockList__block__mark\">◎</p>
  1260.                 </li>
  1261.                 <li class=\"stockList__block\">
  1262.                     <p class=\"stockList__block__text\">残りわずか:</p>
  1263.                     <p class=\"stockList__block__mark\">○</p>
  1264.                 </li>
  1265.                 <li class=\"stockList__block\">
  1266.                     <p class=\"stockList__block__text\">取り寄せ:</p>
  1267.                     <p class=\"stockList__block__mark\">■</p>
  1268.                 </li>
  1269.             </ul>
  1270.             <div class=\"ec-pagerRole\">
  1271.                 {% include \"pager.twig\" with {'pages': pagination.paginationData} %}
  1272.             </div>
  1273.         {% endif %}
  1274.     {% endif %}
  1275. {% endblock %}
  1276. ""@Recommend42/Product/list.twig""/home/bravers/bravers.xbiz.jp/public_html/app/Plugin/Recommend42/Resource/template/Product/list.twig");
  1277.     }
  1278. }