Skip to content

API search endpoint returns HTML even when Accepts: application/json or Accepts: application/ld-json Is set #286

Description

@nkamuo

Problem Description: The BitBag/SyliusElasticsearchPlugin's API search endpoint is returning an HTML response instead of the expected JSON or LD-JSON format, even when the Accepts: application/json or Accepts: application/ld-json headers are correctly set in the request.

Example

Command

curl -X 'GET' \
  'http://localhost:9000/api/v2/shop/products/search?limit=10&page=1&facets=%5Bjeans_collection%5D%5B%5D%3Dsylius_summer_2024' \
  -H 'accept: application/ld+json'

Result:

<!DOCTYPE html>

<html lang="en"     
                                                                            >
    <head>
                    <!-- BEGIN HOOK | name: "sylius_shop.base#metatags" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base#metatags", name: "metatags", template: "@SyliusShop/shared/layout/base/metatags.html.twig", priority: 0 -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="preload" href="/build/shop/fonts/InterVariable.c504db5c.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="/build/shop/fonts/InterVariable-Italic.01dcbad1.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--  END HOOKABLE  | hook: "sylius_shop.base#metatags", name: "metatags", template: "@SyliusShop/shared/layout/base/metatags.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base#metatags" -->        
        <title>Fashion Web Store</title>

                    <!-- BEGIN HOOK | name: "sylius_shop.base#stylesheets" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base#stylesheets", name: "styles", template: "@SyliusShop/shared/layout/base/styles.html.twig", priority: 0 -->
<link rel="stylesheet" href="/build/shop/shop-entry.css">
<!--  END HOOKABLE  | hook: "sylius_shop.base#stylesheets", name: "styles", template: "@SyliusShop/shared/layout/base/styles.html.twig", priority: 0 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base#stylesheets", name: "app_styles", template: "shop/stylesheets.html.twig", priority: 0 -->
<link rel="stylesheet" href="/build/app/shop/app-shop-entry.css">


<link rel="stylesheet" href="/build/bitbag/elasticsearch/shop/bitbag-elasticsearch-shop.css">
<!--  END HOOKABLE  | hook: "sylius_shop.base#stylesheets", name: "app_styles", template: "shop/stylesheets.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base#stylesheets" -->        
        <!-- BEGIN HOOK | name: "sylius_shop.base.head" -->

<!--  END HOOK  | name: "sylius_shop.base.head" -->    </head>

    <body data-route="bitbag_sylius_elasticsearch_plugin_shop_search">
                    <div class="&lt;!-- BEGIN HOOK | name: &quot;sylius_shop.base#body_classes&quot; --&gt;
&lt;!-- BEGIN HOOKABLE | hook: &quot;sylius_shop.base#body_classes&quot;, name: &quot;defaults&quot;, template: &quot;@SyliusShop/shared/layout/base/body_classes/defaults.html.twig&quot;, priority: 0 --&gt;
d-flex flex-column min-vh-100
&lt;!--  END HOOKABLE  | hook: &quot;sylius_shop.base#body_classes&quot;, name: &quot;defaults&quot;, template: &quot;@SyliusShop/shared/layout/base/body_classes/defaults.html.twig&quot;, priority: 0 --&gt;
&lt;!--  END HOOK  | name: &quot;sylius_shop.base#body_classes&quot; --&gt;">
                <h1 class="visually-hidden text-black" aria-hidden="true">Fashion Web Store</h1>
                                    <!-- BEGIN HOOK | name: "sylius_shop.base.header" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header", name: "top_bar", template: "@SyliusShop/shared/layout/base/header/top_bar.html.twig", priority: 300 -->
<div class="bg-black">
    <div class="container py-2 fs-7">
        <div class="row g-3 align-items-center">
            <!-- BEGIN HOOK | name: "sylius_shop.base.header.top_bar" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.top_bar", name: "info_message", template: "@SyliusShop/shared/layout/base/header/top_bar/info_message.html.twig", priority: 200 -->
<div class="col-12 col-md">
    <a href="/en_US/">Sign up to our newsletter and grab -20% off</a>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.top_bar", name: "info_message", template: "@SyliusShop/shared/layout/base/header/top_bar/info_message.html.twig", priority: 200 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.top_bar", name: "currency_switcher", component: "sylius_shop:common:currency_switcher", priority: 100 -->

<!--  END HOOKABLE  | hook: "sylius_shop.base.header.top_bar", name: "currency_switcher", component: "sylius_shop:common:currency_switcher", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.top_bar", name: "locale_switcher", component: "sylius_shop:common:locale_switcher", priority: 0 -->

<!--  END HOOKABLE  | hook: "sylius_shop.base.header.top_bar", name: "locale_switcher", component: "sylius_shop:common:locale_switcher", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.top_bar" -->        </div>
    </div>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header", name: "top_bar", template: "@SyliusShop/shared/layout/base/header/top_bar.html.twig", priority: 300 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header", name: "content", template: "@SyliusShop/shared/layout/base/header/content.html.twig", priority: 200 -->
<div class="border-bottom py-4">
    <div class="container">
        <div class="row align-items-center">
            <!-- BEGIN HOOK | name: "sylius_shop.base.header.content" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content", name: "logo", template: "@SyliusShop/shared/layout/base/header/content/logo.html.twig", priority: 300 -->
