<?php
use Twig\Environment;
use Twig\Error\LoaderError;
use Twig\Error\RuntimeError;
use Twig\Extension\SandboxExtension;
use Twig\Markup;
use Twig\Sandbox\SecurityError;
use Twig\Sandbox\SecurityNotAllowedTagError;
use Twig\Sandbox\SecurityNotAllowedFilterError;
use Twig\Sandbox\SecurityNotAllowedFunctionError;
use Twig\Source;
use Twig\Template;
/* Product/detail_1.twig */
class __TwigTemplate_c593bd1f031b359bc19c1425096d0945dc0001ecda5d9f62d167a6d2bc96cfa1 extends \Eccube\Twig\Template
{
private $source;
private $macros = [];
public function __construct(Environment $env)
{
parent::__construct($env);
$this->source = $this->getSourceContext();
$this->blocks = [
'javascript_head' => [$this, 'block_javascript_head'],
'stylesheet' => [$this, 'block_stylesheet'],
'javascript' => [$this, 'block_javascript'],
'main' => [$this, 'block_main'],
];
$this->sandbox = $this->env->getExtension('\Twig\Extension\SandboxExtension');
$this->checkSecurity();
}
protected function doGetParent(array $context)
{
// line 11
return "default_frame.twig";
}
protected function doDisplay(array $context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail_1.twig"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "Product/detail_1.twig"));
// line 13
$context["body_class"] = "product_page";
// line 11
$this->parent = $this->loadTemplate("default_frame.twig", "Product/detail_1.twig", 11);
$this->parent->display($context, array_merge($this->blocks, $blocks));
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
}
// line 15
public function block_javascript_head($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript_head"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript_head"));
// line 16
echo "<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: \"view_item\",
ecommerce: {
currency: \"JPY\",
value: ";
// line 23
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 23, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 23), 23, $this->source), "html", null, true);
echo ",
items: [
{
item_id: \"";
// line 26
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 26, $this->source); })()), "id", [], "any", false, false, true, 26), 26, $this->source), "html", null, true);
echo "\",
item_name: \"";
// line 27
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 27, $this->source); })()), "name", [], "any", false, false, true, 27), 27, $this->source), "html", null, true);
echo "\",
price: ";
// line 28
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 28, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 28), 28, $this->source), "html", null, true);
echo ",
quantity: 1
}
]
}
});
</script>
<script>
window.addEventListener('load', function () {
if (window.location.pathname.includes('/products/detail/')) {
document.querySelector('.c-button--h.add-cart').addEventListener('click', function(e){
dataLayer.push({
event: \"add_to_cart\",
ecommerce: {
transaction_id: \"";
// line 42
echo twig_escape_filter($this->env, (twig_random($this->env) + 1), "html", null, true);
echo "\",
value: ";
// line 43
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 43, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 43), 43, $this->source), "html", null, true);
echo ",
currency: \"JPY\",
items: [
{
item_name: \"";
// line 47
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 47, $this->source); })()), "name", [], "any", false, false, true, 47), 47, $this->source), "html", null, true);
echo "\",
item_id: \"";
// line 48
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 48, $this->source); })()), "id", [], "any", false, false, true, 48), 48, $this->source), "html", null, true);
echo "\",
quantity: \$('#quantity').val()
}]
}
});
});
};
});
</script>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 59
public function block_stylesheet($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "stylesheet"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 62
public function block_javascript($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "javascript"));
// line 63
echo " <script>
eccube.classCategories = ";
// line 64
echo $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getClassCategoriesAsJson($this->sandbox->ensureToStringAllowed((isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 64, $this->source); })()), 64, $this->source));
echo ";
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
";
// line 75
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 75)) {
// line 76
echo " fnSetClassCategories(
\$('#form1'), ";
// line 77
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 77, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 77), "vars", [], "any", false, false, true, 77), "value", [], "any", false, false, true, 77), 77, $this->source));
echo "
);
";
} elseif (twig_get_attribute($this->env, $this->source, // line 79
($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 79)) {
// line 80
echo " eccube.checkStock(\$('#form1'), ";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 80, $this->source); })()), "id", [], "any", false, false, true, 80), 80, $this->source), "html", null, true);
echo ", ";
echo json_encode($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, 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.', 80, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 80), "vars", [], "any", false, false, true, 80), "value", [], "any", false, false, true, 80), 80, $this->source));
echo ", null);
";
}
// line 82
echo " </script>
";
// line 84
if (((isset($context["classcategory_id1"]) || array_key_exists("classcategory_id1", $context) ? $context["classcategory_id1"] : (function () { throw new RuntimeError('Variable "classcategory_id1" does not exist.', 84, $this->source); })()) && (isset($context["classcategory_id2"]) || array_key_exists("classcategory_id2", $context) ? $context["classcategory_id2"] : (function () { throw new RuntimeError('Variable "classcategory_id2" does not exist.', 84, $this->source); })()))) {
// line 85
echo " <script>
\$(function() {
\$('select[name=\"classcategory_id1\"]').val('";
// line 87
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed((isset($context["classcategory_id1"]) || array_key_exists("classcategory_id1", $context) ? $context["classcategory_id1"] : (function () { throw new RuntimeError('Variable "classcategory_id1" does not exist.', 87, $this->source); })()), 87, $this->source), "html", null, true);
echo "');
fnSetClassCategories(
\$('#form1'), '";
// line 89
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed((isset($context["classcategory_id2"]) || array_key_exists("classcategory_id2", $context) ? $context["classcategory_id2"] : (function () { throw new RuntimeError('Variable "classcategory_id2" does not exist.', 89, $this->source); })()), 89, $this->source), "html", null, true);
echo "'
);
});
</script>
";
} elseif ( // line 93
(isset($context["classcategory_id1"]) || array_key_exists("classcategory_id1", $context) ? $context["classcategory_id1"] : (function () { throw new RuntimeError('Variable "classcategory_id1" does not exist.', 93, $this->source); })())) {
// line 94
echo " <script>
\$(function() {
\$('select[name=\"classcategory_id1\"]').val('";
// line 96
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed((isset($context["classcategory_id1"]) || array_key_exists("classcategory_id1", $context) ? $context["classcategory_id1"] : (function () { throw new RuntimeError('Variable "classcategory_id1" does not exist.', 96, $this->source); })()), 96, $this->source), "html", null, true);
echo "');
\$('select[name=\"classcategory_id1\"]').change();
});
</script>
";
}
// line 129
echo " <script>
\$(function() {
\$('.add-cart').on('click', function(event) {
";
// line 132
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 132)) {
// line 133
echo " // 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('";
// line 135
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
";
}
// line 141
echo "
";
// line 142
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 142)) {
// line 143
echo " // 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('";
// line 145
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("項目が選択されていません"), "html", null, true);
echo "');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
";
}
// line 151
echo "
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('";
// line 154
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("1以上で入力してください。"), "html", null, true);
echo "');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
\$form = \$('#form1');
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
\$form.submit();
";
// line 198
echo " });
});
\$('.ec-modal-overlay, .ec-modal .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
// line 207
public function block_main($context, array $blocks = [])
{
$macros = $this->macros;
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "main"));
// line 208
echo "\t\t\t<div class=\"l-blockRole\">
\t\t\t\t<div class=\"u-cts productsDetail-main\">
\t\t\t\t\t<div class=\"u-cts__inner\">
\t\t\t\t\t\t<section class=\"productsDetail-main-upper\">
\t\t\t\t\t\t\t<figure class=\"productsDetail-main__image js-productsImage\">
\t\t\t\t\t\t\t\t<div class=\"productsDetail-main__image-main\">
\t\t\t\t\t\t\t\t\t<div class=\"num js-productsImage-num\">1/";
// line 214
echo twig_escape_filter($this->env, twig_length_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 214, $this->source); })()), "ProductImage", [], "any", false, false, true, 214), 214, $this->source)), "html", null, true);
echo "</div>
\t\t\t\t\t\t\t\t\t<ul class=\"p-slick--c js-productsImage-slide\">
";
// line 216
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 216, $this->source); })()), "ProductImage", [], "any", false, false, true, 216));
$context['_iterated'] = false;
foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
// line 217
echo "\t\t\t\t\t\t\t\t\t\t<li><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 217, $this->source), "save_image"), "html", null, true);
echo "\" alt=\"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 217, $this->source); })()), "name", [], "any", false, false, true, 217), 217, $this->source), "html", null, true);
echo "\"></li>
";
$context['_iterated'] = true;
}
if (!$context['_iterated']) {
// line 219
echo "\t\t\t\t\t\t\t\t\t\t<li><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct(""), "save_image"), "html", null, true);
echo "\" alt=\"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 219, $this->source); })()), "name", [], "any", false, false, true, 219), 219, $this->source), "html", null, true);
echo "\"></li>
";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 221
echo "\t\t\t\t\t\t\t\t\t</ul>
\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t<div class=\"productsDetail-main__image-sub\">
<div class=\"modal-box js-productsImage-thumb\">
<div class=\"is-modal-close\">✕</div>
<ul>
";
// line 227
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 227, $this->source); })()), "ProductImage", [], "any", false, false, true, 227));
$context['loop'] = [
'parent' => $context['_parent'],
'index0' => 0,
'index' => 1,
'first' => true,
];
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
$length = count($context['_seq']);
$context['loop']['revindex0'] = $length - 1;
$context['loop']['revindex'] = $length;
$context['loop']['length'] = $length;
$context['loop']['last'] = 1 === $length;
}
foreach ($context['_seq'] as $context["_key"] => $context["ProductImage"]) {
// line 228
echo " <li><a href=\"#\" class=\"";
echo (((twig_get_attribute($this->env, $this->source, $context["loop"], "index0", [], "any", false, false, true, 228) == 0)) ? ("is-active") : (""));
echo "\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed($context["ProductImage"], 228, $this->source), "save_image"), "html", null, true);
echo "\" alt=\"";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 228, $this->source); })()), "name", [], "any", false, false, true, 228), 228, $this->source), "html", null, true);
echo "\"></a></li>
";
++$context['loop']['index0'];
++$context['loop']['index'];
$context['loop']['first'] = false;
if (isset($context['loop']['length'])) {
--$context['loop']['revindex0'];
--$context['loop']['revindex'];
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
}
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductImage'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 230
echo " </ul>
</div>
\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t</figure>
\t\t\t\t\t\t\t<div class=\"productsDetail-main__info\">
\t\t\t\t\t\t\t\t<p class=\"brand\">ブランド:
";
// line 236
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 236, $this->source); })()), "ProductCategories", [], "any", false, false, true, 236));
foreach ($context['_seq'] as $context["_key"] => $context["ProductCategory"]) {
// line 237
echo "\t";
$context['_parent'] = $context;
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["ProductCategory"], "Category", [], "any", false, false, true, 237), "path", [], "any", false, false, true, 237));
foreach ($context['_seq'] as $context["_key"] => $context["Category_"]) {
// line 238
echo "\t\t";
if ( !(null === twig_get_attribute($this->env, $this->source, $context["Category_"], "parent", [], "any", false, false, true, 238))) {
// line 239
echo "\t\t\t";
if (twig_in_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["Category_"], "parent", [], "any", false, false, true, 239), "id", [], "any", false, false, true, 239), [0 => 21])) {
// line 240
echo "\t\t\t\t";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, $context["Category_"], "name", [], "any", false, false, true, 240), 240, $this->source), "html", null, true);
echo "
\t\t\t";
}
// line 242
echo "\t\t";
}
// line 243
echo "\t";
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Category_'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
}
$_parent = $context['_parent'];
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['ProductCategory'], $context['_parent'], $context['loop']);
$context = array_intersect_key($context, $_parent) + $_parent;
// line 245
echo "\t\t\t\t\t\t\t\t</p>
\t\t\t\t\t\t\t\t<h1 class=\"name\">";
// line 246
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 246, $this->source); })()), "name", [], "any", false, false, true, 246), 246, $this->source), "html", null, true);
echo "</h1>
<div class=\"yotpo bottomLine\" data-yotpo-product-id=\"";
// line 247
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 247, $this->source); })()), "id", [], "any", false, false, true, 247), 247, $this->source), "html", null, true);
echo "\"></div>
\t\t\t\t\t\t\t\t";
// line 249
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 249, $this->source); })()), "hasProductClass", [], "any", false, false, true, 249)) {
// line 250
if ((twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 250, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 250) == twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 250, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 250))) {
// line 251
echo "\t\t\t\t\t\t\t\t<p class=\"price\"><span class=\"price02-default\">";
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 251, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 251), 251, $this->source)), "html", null, true);
echo "</span><span class=\"zei\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span></p>
\t";
} else {
// line 253
echo "\t\t\t\t\t\t\t\t<p class=\"price\"><span class=\"price02-default\">";
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 253, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 253), 253, $this->source)), "html", null, true);
echo " ~ ";
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 253, $this->source); })()), "getPrice02IncTaxMax", [], "any", false, false, true, 253), 253, $this->source)), "html", null, true);
echo "</span><span class=\"zei\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span></p>
\t";
}
} else {
// line 256
echo "\t\t\t\t\t\t\t\t<p class=\"price\"><span class=\"price02-default\">";
echo twig_escape_filter($this->env, $this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 256, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 256), 256, $this->source)), "html", null, true);
echo "</span><span class=\"zei\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("税込"), "html", null, true);
echo "</span></p>
";
}
// line 258
echo "\t\t\t\t\t\t\t<form action=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_cart", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 258, $this->source); })()), "id", [], "any", false, false, true, 258)]), "html", null, true);
echo "\" method=\"post\" id=\"form1\" name=\"form1\">
";
// line 259
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 259, $this->source); })()), "stock_find", [], "any", false, false, true, 259)) {
// line 260
echo "\t";
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id1", [], "any", true, true, true, 260)) {
// line 261
echo "\t\t\t\t\t\t\t\t<div class=\"color c-select--a\">
\t\t";
// line 262
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 262, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 262), 262, $this->source), 'widget');
echo "
\t\t";
// line 263
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 263, $this->source); })()), "classcategory_id1", [], "any", false, false, true, 263), 263, $this->source), 'errors');
echo "
\t\t\t\t\t\t\t\t</div>
\t\t";
// line 265
if (twig_get_attribute($this->env, $this->source, ($context["form"] ?? null), "classcategory_id2", [], "any", true, true, true, 265)) {
// line 266
echo "\t\t\t\t\t\t\t\t<div class=\"size c-select--a\">
\t\t";
// line 267
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 267, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 267), 267, $this->source), 'widget');
echo "
\t\t";
// line 268
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 268, $this->source); })()), "classcategory_id2", [], "any", false, false, true, 268), 268, $this->source), 'errors');
echo "
\t\t\t\t\t\t\t\t</div>
\t\t";
}
// line 271
echo "\t";
}
// line 272
echo "
\t\t\t\t\t\t\t<div class=\"c-input--a\">
\t\t\t\t\t\t\t\t";
// line 274
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 274, $this->source); })()), "quantity", [], "any", false, false, true, 274), 274, $this->source), 'widget');
echo "
\t\t\t\t\t\t\t\t";
// line 275
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(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.', 275, $this->source); })()), "quantity", [], "any", false, false, true, 275), 275, $this->source), 'errors');
echo "
\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t\t<dl class=\"info u-cfx\">
\t\t\t\t\t\t\t\t\t\t<dt>商品ID</dt><dd>:<span class=\"product-code-default\"></span></dd>
\t\t\t\t\t\t\t\t\t\t<dt>発送日数</dt><dd>:<span class=\"delivery-duration-default\"></span></dd>
\t\t\t\t\t\t\t\t\t</dl>
\t\t\t\t\t\t\t\t<div class=\"cart\"><button type=\"submit\" class=\"c-button--h add-cart\"><span>";
// line 282
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("カートに入れる"), "html", null, true);
echo "</span></button></div>
";
} else {
// line 284
echo "\t\t\t\t\t\t\t\t<div class=\"cart\"><button type=\"button\" class=\"c-button--h\" disabled=\"disabled\">";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("ただいま品切れ中です。"), "html", null, true);
echo "</button></div>
";
}
// line 286
echo "\t\t\t\t\t\t\t";
echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed((isset($context["form"]) || array_key_exists("form", $context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.', 286, $this->source); })()), 286, $this->source), 'rest');
echo "
\t\t\t\t\t\t\t</form>
";
// line 288
if (twig_get_attribute($this->env, $this->source, (isset($context["BaseInfo"]) || array_key_exists("BaseInfo", $context) ? $context["BaseInfo"] : (function () { throw new RuntimeError('Variable "BaseInfo" does not exist.', 288, $this->source); })()), "option_favorite_product", [], "any", false, false, true, 288)) {
// line 289
echo "\t\t\t\t\t\t\t<div class=\"recommend\">
\t\t\t\t\t\t\t\t<form action=\"";
// line 290
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_add_favorite", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 290, $this->source); })()), "id", [], "any", false, false, true, 290)]), "html", null, true);
echo "\" method=\"post\">
\t";
// line 291
if (((isset($context["is_favorite"]) || array_key_exists("is_favorite", $context) ? $context["is_favorite"] : (function () { throw new RuntimeError('Variable "is_favorite" does not exist.', 291, $this->source); })()) == false)) {
// line 292
echo "\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"c-button--k\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/icon_heart.svg"), "html", null, true);
echo "\" alt=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加"), "html", null, true);
echo "\" class=\"icon\"></button>
\t";
} else {
// line 294
echo "\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"c-button--k is-active\"><img src=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/img/icon_heart.svg"), "html", null, true);
echo "\" alt=\"";
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("お気に入りに追加済みです。"), "html", null, true);
echo "\" class=\"icon\"></button>
\t";
}
// line 296
echo "\t\t\t\t\t\t\t\t</form>
\t\t\t\t\t\t\t</div>
";
}
// line 299
echo "\t\t\t\t\t\t\t\t<p class=\"link\">
\t\t\t\t\t\t\t\t\t<a href=\"";
// line 300
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("help_guide");
echo "#delivery\" target=\"_blank\" class=\"c-button--j\">発送方法・送料・納期についてはこちら</a>
\t\t\t\t\t\t\t\t</p>
\t\t\t\t\t\t\t\t<p class=\"link\">
\t\t\t\t\t\t\t\t\t<a href=\"";
// line 303
echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("contact");
echo "?product_id=";
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 303, $this->source); })()), "id", [], "any", false, false, true, 303), 303, $this->source), "html", null, true);
echo "\" target=\"_blank\" class=\"c-button--j\">商品についてお問い合わせはこちら</a>
\t\t\t\t\t\t\t\t</p>
\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t</section>
\t\t\t\t\t\t<section class=\"productsDetail-main-under\">
\t\t\t\t\t\t\t<div class=\"productsDetail-main__detail js-toggle--a def-open\">
\t\t\t\t\t\t\t\t<div class=\"productsDetail-main__detail-body\">
<h2 class=\"productsDetail-main__detail-button\"><span class=\"c-button--i no-link\">配送について</span></h2>
\t\t\t\t\t\t\t\t\t<div class=\"block\">
<div class=\"box\">
<h2 class=\"title u-pc\">配送について</h2>
<p class=\"text ec-Description2\">";
// line 314
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 314, $this->source); })()), "description2", [], "any", false, false, true, 314), 314, $this->source));
echo "</p>
</div>
</div>
<h2 class=\"productsDetail-main__detail-button js-toggle__button\"><a href=\"#\" class=\"c-button--i\">商品説明</a></h2>
<div class=\"block js-toggle__body\">
<div class=\"box\">
<h3 class=\"title\">";
// line 320
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 320, $this->source); })()), "section2_title", [], "any", false, false, true, 320), 320, $this->source), "html", null, true);
echo "</h3>
<div class=\"text\">
<p>";
// line 322
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 322, $this->source); })()), "section2_body", [], "any", false, false, true, 322), 322, $this->source));
echo "</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">商品詳細</h3>
<div class=\"text\">
<p>";
// line 328
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 328, $this->source); })()), "description_detail", [], "any", false, false, true, 328), 328, $this->source));
echo "</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">サイズ</h3>
<div class=\"text\">
<p>";
// line 334
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 334, $this->source); })()), "section3_body", [], "any", false, false, true, 334), 334, $this->source));
echo "</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">素材</h3>
<div class=\"text\">
<p>";
// line 340
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 340, $this->source); })()), "section4_body", [], "any", false, false, true, 340), 340, $this->source));
echo "</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">その他</h3>
<div class=\"text\">
<p>";
// line 346
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 346, $this->source); })()), "section5_body", [], "any", false, false, true, 346), 346, $this->source));
echo "</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">";
// line 350
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 350, $this->source); })()), "section1_title", [], "any", false, false, true, 350), 350, $this->source), "html", null, true);
echo "</h3>
<div class=\"text\">
<p>";
// line 352
echo twig_nl2br($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 352, $this->source); })()), "section1_body", [], "any", false, false, true, 352), 352, $this->source));
echo "</p>
</div>
</div>
</div>
\t\t\t\t\t\t\t </div>
\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t</section>
<div class=\"chatplus-bt\">
<img src=\"https://app.chatplus.jp/image/button/7fd82760/2/6716f0c26e926\" alt=\"\" style=\"cursor:pointer;\" onclick='window.open(\"https://app.chatplus.jp/chat/visitor/7fd82760_2?t=btn&bw=410&bh=520&bg=%23d6cbac\", \"chat_plus_jp_window\", \"width=410, height=520, menubar=no, toolbar=no, scrollbars=no, location=no\");'>
</div>
";
// line 363
echo " <div class=\"yotpo yotpo-main-widget review-area\"
data-product-id=\"";
// line 364
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 364, $this->source); })()), "id", [], "any", false, false, true, 364), 364, $this->source), "html", null, true);
echo "\"
data-name=\"";
// line 365
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 365, $this->source); })()), "name", [], "any", false, false, true, 365), 365, $this->source), "html", null, true);
echo "\"
data-url=\"";
// line 366
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 366, $this->source); })()), "id", [], "any", false, false, true, 366)]), "html", null, true);
echo "\"
data-price=\"";
// line 367
echo twig_escape_filter($this->env, $this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 367, $this->source); })()), "getPrice02IncTaxMin", [], "any", false, false, true, 367), 367, $this->source), "html", null, true);
echo "\"
data-currency=\"JPY\"
";
// line 369
if (twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 369, $this->source); })()), "ProductImage", [], "any", false, false, true, 369)) {
// line 370
echo " data-image-url=\"";
echo twig_escape_filter($this->env, twig_trim_filter($this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("homepage"), "/"), "html", null, true);
echo twig_escape_filter($this->env, $this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["Product"]) || array_key_exists("Product", $context) ? $context["Product"] : (function () { throw new RuntimeError('Variable "Product" does not exist.', 370, $this->source); })()), "ProductImage", [], "any", false, false, true, 370), 0, [], "array", false, false, true, 370), 370, $this->source), "save_image"), "html", null, true);
echo "\"
";
}
// line 372
echo " data-description=\"\">
</div>
\t\t\t\t\t</div>
\t\t\t\t</div>
\t\t\t<!-- / --></div>
";
// line 379
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, "Block/product_gallery.twig");
echo "
";
// line 380
echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env, $context, "Block/recommend_product_block.twig");
echo "
";
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
}
public function getTemplateName()
{
return "Product/detail_1.twig";
}
public function isTraitable()
{
return false;
}
public function getDebugInfo()
{
return array ( 753 => 380, 749 => 379, 740 => 372, 733 => 370, 731 => 369, 726 => 367, 722 => 366, 718 => 365, 714 => 364, 711 => 363, 698 => 352, 693 => 350, 686 => 346, 677 => 340, 668 => 334, 659 => 328, 650 => 322, 645 => 320, 636 => 314, 620 => 303, 614 => 300, 611 => 299, 606 => 296, 598 => 294, 590 => 292, 588 => 291, 584 => 290, 581 => 289, 579 => 288, 573 => 286, 567 => 284, 562 => 282, 552 => 275, 548 => 274, 544 => 272, 541 => 271, 535 => 268, 531 => 267, 528 => 266, 526 => 265, 521 => 263, 517 => 262, 514 => 261, 511 => 260, 509 => 259, 504 => 258, 496 => 256, 485 => 253, 477 => 251, 475 => 250, 473 => 249, 469 => 247, 465 => 246, 462 => 245, 452 => 243, 449 => 242, 443 => 240, 440 => 239, 437 => 238, 432 => 237, 428 => 236, 420 => 230, 399 => 228, 382 => 227, 374 => 221, 363 => 219, 353 => 217, 348 => 216, 343 => 214, 335 => 208, 325 => 207, 308 => 198, 294 => 154, 289 => 151, 280 => 145, 276 => 143, 274 => 142, 271 => 141, 262 => 135, 258 => 133, 256 => 132, 251 => 129, 243 => 96, 239 => 94, 237 => 93, 230 => 89, 225 => 87, 221 => 85, 219 => 84, 216 => 82, 208 => 80, 206 => 79, 201 => 77, 198 => 76, 196 => 75, 182 => 64, 179 => 63, 169 => 62, 151 => 59, 131 => 48, 127 => 47, 120 => 43, 116 => 42, 99 => 28, 95 => 27, 91 => 26, 85 => 23, 76 => 16, 66 => 15, 55 => 11, 53 => 13, 40 => 11,);
}
public function getSourceContext()
{
return new Source("{#
This file is part of EC-CUBE
Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
http://www.ec-cube.co.jp/
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
#}
{% extends 'default_frame.twig' %}
{% set body_class = 'product_page' %}
{% block javascript_head %}
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: \"view_item\",
ecommerce: {
currency: \"JPY\",
value: {{ Product.getPrice02IncTaxMin }},
items: [
{
item_id: \"{{ Product.id }}\",
item_name: \"{{ Product.name }}\",
price: {{ Product.getPrice02IncTaxMin }},
quantity: 1
}
]
}
});
</script>
<script>
window.addEventListener('load', function () {
if (window.location.pathname.includes('/products/detail/')) {
document.querySelector('.c-button--h.add-cart').addEventListener('click', function(e){
dataLayer.push({
event: \"add_to_cart\",
ecommerce: {
transaction_id: \"{{ random() + 1 }}\",
value: {{ Product.getPrice02IncTaxMin }},
currency: \"JPY\",
items: [
{
item_name: \"{{ Product.name }}\",
item_id: \"{{ Product.id }}\",
quantity: \$('#quantity').val()
}]
}
});
});
};
});
</script>
{% endblock %}
{% block stylesheet %}
{% endblock %}
{% block javascript %}
<script>
eccube.classCategories = {{ class_categories_as_json(Product)|raw }};
// 規格2に選択肢を割り当てる。
function fnSetClassCategories(form, classcat_id2_selected) {
var \$form = \$(form);
var product_id = \$form.find('input[name=product_id]').val();
var \$sele1 = \$form.find('select[name=classcategory_id1]');
var \$sele2 = \$form.find('select[name=classcategory_id2]');
eccube.setClassCategories(\$form, product_id, \$sele1, \$sele2, classcat_id2_selected);
}
{% if form.classcategory_id2 is defined %}
fnSetClassCategories(
\$('#form1'), {{ form.classcategory_id2.vars.value|json_encode|raw }}
);
{% elseif form.classcategory_id1 is defined %}
eccube.checkStock(\$('#form1'), {{ Product.id }}, {{ form.classcategory_id1.vars.value|json_encode|raw }}, null);
{% endif %}
</script>
{# ADD 2023-02-07 codeパラメータから規格情報をデフォルト表示 #}
{% if classcategory_id1 and classcategory_id2 %}
<script>
\$(function() {
\$('select[name=\"classcategory_id1\"]').val('{{ classcategory_id1 }}');
fnSetClassCategories(
\$('#form1'), '{{ classcategory_id2 }}'
);
});
</script>
{% elseif classcategory_id1 %}
<script>
\$(function() {
\$('select[name=\"classcategory_id1\"]').val('{{ classcategory_id1 }}');
\$('select[name=\"classcategory_id1\"]').change();
});
</script>
{% endif %}
{#
<script>
\$(function() {
// bfcache無効化
\$(window).bind('pageshow', function(event) {
if (event.originalEvent.persisted) {
location.reload(true);
}
});
\$('.item_visual').slick({
dots: false,
arrows: false,
responsive: [{
breakpoint: 768,
settings: {
dots: true
}
}]
});
\$('.slideThumb').on('click', function() {
var index = \$(this).attr('data-index');
\$('.item_visual').slick('slickGoTo', index, false);
})
});
</script>
#}
<script>
\$(function() {
\$('.add-cart').on('click', function(event) {
{% if form.classcategory_id1 is defined %}
// 規格1フォームの必須チェック
if (\$('#classcategory_id1').val() == '__unselected' || \$('#classcategory_id1').val() == '') {
\$('#classcategory_id1')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id1')[0].setCustomValidity('');
}
{% endif %}
{% if form.classcategory_id2 is defined %}
// 規格2フォームの必須チェック
if (\$('#classcategory_id2').val() == '__unselected' || \$('#classcategory_id2').val() == '') {
\$('#classcategory_id2')[0].setCustomValidity('{{ '項目が選択されていません'|trans }}');
return true;
} else {
\$('#classcategory_id2')[0].setCustomValidity('');
}
{% endif %}
// 個数フォームのチェック
if (\$('#quantity').val() < 1) {
\$('#quantity')[0].setCustomValidity('{{ '1以上で入力してください。'|trans }}');
return true;
} else {
\$('#quantity')[0].setCustomValidity('');
}
event.preventDefault();
\$form = \$('#form1');
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
\$form.submit();
{#
\$.ajax({
url: \$form.attr('action'),
type: \$form.attr('method'),
data: \$form.serialize(),
dataType: 'json',
beforeSend: function(xhr, settings) {
// Buttonを無効にする
\$('.add-cart').prop('disabled', true);
}
}).done(function(data) {
// レスポンス内のメッセージをalertで表示
\$.each(data.messages, function() {
\$('#ec-modal-header').html(this);
});
\$('.ec-modal').show()
// カートブロックを更新する
\$.ajax({
url: \"{{ url('block_cart') }}\",
type: 'GET',
dataType: 'html'
}).done(function(html) {
\$('.ec-headerRole__cart').html(html);
});
}).fail(function(data) {
alert('{{ 'カートへの追加に失敗しました。'|trans }}');
}).always(function(data) {
// Buttonを有効にする
\$('.add-cart').prop('disabled', false);
});
#}
});
});
\$('.ec-modal-overlay, .ec-modal .ec-inlineBtn--cancel').on('click', function() {
\$('.ec-modal').hide()
});
</script>
{% endblock %}
{% block main %}
\t\t\t<div class=\"l-blockRole\">
\t\t\t\t<div class=\"u-cts productsDetail-main\">
\t\t\t\t\t<div class=\"u-cts__inner\">
\t\t\t\t\t\t<section class=\"productsDetail-main-upper\">
\t\t\t\t\t\t\t<figure class=\"productsDetail-main__image js-productsImage\">
\t\t\t\t\t\t\t\t<div class=\"productsDetail-main__image-main\">
\t\t\t\t\t\t\t\t\t<div class=\"num js-productsImage-num\">1/{{ Product.ProductImage|length }}</div>
\t\t\t\t\t\t\t\t\t<ul class=\"p-slick--c js-productsImage-slide\">
{% for ProductImage in Product.ProductImage %}
\t\t\t\t\t\t\t\t\t\t<li><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ Product.name }}\"></li>
{% else %}
\t\t\t\t\t\t\t\t\t\t<li><img src=\"{{ asset(''|no_image_product, 'save_image') }}\" alt=\"{{ Product.name }}\"></li>
{% endfor %}
\t\t\t\t\t\t\t\t\t</ul>
\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t<div class=\"productsDetail-main__image-sub\">
<div class=\"modal-box js-productsImage-thumb\">
<div class=\"is-modal-close\">✕</div>
<ul>
{% for ProductImage in Product.ProductImage %}
<li><a href=\"#\" class=\"{{ loop.index0==0 ? 'is-active' : '' }}\"><img src=\"{{ asset(ProductImage, 'save_image') }}\" alt=\"{{ Product.name }}\"></a></li>
{% endfor %}
</ul>
</div>
\t\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t</figure>
\t\t\t\t\t\t\t<div class=\"productsDetail-main__info\">
\t\t\t\t\t\t\t\t<p class=\"brand\">ブランド:
{% for ProductCategory in Product.ProductCategories %}
\t{% for Category_ in ProductCategory.Category.path %}
\t\t{% if Category_.parent is not null %}
\t\t\t{% if Category_.parent.id in [21] %}
\t\t\t\t{{ Category_.name }}
\t\t\t{% endif %}
\t\t{% endif %}
\t{% endfor %}
{% endfor %}
\t\t\t\t\t\t\t\t</p>
\t\t\t\t\t\t\t\t<h1 class=\"name\">{{ Product.name }}</h1>
<div class=\"yotpo bottomLine\" data-yotpo-product-id=\"{{ Product.id }}\"></div>
\t\t\t\t\t\t\t\t{# <p class=\"price\">¥<span>74,800</span><span class=\"zei\">税込</span></p> #}
{% if Product.hasProductClass -%}
\t{% if Product.getPrice02IncTaxMin == Product.getPrice02IncTaxMax %}
\t\t\t\t\t\t\t\t<p class=\"price\"><span class=\"price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span><span class=\"zei\">{{ '税込'|trans }}</span></p>
\t{% else %}
\t\t\t\t\t\t\t\t<p class=\"price\"><span class=\"price02-default\">{{ Product.getPrice02IncTaxMin|price }} ~ {{ Product.getPrice02IncTaxMax|price }}</span><span class=\"zei\">{{ '税込'|trans }}</span></p>
\t{% endif %}
{% else %}
\t\t\t\t\t\t\t\t<p class=\"price\"><span class=\"price02-default\">{{ Product.getPrice02IncTaxMin|price }}</span><span class=\"zei\">{{ '税込'|trans }}</span></p>
{% endif %}
\t\t\t\t\t\t\t<form action=\"{{ url('product_add_cart', {id:Product.id}) }}\" method=\"post\" id=\"form1\" name=\"form1\">
{% if Product.stock_find %}
\t{% if form.classcategory_id1 is defined %}
\t\t\t\t\t\t\t\t<div class=\"color c-select--a\">
\t\t{{ form_widget(form.classcategory_id1) }}
\t\t{{ form_errors(form.classcategory_id1) }}
\t\t\t\t\t\t\t\t</div>
\t\t{% if form.classcategory_id2 is defined %}
\t\t\t\t\t\t\t\t<div class=\"size c-select--a\">
\t\t{{ form_widget(form.classcategory_id2) }}
\t\t{{ form_errors(form.classcategory_id2) }}
\t\t\t\t\t\t\t\t</div>
\t\t{% endif %}
\t{% endif %}
\t\t\t\t\t\t\t<div class=\"c-input--a\">
\t\t\t\t\t\t\t\t{{ form_widget(form.quantity) }}
\t\t\t\t\t\t\t\t{{ form_errors(form.quantity) }}
\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t\t\t\t<dl class=\"info u-cfx\">
\t\t\t\t\t\t\t\t\t\t<dt>商品ID</dt><dd>:<span class=\"product-code-default\"></span></dd>
\t\t\t\t\t\t\t\t\t\t<dt>発送日数</dt><dd>:<span class=\"delivery-duration-default\"></span></dd>
\t\t\t\t\t\t\t\t\t</dl>
\t\t\t\t\t\t\t\t<div class=\"cart\"><button type=\"submit\" class=\"c-button--h add-cart\"><span>{{ 'カートに入れる'|trans }}</span></button></div>
{% else %}
\t\t\t\t\t\t\t\t<div class=\"cart\"><button type=\"button\" class=\"c-button--h\" disabled=\"disabled\">{{ 'ただいま品切れ中です。'|trans }}</button></div>
{% endif %}
\t\t\t\t\t\t\t{{ form_rest(form) }}
\t\t\t\t\t\t\t</form>
{% if BaseInfo.option_favorite_product %}
\t\t\t\t\t\t\t<div class=\"recommend\">
\t\t\t\t\t\t\t\t<form action=\"{{ url('product_add_favorite', {id:Product.id}) }}\" method=\"post\">
\t{% if is_favorite == false %}
\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"c-button--k\"><img src=\"{{ asset('assets/img/icon_heart.svg') }}\" alt=\"{{ 'お気に入りに追加'|trans }}\" class=\"icon\"></button>
\t{% else %}
\t\t\t\t\t\t\t\t\t<button type=\"submit\" id=\"favorite\" class=\"c-button--k is-active\"><img src=\"{{ asset('assets/img/icon_heart.svg') }}\" alt=\"{{ 'お気に入りに追加済みです。'|trans }}\" class=\"icon\"></button>
\t{% endif %}
\t\t\t\t\t\t\t\t</form>
\t\t\t\t\t\t\t</div>
{% endif %}
\t\t\t\t\t\t\t\t<p class=\"link\">
\t\t\t\t\t\t\t\t\t<a href=\"{{ url('help_guide') }}#delivery\" target=\"_blank\" class=\"c-button--j\">発送方法・送料・納期についてはこちら</a>
\t\t\t\t\t\t\t\t</p>
\t\t\t\t\t\t\t\t<p class=\"link\">
\t\t\t\t\t\t\t\t\t<a href=\"{{ url('contact') }}?product_id={{ Product.id }}\" target=\"_blank\" class=\"c-button--j\">商品についてお問い合わせはこちら</a>
\t\t\t\t\t\t\t\t</p>
\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t</section>
\t\t\t\t\t\t<section class=\"productsDetail-main-under\">
\t\t\t\t\t\t\t<div class=\"productsDetail-main__detail js-toggle--a def-open\">
\t\t\t\t\t\t\t\t<div class=\"productsDetail-main__detail-body\">
<h2 class=\"productsDetail-main__detail-button\"><span class=\"c-button--i no-link\">配送について</span></h2>
\t\t\t\t\t\t\t\t\t<div class=\"block\">
<div class=\"box\">
<h2 class=\"title u-pc\">配送について</h2>
<p class=\"text ec-Description2\">{{ Product.description2|raw|nl2br }}</p>
</div>
</div>
<h2 class=\"productsDetail-main__detail-button js-toggle__button\"><a href=\"#\" class=\"c-button--i\">商品説明</a></h2>
<div class=\"block js-toggle__body\">
<div class=\"box\">
<h3 class=\"title\">{{ Product.section2_title }}</h3>
<div class=\"text\">
<p>{{ Product.section2_body|raw|nl2br }}</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">商品詳細</h3>
<div class=\"text\">
<p>{{ Product.description_detail|raw|nl2br }}</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">サイズ</h3>
<div class=\"text\">
<p>{{ Product.section3_body|raw|nl2br }}</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">素材</h3>
<div class=\"text\">
<p>{{ Product.section4_body|raw|nl2br }}</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">その他</h3>
<div class=\"text\">
<p>{{ Product.section5_body|raw|nl2br }}</p>
</div>
</div>
<div class=\"box\">
<h3 class=\"title\">{{ Product.section1_title }}</h3>
<div class=\"text\">
<p>{{ Product.section1_body|raw|nl2br }}</p>
</div>
</div>
</div>
\t\t\t\t\t\t\t </div>
\t\t\t\t\t\t\t</div>
\t\t\t\t\t\t</section>
<div class=\"chatplus-bt\">
<img src=\"https://app.chatplus.jp/image/button/7fd82760/2/6716f0c26e926\" alt=\"\" style=\"cursor:pointer;\" onclick='window.open(\"https://app.chatplus.jp/chat/visitor/7fd82760_2?t=btn&bw=410&bh=520&bg=%23d6cbac\", \"chat_plus_jp_window\", \"width=410, height=520, menubar=no, toolbar=no, scrollbars=no, location=no\");'>
</div>
{# YOTPO #}
<div class=\"yotpo yotpo-main-widget review-area\"
data-product-id=\"{{ Product.id }}\"
data-name=\"{{ Product.name }}\"
data-url=\"{{ url('product_detail',{'id': Product.id}) }}\"
data-price=\"{{ Product.getPrice02IncTaxMin }}\"
data-currency=\"JPY\"
{% if Product.ProductImage %}
data-image-url=\"{{ url('homepage')|trim('/') }}{{ asset(Product.ProductImage[0], 'save_image') }}\"
{% endif %}
data-description=\"\">
</div>
\t\t\t\t\t</div>
\t\t\t\t</div>
\t\t\t<!-- / --></div>
{{ include('Block/product_gallery.twig') }}
{{ include('Block/recommend_product_block.twig') }}
{% endblock %}", "Product/detail_1.twig", "/var/www/eccube4/app/template/default/Product/detail_1.twig");
}
public function checkSecurity()
{
static $tags = array("set" => 13, "if" => 75, "for" => 216);
static $filters = array("escape" => 23, "raw" => 64, "json_encode" => 77, "trans" => 135, "length" => 214, "no_image_product" => 219, "price" => 251, "nl2br" => 314, "trim" => 370);
static $functions = array("random" => 42, "class_categories_as_json" => 64, "asset" => 217, "url" => 258, "form_widget" => 262, "form_errors" => 263, "form_rest" => 286, "include" => 379);
try {
$this->sandbox->checkSecurity(
['set', 'if', 'for'],
['escape', 'raw', 'json_encode', 'trans', 'length', 'no_image_product', 'price', 'nl2br', 'trim'],
['random', 'class_categories_as_json', 'asset', 'url', 'form_widget', 'form_errors', 'form_rest', 'include'],
$this->source
);
} catch (SecurityError $e) {
$e->setSourceContext($this->source);
if ($e instanceof SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
$e->setTemplateLine($tags[$e->getTagName()]);
} elseif ($e instanceof SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
$e->setTemplateLine($filters[$e->getFilterName()]);
} elseif ($e instanceof SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
$e->setTemplateLine($functions[$e->getFunctionName()]);
}
throw $e;
}
}
}