<div class="col">
    <a href="/en_US/" class="d-inline-block py-lg-2" style="width: 10rem" aria-label="sylius logo">
        <!-- BEGIN HOOK | name: "sylius_shop.base.header.content.logo" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.logo", name: "content", template: "@SyliusShop/shared/logo.html.twig", priority: 0 -->
<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 3512 1033" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M1285.88 708.833s61.167 72.209 150.375 72.209c56.083 0 102.792-33.959 102.792-89.209 0-125.708-289.709-106.166-289.709-293.083 0-90.083 79.167-160.583 192-160.583 63.75 0 170.834 28.916 170.834 110.458v49.25h-78.209v-28c0-31.458-45.041-54.375-92.625-54.375-64.541 0-105.333 35.667-105.333 80.667 0 121.5 288.875 94.333 288.875 291.416 0 91.667-71.375 170.834-190.292 170.834-75.872-.246-148.185-32.674-198.833-89.167l50.125-60.417zm474.87 246.375c33.333 0 59.458-23.791 75.625-62l19.542-46.75-147-340.666c-5.917-13.625-13.584-17-27.167-17h-10.208v-70.5h48.416c34.834 0 47.584 9.333 61.167 43.333l97.708 242.083a459.47 459.47 0 0 1 15.292 51.834h1.667c3.624-17.589 8.455-34.908 14.458-51.834l89.208-242.083c12.75-34 28.042-43.333 62.875-43.333h49.292v70.5h-11.083c-13.542 0-21.209 3.375-27.167 17l-169.917 419.666c-26.333 66.25-78.166 101.125-138.458 101.125a142.51 142.51 0 0 1-101.083-42.5l33.958-59.458c0 .833 26.333 30.583 62.875 30.583zm433.21-617.5c0-12.75-6.791-18.708-18.666-18.708h-34.834v-70.625h81.542c38.208 0 54.167 16.125 54.167 54.375v456.208c0 12.75 6.791 18.709 18.708 18.709h34.792v70.5h-81.334c-38.208 0-54.166-16.167-54.166-54.375l-.209-456.084zM2451.17 507.5c0-12.75-6.792-18.708-18.709-18.708h-34.833v-70.5h80.75c38.208 0 54.167 16.125 54.167 54.166v286.5c0 12.75 6.791 18.709 18.708 18.709h34.833v70.5h-80.541c-38.25 0-54.167-16.167-54.167-54.375l-.208-286.292zm1.708-259.125h73.875v85.792h-73.875v-85.792zM2690.62 507.5c0-12.75-6.792-18.708-18.708-18.708h-34.834v-70.5h80.709c39.083 0 55.208 16.125 55.208 52.666v203.875c0 59.5 11.917 107.042 79.875 107.042 88.375 0 140.167-77.292 140.167-162.25V418.292h82.416v340.666c0 12.75 6.792 18.709 18.709 18.709h34.791v70.5h-79.166c-36.5 0-54.375-17-54.375-47.584v-16.125c0-13.625.875-24.625.875-24.625h-1.709c-17.666 42.459-72.875 98.709-157.833 98.709-96.875 0-146.125-50.959-146.125-164.792V507.5zm534.21 220.042s50.959 63.708 130 63.708c39.917 0 74.75-17.875 74.75-55.25 0-77.292-234.458-68.792-234.458-207.25 0-82.417 72.167-120.833 159.708-120.833 51.834 0 141 17.833 141 83.333V532h-73.916v-21.25c0-25.5-38.209-36.542-64.542-36.542-48.417 0-79.875 17.042-79.875 51 0 81.542 234.5 63.709 234.5 207.292 0 76.458-67.958 125.708-158.042 125.708-114.666 0-171.583-75.583-171.583-75.583l42.458-55.083z" fill="#131718" fill-rule="nonzero"/><path d="M143.417 605.333l206.625 413.25 381.375.625 92.291-129.916-680.291-283.959z" fill="#30ba9d" fill-rule="nonzero"/><path d="M0 650.708l277.792 381.334 453.625.75 92.291-142.667L0 650.708zm333.083-464.541l135.209 104.875 122.25-234.584L549 29.875 333.083 186.167z" fill-rule="nonzero" fill="#1a9f83"/><path d="M731.417 1032.79L333.083 186.165l85.209-61.667 463.5 675.75-150.375 232.542zM510.667 57.625l259.458 209.583L588.042 0l-77.375 57.625z" fill-rule="nonzero" fill="#30ba9d"/></svg>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.logo", name: "content", template: "@SyliusShop/shared/logo.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.content.logo" -->    </a>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content", name: "logo", template: "@SyliusShop/shared/layout/base/header/content/logo.html.twig", priority: 300 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content", name: "search_form", template: "@BitBagSyliusElasticsearchPlugin/Shop/Layout/Header/searchForm.html.twig", priority: 250 -->
<div class="col searchdiv" data-bb-elastic-url="http://localhost:9000/en_US/auto-complete/product">
    <!-- BEGIN HOOK | name: "sylius_shop.base.header.content.search_form" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.search_form", name: "content", component: "bitbag.sylius_elasticsearch_plugin:search_form", priority: 0 -->
<form name="bitbag_elasticsearch_search" method="get" action="/en_US/search">
    <div class="input-group">
        <input type="text" id="bitbag_elasticsearch_search_query" name="bitbag_elasticsearch_search[query]" placeholder="Search for products..." class="prompt app-quick-add-code-input form-control" />
        <button id="bitbag_elasticsearch_search_box_search" class="btn btn btn-outline-secondary btn-sm" type="submit" aria-label="search button">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6"/></svg>
        </button>
    </div>
</form>
<div class="results"></div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.search_form", name: "content", component: "bitbag.sylius_elasticsearch_plugin:search_form", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.content.search_form" --></div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content", name: "search_form", template: "@BitBagSyliusElasticsearchPlugin/Shop/Layout/Header/searchForm.html.twig", priority: 250 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content", name: "security", template: "@SyliusShop/shared/layout/base/header/content/security.html.twig", priority: 200 -->
<div class="col-auto">
    <!-- BEGIN HOOK | name: "sylius_shop.base.header.content.security" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.security", name: "logged_in_user", template: "@SyliusShop/shared/layout/base/header/content/security/logged_in_user.html.twig", priority: 100 -->

<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.security", name: "logged_in_user", template: "@SyliusShop/shared/layout/base/header/content/security/logged_in_user.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.security", name: "visitor", template: "@SyliusShop/shared/layout/base/header/content/security/visitor.html.twig", priority: 0 -->
<div class="d-flex align-items-center">
        <!-- BEGIN HOOK | name: "sylius_shop.base.header.content.security.visitor" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.security.visitor", name: "mobile", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/mobile.html.twig", priority: 100 -->
<div class="d-lg-none" role="navigation" aria-label="Account navigation (mobile)">
    <a href="/en_US/login" class="btn btn-icon btn-transparent px-0" aria-label="Account button">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2"/></svg>
    </a>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.security.visitor", name: "mobile", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/mobile.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.security.visitor", name: "desktop", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop.html.twig", priority: 0 -->
<div class="d-none d-lg-flex align-items-center gap-2 ps-2" role="navigation" aria-label="Account navigation (desktop)">
    <!-- BEGIN HOOK | name: "sylius_shop.base.header.content.security.visitor.desktop" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.security.visitor.desktop", name: "user_icon", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop/user_icon.html.twig", priority: 200 -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2"/></svg>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.security.visitor.desktop", name: "user_icon", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop/user_icon.html.twig", priority: 200 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.security.visitor.desktop", name: "login", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop/login.html.twig", priority: 100 -->
<a
        href="/en_US/login"
        class="link-reset"
         id="login-page-button"        data-test-button="login-page-button"
            >
                            Login
            </a>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.security.visitor.desktop", name: "login", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop/login.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content.security.visitor.desktop", name: "register", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop/register.html.twig", priority: 0 -->
<small aria-hidden="true" role="presentation" class="text-black px-1">|</small>
    <a
        href="/en_US/register"
        class="link-reset"
         id="register-page-button"        data-test-button="register-page-button"
                    role="menuitem"
                    aria-label="Register"
            >
                            Register
            </a>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.security.visitor.desktop", name: "register", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop/register.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.content.security.visitor.desktop" --></div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.security.visitor", name: "desktop", template: "@SyliusShop/shared/layout/base/header/content/security/visitor/desktop.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.content.security.visitor" -->    </div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content.security", name: "visitor", template: "@SyliusShop/shared/layout/base/header/content/security/visitor.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.content.security" --></div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content", name: "security", template: "@SyliusShop/shared/layout/base/header/content/security.html.twig", priority: 200 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content", name: "wishlist_header", template: "@SyliusWishlistPlugin/wishlist_header.html.twig", priority: 150 -->
<div class="col-auto position-relative">
    
        
                        
    <a href="/en_US/wishlist" class="btn btn-icon btn-transparent px-0 position-relative" aria-label="wishlist button">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon" aria-hidden="true"><path fill="currentColor" d="m12.1 18.55l-.1.1l-.11-.1C7.14 14.24 4 11.39 4 8.5C4 6.5 5.5 5 7.5 5c1.54 0 3.04 1 3.57 2.36h1.86C13.46 6 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5c0 2.89-3.14 5.74-7.9 10.05M16.5 3c-1.74 0-3.41.81-4.5 2.08C10.91 3.81 9.24 3 7.5 3C4.42 3 2 5.41 2 8.5c0 3.77 3.4 6.86 8.55 11.53L12 21.35l1.45-1.32C18.6 15.36 22 12.27 22 8.5C22 5.41 19.58 3 16.5 3"/></svg>
        <span class="wishlist-items-count" data-test-wishlist-primary-items-count="">2</span>
    </a>

</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content", name: "wishlist_header", template: "@SyliusWishlistPlugin/wishlist_header.html.twig", priority: 150 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content", name: "cart", component: "sylius_shop:cart:widget", priority: 100 -->
<div class="col-auto position-relative"  data-controller="live" data-live-name-value="sylius_shop:cart:widget" data-live-url-value="/en_US/_components/sylius_shop:cart:widget" data-live-listeners-value="[{&quot;action&quot;:&quot;refreshCart&quot;,&quot;event&quot;:&quot;sylius:shop:cart_changed&quot;},{&quot;action&quot;:&quot;refreshCart&quot;,&quot;event&quot;:&quot;sylius:shop:cart_cleared&quot;}]" id="live-3283976089-0" data-live-props-value="{&quot;cart&quot;:null,&quot;hookableMetadata&quot;:{&quot;renderedBy&quot;:&quot;sylius_shop.base.header.content&quot;,&quot;configuration&quot;:&quot;[]&quot;,&quot;prefixes&quot;:[&quot;sylius_shop.base.header.content&quot;]},&quot;template&quot;:&quot;@SyliusShop\/shared\/components\/header\/cart.html.twig&quot;,&quot;@attributes&quot;:{&quot;id&quot;:&quot;live-3283976089-0&quot;},&quot;@checksum&quot;:&quot;+jZUHoKz3AHjmB1RSx8xnIDdJsF4AK9cYVT80f3khyI=&quot;}">
    <div data-loading>
        <div class="sylius-shop-loader">
            <img src="/build/shop/images/loader.0488c2fc.gif" alt="Loading" loading="lazy"/>
        </div>
    </div>
    <div data-test-cart-button="">
        <button class="btn btn-icon btn-transparent px-0 position-relative" data-bs-toggle="offcanvas" data-bs-target="#offcanvasCart" aria-label="cart button">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M6.331 8H17.67a2 2 0 0 1 1.977 2.304l-1.255 8.152A3 3 0 0 1 15.426 21H8.574a3 3 0 0 1-2.965-2.544l-1.255-8.152A2 2 0 0 1 6.331 8"/><path d="M9 11V6a3 3 0 0 1 6 0v5"/></g></svg>
            <span class="d-none d-lg-block ps-1" data-test-cart-total="">$0.00
        </span>
                    </button>
    </div>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content", name: "cart", component: "sylius_shop:cart:widget", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.content", name: "taxon_hamburger", template: "@SyliusShop/shared/layout/base/header/content/taxon_hamburger.html.twig", priority: 0 -->
<div class="col-auto d-lg-none">
    <button class="navbar-toggler btn btn-icon btn-transparent px-0" type="button" data-bs-toggle="offcanvas" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon icon-md" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg>
    </button>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.content", name: "taxon_hamburger", template: "@SyliusShop/shared/layout/base/header/content/taxon_hamburger.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.content" -->        </div>
    </div>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header", name: "content", template: "@SyliusShop/shared/layout/base/header/content.html.twig", priority: 200 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header", name: "navbar", template: "@SyliusShop/shared/layout/base/header/navbar.html.twig", priority: 100 -->
<!-- BEGIN HOOK | name: "sylius_shop.base.header.navbar" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar", name: "menu", component: "sylius_shop:common:taxon_menu", priority: 0 -->
<div class="w-100 border-bottom">
            <nav class="navbar offcanvas-lg offcanvas-start offcanvas-wide p-0" id="navbarNav" role="navigation" aria-label="Taxon navigation (desktop)">
            <div class="offcanvas-header w-full">
                <h1 class="offcanvas-title fs-5">
                    Taxons
                </h1>
                <button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#navbarNav" aria-label="Close"></button>
            </div>
            <div class="offcanvas-body justify-content-lg-center w-full py-0">
                <div class="navbar-nav my-2 flex-column flex-lg-row gap-lg-4" data-test-menu="">
                    <!-- BEGIN HOOK | name: "sylius_shop.base.header.navbar.menu" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu", name: "item", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item.html.twig", priority: 0 -->
<div class="nav-item dropdown" data-test-menu-item="T-shirts">
            <!-- BEGIN HOOK | name: "sylius_shop.base.header.navbar.menu.item#dropdown" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "toggle", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/toggle.html.twig", priority: 100 -->
<a class="nav-link d-flex align-items-center gap-1" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
    T-shirts
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon icon-sm" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg>
</a>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "toggle", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/toggle.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "dropdown", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/dropdown.html.twig", priority: 0 -->
<div class="dropdown-menu">
            <a class="nav-link" href="/en_US/taxons/t-shirts/men" data-test-menu-item="Men">
            Men
        </a>
            <a class="nav-link" href="/en_US/taxons/t-shirts/women" data-test-menu-item="Women">
            Women
        </a>
    </div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "dropdown", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/dropdown.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.navbar.menu.item#dropdown" -->        </div>
                <div class="nav-item dropdown" data-test-menu-item="Caps">
            <!-- BEGIN HOOK | name: "sylius_shop.base.header.navbar.menu.item#dropdown" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "toggle", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/toggle.html.twig", priority: 100 -->
<a class="nav-link d-flex align-items-center gap-1" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
    Caps
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon icon-sm" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg>
</a>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "toggle", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/toggle.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "dropdown", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/dropdown.html.twig", priority: 0 -->
<div class="dropdown-menu">
            <a class="nav-link" href="/en_US/taxons/caps/simple" data-test-menu-item="Simple">
            Simple
        </a>
            <a class="nav-link" href="/en_US/taxons/caps/with-pompons" data-test-menu-item="With pompons">
            With pompons
        </a>
    </div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "dropdown", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/dropdown.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.navbar.menu.item#dropdown" -->        </div>
                <!-- BEGIN HOOK | name: "sylius_shop.base.header.navbar.menu.item#link" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu.item#link", name: "link", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/link.html.twig", priority: 0 -->
<a class="nav-link" href="/en_US/taxons/category/dresses" data-test-menu-item="Dresses">
    Dresses
</a>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu.item#link", name: "link", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/link.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.navbar.menu.item#link" -->                <div class="nav-item dropdown" data-test-menu-item="Jeans">
            <!-- BEGIN HOOK | name: "sylius_shop.base.header.navbar.menu.item#dropdown" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "toggle", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/toggle.html.twig", priority: 100 -->
<a class="nav-link d-flex align-items-center gap-1" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
    Jeans
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon icon-sm" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m6 9l6 6l6-6"/></svg>
</a>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "toggle", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/toggle.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "dropdown", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/dropdown.html.twig", priority: 0 -->
<div class="dropdown-menu">
            <a class="nav-link" href="/en_US/taxons/jeans/men" data-test-menu-item="Men">
            Men
        </a>
            <a class="nav-link" href="/en_US/taxons/jeans/women" data-test-menu-item="Women">
            Women
        </a>
    </div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu.item#dropdown", name: "dropdown", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item/dropdown.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.navbar.menu.item#dropdown" -->        </div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar.menu", name: "item", template: "@SyliusShop/shared/layout/base/header/navbar/menu/item.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.navbar.menu" -->                </div>
            </div>
        </nav>
    </div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header.navbar", name: "menu", component: "sylius_shop:common:taxon_menu", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.navbar" -->
<!--  END HOOKABLE  | hook: "sylius_shop.base.header", name: "navbar", template: "@SyliusShop/shared/layout/base/header/navbar.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header", name: "flashes", template: "@SyliusShop/shared/layout/base/header/flashes.html.twig", priority: 0 -->
<div class="container sylius-messages">
    <!-- BEGIN HOOK | name: "sylius_shop.base.header.flashes" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.header.flashes", name: "content", template: "@SyliusShop/shared/flashes.html.twig", priority: 0 -->

<!--  END HOOKABLE  | hook: "sylius_shop.base.header.flashes", name: "content", template: "@SyliusShop/shared/flashes.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header.flashes" --></div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.header", name: "flashes", template: "@SyliusShop/shared/layout/base/header/flashes.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.header" -->                
                    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index", name: "content", template: "@SyliusShop/product/index/content.html.twig", priority: 0 -->
<div class="container mt-4 mb-5">
    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content", name: "breadcrumbs", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/breadcrumbs.html.twig", priority: 100 -->
<ol class="breadcrumb" aria-label="breadcrumbs">
                    <li class="breadcrumb-item fw-normal">
                                    <a class="link-reset" href="/en_US/">Home</a>
                            </li>
                    <li class="breadcrumb-item fw-normal active">
                                    <span class="text-body-tertiary text-break">Search</span>
                            </li>
            </ol>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content", name: "breadcrumbs", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/breadcrumbs.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content", name: "body", template: "@SyliusShop/product/index/content/body.html.twig", priority: 0 -->
<div class="row mt-5">
    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body", name: "sidebar", template: "@SyliusShop/product/index/content/body/sidebar.html.twig", priority: 100 -->
<div class="col-12 col-lg-3">
    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.sidebar" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.sidebar", name: "facets", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/sidebar/facets.html.twig", priority: 0 -->
<div class="container-xl">
    <form name="bitbag_elasticsearch_search" method="get" class="ui loadable form" novalidate="novalidate" id="bitbag_elasticsearch_search">

                    <div  class=" field mb-3"><input type="text" id="bitbag_elasticsearch_search_query" name="bitbag_elasticsearch_search[query]" placeholder="Search for products..." class="prompt app-quick-add-code-input form-control" style="display: none" /></div>

        
    </form>
</div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.sidebar", name: "facets", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/sidebar/facets.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.sidebar" --></div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body", name: "sidebar", template: "@SyliusShop/product/index/content/body/sidebar.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body", name: "main", template: "@SyliusShop/product/index/content/body/main.html.twig", priority: 0 -->
<div class="col-12 col-lg-9">
    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main", name: "filters", template: "@SyliusShop/product/index/content/body/main/filters.html.twig", priority: 200 -->
<div class="row flex-column flex-md-row align-items-end justify-content-end gap-2 gap-md-0 mb-5">
    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters", name: "controls", template: "@SyliusShop/product/index/content/body/main/filters/controls.html.twig", priority: 0 -->
<div class="col-auto d-flex gap-2">
    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls", name: "limit", template: "@SyliusShop/product/index/content/body/main/filters/controls/limit.html.twig", priority: 100 -->
<div class="dropdown">
    <!-- BEGIN HOOK | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls.limit" -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls.limit", name: "toggle", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/limit/toggle.html.twig", priority: 100 -->
<button type="button" class="btn btn-sm dropdown-toggle" data-bs-toggle="dropdown">
    <span class="text-black-50">Show: </span>
    N/A
</button>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls.limit", name: "toggle", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/limit/toggle.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls.limit", name: "menu", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/limit/menu.html.twig", priority: 0 -->
<div class="dropdown-menu dropdown-menu-end ">
            <a class="dropdown-item" href="/en_US/search?limit=10&amp;facets=%5Bjeans_collection%5D%5B%5D%3Dsylius_summer_2024">9</a>
            <a class="dropdown-item" href="/en_US/search?limit=10&amp;facets=%5Bjeans_collection%5D%5B%5D%3Dsylius_summer_2024">18</a>
            <a class="dropdown-item" href="/en_US/search?limit=10&amp;facets=%5Bjeans_collection%5D%5B%5D%3Dsylius_summer_2024">36</a>
    </div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls.limit", name: "menu", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/limit/menu.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls.limit" --></div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls", name: "limit", template: "@SyliusShop/product/index/content/body/main/filters/controls/limit.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls", name: "sorting", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/sorting.html.twig", priority: 0 -->

<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls", name: "sorting", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/sorting.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters.controls" --></div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters", name: "controls", template: "@SyliusShop/product/index/content/body/main/filters/controls.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main.filters" --></div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main", name: "filters", template: "@SyliusShop/product/index/content/body/main/filters.html.twig", priority: 200 -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main", name: "products", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/products.html.twig", priority: 100 -->
<div class="alert alert-info" data-test-sylius-flash-message="alert-info">
                    <div class="fw-bold">
                Info
            </div>
                There are no results to display
    </div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main", name: "products", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/products.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main", name: "pagination", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/pagination.html.twig", priority: 0 -->

<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main", name: "pagination", template: "@BitBagSyliusElasticsearchPlugin/Shop/SiteWideSearch/content/body/main/pagination.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body.main" --></div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body", name: "main", template: "@SyliusShop/product/index/content/body/main.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content.body" --></div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content", name: "body", template: "@SyliusShop/product/index/content/body.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index.content" --></div>
<!--  END HOOKABLE  | hook: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index", name: "content", template: "@SyliusShop/product/index/content.html.twig", priority: 0 -->
<!--  END HOOK  | name: "bitbag.sylius_elasticsearch_plugin.site_wide_search.index" -->
                                    <!-- BEGIN HOOK | name: "sylius_shop.base.footer" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.footer", name: "content", template: "@SyliusShop/shared/layout/base/footer/content.html.twig", priority: 0 -->
<div class="mt-auto border-top mt-5 py-5">
    <footer class="container">
        <div class="row">
            <!-- BEGIN HOOK | name: "sylius_shop.base.footer.content" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.footer.content", name: "menu", template: "@SyliusShop/shared/layout/base/footer/content/menu.html.twig", priority: 200 -->
<div class="col-12 col-lg-6 order-lg-2">
    <div class="row">
        <div class="col-12 col-sm-6">
            <nav aria-label="Footer informational links" class="nav flex-column">
                <a class="nav-link" href="#">About</a>
                <a class="nav-link" href="#">Terms and Conditions</a>
                <a class="nav-link" href="#">Privacy Policy</a>
                <a class="nav-link" href="/en_US/contact/">Contact us</a>
            </nav>
        </div>

        <div class="col-12 col-sm-6">
            <nav aria-label="Footer help links" class="nav flex-column mb-5">
                <a class="nav-link" href="#">FAQ</a>
                <a class="nav-link" href="#">Delivery & Shipping</a>
                <a class="nav-link" href="#">Returns Policy</a>
            </nav>
        </div>
    </div>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.footer.content", name: "menu", template: "@SyliusShop/shared/layout/base/footer/content/menu.html.twig", priority: 200 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.footer.content", name: "payment_methods", template: "@SyliusShop/shared/layout/base/footer/content/payment_methods.html.twig", priority: 100 -->
<div class="col-12 text-center col-md-6 order-md-4 text-md-start col-lg-3 order-lg-4 text-lg-center">
    <div class="mb-3 fw-medium">Payment methods:</div>

    <div class="row g-2 mb-4">
        <div class="col-4">
            <a href="https://sylius.com/partner/paypal/" target="_blank" class="d-block border rounded p-2">
                <img class="img-fluid" src="/build/shop/images/paypal-logo.88881bcb.svg" width="100%" height="100%" alt="PayPal" />
            </a>
        </div>
        <div class="col-4">
            <a href="https://sylius.com/partner/adyen/" target="_blank" class="d-block border rounded p-2">
                <img class="img-fluid" src="/build/shop/images/adyen-logo.23b1b26a.svg" width="100%" height="100%" alt="Adyen" />
            </a>
        </div>
        <div class="col-4">
            <a href="https://sylius.com/partner/mollie/" target="_blank" class="d-block border rounded p-2">
                <img class="img-fluid" src="/build/shop/images/mollie-logo.fa881b7d.svg" width="100%" height="100%" alt="Mollie" />
            </a>
        </div>
    </div>

    <div class="d-flex justify-content-center justify-content-md-start justify-content-lg-center gap-3 mb-5">
        <a class="link-reset" href="https://www.instagram.com/sylius.team/" target="_blank" aria-label="instagram logo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon icon-md" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 8a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v8a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4z"/><path d="M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0m7.5-4.5v.01"/></g></svg></a>
        <a class="link-reset" href="https://www.facebook.com/SyliusEcommerce/" target="_blank" aria-label="facebook logo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon icon-md" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 10v4h3v7h4v-7h3l1-4h-4V8a1 1 0 0 1 1-1h3V3h-3a5 5 0 0 0-5 5v2z"/></svg></a>
        <a class="link-reset" href="https://x.com/Sylius" target="_blank" aria-label="x logo"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon icon-md" aria-hidden="true"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m4 4l11.733 16H20L8.267 4zm0 16l6.768-6.768m2.46-2.46L20 4"/></svg></a>
    </div>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.footer.content", name: "payment_methods", template: "@SyliusShop/shared/layout/base/footer/content/payment_methods.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.footer.content", name: "copy", template: "@SyliusShop/shared/layout/base/footer/content/copy.html.twig", priority: 0 -->
<div class="col-12 text-center col-md-6 order-md-3 text-md-start col-lg-3 order-lg-1">
    <a href="/en_US/" class="d-inline-block mb-4" aria-label="Sylius logo">
        <div style="width: 10rem">
            <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 3512 1033" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M1285.88 708.833s61.167 72.209 150.375 72.209c56.083 0 102.792-33.959 102.792-89.209 0-125.708-289.709-106.166-289.709-293.083 0-90.083 79.167-160.583 192-160.583 63.75 0 170.834 28.916 170.834 110.458v49.25h-78.209v-28c0-31.458-45.041-54.375-92.625-54.375-64.541 0-105.333 35.667-105.333 80.667 0 121.5 288.875 94.333 288.875 291.416 0 91.667-71.375 170.834-190.292 170.834-75.872-.246-148.185-32.674-198.833-89.167l50.125-60.417zm474.87 246.375c33.333 0 59.458-23.791 75.625-62l19.542-46.75-147-340.666c-5.917-13.625-13.584-17-27.167-17h-10.208v-70.5h48.416c34.834 0 47.584 9.333 61.167 43.333l97.708 242.083a459.47 459.47 0 0 1 15.292 51.834h1.667c3.624-17.589 8.455-34.908 14.458-51.834l89.208-242.083c12.75-34 28.042-43.333 62.875-43.333h49.292v70.5h-11.083c-13.542 0-21.209 3.375-27.167 17l-169.917 419.666c-26.333 66.25-78.166 101.125-138.458 101.125a142.51 142.51 0 0 1-101.083-42.5l33.958-59.458c0 .833 26.333 30.583 62.875 30.583zm433.21-617.5c0-12.75-6.791-18.708-18.666-18.708h-34.834v-70.625h81.542c38.208 0 54.167 16.125 54.167 54.375v456.208c0 12.75 6.791 18.709 18.708 18.709h34.792v70.5h-81.334c-38.208 0-54.166-16.167-54.166-54.375l-.209-456.084zM2451.17 507.5c0-12.75-6.792-18.708-18.709-18.708h-34.833v-70.5h80.75c38.208 0 54.167 16.125 54.167 54.166v286.5c0 12.75 6.791 18.709 18.708 18.709h34.833v70.5h-80.541c-38.25 0-54.167-16.167-54.167-54.375l-.208-286.292zm1.708-259.125h73.875v85.792h-73.875v-85.792zM2690.62 507.5c0-12.75-6.792-18.708-18.708-18.708h-34.834v-70.5h80.709c39.083 0 55.208 16.125 55.208 52.666v203.875c0 59.5 11.917 107.042 79.875 107.042 88.375 0 140.167-77.292 140.167-162.25V418.292h82.416v340.666c0 12.75 6.792 18.709 18.709 18.709h34.791v70.5h-79.166c-36.5 0-54.375-17-54.375-47.584v-16.125c0-13.625.875-24.625.875-24.625h-1.709c-17.666 42.459-72.875 98.709-157.833 98.709-96.875 0-146.125-50.959-146.125-164.792V507.5zm534.21 220.042s50.959 63.708 130 63.708c39.917 0 74.75-17.875 74.75-55.25 0-77.292-234.458-68.792-234.458-207.25 0-82.417 72.167-120.833 159.708-120.833 51.834 0 141 17.833 141 83.333V532h-73.916v-21.25c0-25.5-38.209-36.542-64.542-36.542-48.417 0-79.875 17.042-79.875 51 0 81.542 234.5 63.709 234.5 207.292 0 76.458-67.958 125.708-158.042 125.708-114.666 0-171.583-75.583-171.583-75.583l42.458-55.083z" fill="#131718" fill-rule="nonzero"/><path d="M143.417 605.333l206.625 413.25 381.375.625 92.291-129.916-680.291-283.959z" fill="#30ba9d" fill-rule="nonzero"/><path d="M0 650.708l277.792 381.334 453.625.75 92.291-142.667L0 650.708zm333.083-464.541l135.209 104.875 122.25-234.584L549 29.875 333.083 186.167z" fill-rule="nonzero" fill="#1a9f83"/><path d="M731.417 1032.79L333.083 186.165l85.209-61.667 463.5 675.75-150.375 232.542zM510.667 57.625l259.458 209.583L588.042 0l-77.375 57.625z" fill-rule="nonzero" fill="#30ba9d"/></svg>
        </div>
    </a>

    <div class="mb-3">
        &copy; Your Store, Powered by
        <a href="https://sylius.com" target="_blank" class="text-primary-emphasis text-decoration-underline">Sylius</a>
    </div>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.footer.content", name: "copy", template: "@SyliusShop/shared/layout/base/footer/content/copy.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.footer.content" -->        </div>
    </footer>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.footer", name: "content", template: "@SyliusShop/shared/layout/base/footer/content.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.footer" -->                            </div>
            <!-- BEGIN HOOK | name: "sylius_shop.base.offcanvas" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.offcanvas", name: "cart", component: "sylius_shop:cart:widget:offcanvas", priority: 0 -->
<div class="offcanvas offcanvas-end offcanvas-wide" tabindex="-1" id="offcanvasCart"  data-controller="live" data-live-name-value="sylius_shop:cart:widget:offcanvas" data-live-url-value="/en_US/_components/sylius_shop:cart:widget:offcanvas" data-live-listeners-value="[{&quot;action&quot;:&quot;refreshCart&quot;,&quot;event&quot;:&quot;sylius:shop:cart_changed&quot;},{&quot;action&quot;:&quot;refreshCart&quot;,&quot;event&quot;:&quot;sylius:shop:cart_cleared&quot;}]" id="live-907805915-0" data-live-props-value="{&quot;cart&quot;:null,&quot;hookableMetadata&quot;:{&quot;renderedBy&quot;:&quot;sylius_shop.base.offcanvas&quot;,&quot;configuration&quot;:&quot;[]&quot;,&quot;prefixes&quot;:[&quot;sylius_shop.base.offcanvas&quot;]},&quot;template&quot;:&quot;@SyliusShop\/shared\/layout\/base\/offcanvas\/cart.html.twig&quot;,&quot;@attributes&quot;:{&quot;id&quot;:&quot;live-907805915-0&quot;},&quot;@checksum&quot;:&quot;MC3hY\/NWt9HDsUSzo5Lptj+cFqZrUeVeuqL\/8+ykEhw=&quot;}">
    <!-- BEGIN HOOK | name: "sylius_shop.base.offcanvas.cart" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.offcanvas.cart", name: "header", template: "@SyliusShop/shared/layout/base/offcanvas/cart/header.html.twig", priority: 200 -->
<div class="offcanvas-header">
    <h1 class="offcanvas-title fs-5">Cart</h1>
    <button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.offcanvas.cart", name: "header", template: "@SyliusShop/shared/layout/base/offcanvas/cart/header.html.twig", priority: 200 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.offcanvas.cart", name: "body", template: "@SyliusShop/shared/layout/base/offcanvas/cart/body.html.twig", priority: 100 -->
<div class="offcanvas-body">
    <!-- BEGIN HOOK | name: "sylius_shop.base.offcanvas.cart.body" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.offcanvas.cart.body", name: "items", template: "@SyliusShop/shared/layout/base/offcanvas/cart/body/items.html.twig", priority: 0 -->
Your cart is empty.
<!--  END HOOKABLE  | hook: "sylius_shop.base.offcanvas.cart.body", name: "items", template: "@SyliusShop/shared/layout/base/offcanvas/cart/body/items.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.offcanvas.cart.body" --></div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.offcanvas.cart", name: "body", template: "@SyliusShop/shared/layout/base/offcanvas/cart/body.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base.offcanvas.cart", name: "footer", template: "@SyliusShop/shared/layout/base/offcanvas/cart/footer.html.twig", priority: 0 -->
<div class="p-3 pb-5">
    <div class="offcanvas-footer">
        <div class="d-flex justify-content-between py-4">
            <div class="h5">Subtotal:</div>
            <div class="h5 text-end">$0.00</div>
        </div>
        <div class="d-grid gap-2 pb-3">
            <a href="/en_US/cart/" class="btn btn-light" type="button">View and edit cart</a>
            <a href="/en_US/checkout/" class="btn btn-primary" type="button">Checkout</a>
        </div>
    </div>
</div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.offcanvas.cart", name: "footer", template: "@SyliusShop/shared/layout/base/offcanvas/cart/footer.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.offcanvas.cart" --></div>
<!--  END HOOKABLE  | hook: "sylius_shop.base.offcanvas", name: "cart", component: "sylius_shop:cart:widget:offcanvas", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base.offcanvas" -->        
                    <!-- BEGIN HOOK | name: "sylius_shop.base#javascripts" -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base#javascripts", name: "mollie_javascripts", template: "@SyliusMolliePlugin/shop/shared/layout/base/mollie_javascripts.html.twig", priority: 100 -->
<script src="https://js.mollie.com/v1/mollie.js"> </script>
<!--  END HOOKABLE  | hook: "sylius_shop.base#javascripts", name: "mollie_javascripts", template: "@SyliusMolliePlugin/shop/shared/layout/base/mollie_javascripts.html.twig", priority: 100 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base#javascripts", name: "scripts", template: "@SyliusShop/shared/layout/base/scripts.html.twig", priority: 0 -->
<script src="/build/shop/shop-entry.js"></script>
<!--  END HOOKABLE  | hook: "sylius_shop.base#javascripts", name: "scripts", template: "@SyliusShop/shared/layout/base/scripts.html.twig", priority: 0 -->
<!-- BEGIN HOOKABLE | hook: "sylius_shop.base#javascripts", name: "app_javascripts", template: "shop/javascripts.html.twig", priority: 0 -->
<script src="/build/app/shop/app-shop-entry.js"></script>
<script src="/build/bitbag/elasticsearch/shop/bitbag-elasticsearch-shop.js"></script>
<!--  END HOOKABLE  | hook: "sylius_shop.base#javascripts", name: "app_javascripts", template: "shop/javascripts.html.twig", priority: 0 -->
<!--  END HOOK  | name: "sylius_shop.base#javascripts" -->            </body>
</html>

Impact: This behavior breaks API consumers (such as front-end applications or other services) that expect a machine-readable JSON response. And I cannot consume the Advanced search from a Web or Mobile application.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions