Jtl

Search

Search code

Clerk.io ofrece tres soluciones de búsqueda distintas que pueden usarse juntas o por separado:

Este artículo explica cómo empezar cuando usas una Clerk.js setup en JTL.

Instant Search
Instant Search proporciona resultados de búsqueda en tiempo real mientras los clientes escriben, mostrando los resultados en un desplegable debajo del campo de búsqueda.

Crear diseño #

Puedes utilizar el Design Editor para configurarlo visualmente, o usar code designs.

Design Editor #

  1. Ve a Search > Designs y haz clic en New Design.
  2. Elige Other designs > Instant Search.
  3. Selecciona de la lista de plantillas de diseño con cuál quieres comenzar.
  4. Asígnale un nombre y haz clic en Create design.
  5. Realiza cualquier cambio que desees en el diseño.

Puedes usar la guía de configuración titulada SEARCH bajo la opción Getting Started, para crear rápidamente Designs y Content que tengan la misma gama de colores y estilo que tu tienda online.

Haz clic en Publish cuando estés satisfecho con el estilo.

Puedes cambiar fácilmente tus diseños y contenido después, bajo Designs and Content en el menú de la izquierda. También puedes consultar esta guía Template Design to use in Clerk para plantillas de diseño que puedes utilizar.

Code Design #

  1. Ve a Search > Designs y haz clic en New Design.
  2. Elige Other designs > Blank > With code.
  3. Asígnale un nombre y haz clic en Save.
  4. Crea un diseño de código desde cero usando Liquid code.

Si deseas un diseño inicial, revisa la Instant Search template más abajo.

Crear contenido #

Esto contiene todas las configuraciones usadas para mostrar el dropdown de Instant Search, y hacerlo embebible en tu sitio web.

  1. Ve a Search > Elements.
  2. Haz clic en New Element.
  3. Nómbralo “Live Search”.
  4. En Element type, selecciona Live-search del menú desplegable.
  5. En Design selecciona el diseño que creaste del menú desplegable.
  6. Haz clic en Save en la parte superior de la pantalla.

Añadir al sitio web #

  1. Desde la configuración de Content, abre la pestaña Insert into website.
  2. Aquí tienes dos opciones:
    • Usar injection te permite insertar el código mediante un selector CSS.
    • Usar embedded code te permite insertar el código manualmente en tu sitio web.
  3. Elige la opción que te resulte más sencilla de usar.
  4. Añade el nombre del contenido de live search en los campos del backend del plugin JTL de esta forma:

Activa el live search, añade el nombre del contenido bajo Clerk TemplateName y asegúrate de tener el selector de clase para tu input field. Esto asegurará que el live search tenga un campo desde el cual renderizar.

Search Page #

Search Page
La Search Page proporciona una experiencia de búsqueda a página completa con opciones avanzadas de filtrado. Se utiliza para mostrar todas las coincidencias para la consulta de búsqueda de un cliente.

Crear diseño #

Puedes utilizar el Design Editor para configurarlo visualmente, o usar code designs.

Design Editor #

  1. Ve a Search > Designs y haz clic en New Design.
  2. Elige Other designs > Search Page.
  3. Selecciona de la lista de plantillas de diseño con cuál quieres comenzar.
  4. Asígnale un nombre y haz clic en Create design.
  5. Realiza cualquier cambio que desees en el diseño.

Puedes usar la guía de configuración titulada SEARCH bajo la opción Getting Started, para crear rápidamente Designs y Content que tengan la misma gama de colores y estilo que tu tienda online.

Haz clic en Publish cuando estés satisfecho con el estilo.

Puedes cambiar fácilmente tus diseños y contenido después, bajo Designs and Content en el menú de la izquierda. También puedes consultar esta guía Template Design to use in Clerk para plantillas de diseño que puedes utilizar.

Code Design #

  1. Ve a Search > Designs y haz clic en New Design.
  2. Elige Other designs > Blank > With code.
  3. Asígnale un nombre y haz clic en Save.
  4. Crea un diseño de código desde cero usando Liquid code.

Si deseas un diseño inicial, revisa la Search Page template más abajo.

Crear contenido #

Esto contiene todas las configuraciones usadas para mostrar la Search Page, y hacerla embebible en tu search page existente.

  1. Ve a Search > Elements.
  2. Haz clic en New Element.
  3. Nómbralo “Search Page”.
  4. En Element type, selecciona Search page del menú desplegable.
  5. En Design selecciona el diseño que creaste del menú desplegable.
  6. Haz clic en Save en la parte superior de la pantalla.

Añadir al sitio web #

  1. Desde la configuración de Content, abre la pestaña Insert into website.
  2. Aquí tienes dos opciones:
    • Usar injection te permite insertar el código mediante un selector CSS.
    • Usar embedded code te permite insertar el código manualmente en tu sitio web.
  3. Elige la opción que te resulte más sencilla de usar.
  4. Añade el nombre del contenido de search page en los campos del backend del plugin JTL de esta forma:

Activa la search page y añade el nombre del contenido bajo Clerk TemplateName.

Añadir Facets #

Aquí tendrás que crear un diseño para el facetado:

  1. Crea un diseño en Clerk (backend de Clerk.io bajo Search → Designs)
  2. Después de crearlo, se debe almacenar un ID en el backend del plugin ( Plugins → Installed Plugins → S360 Clerk → haz clic en la rueda → Settings → Facet Design ).
Facet ID after creation
Facet ID in the plugin

Omnisearch #

Omnisearch
El Omnisearch combina Instant Search y Search Page en un solo overlay que se muestra cuando el usuario hace clic dentro del campo de búsqueda.

Crear diseño #

Omnisearch solo funciona con code designs, ya que tiene un layout más complejo que puedes modificar como quieras.

  1. Ve a Search > Designs y haz clic en New Design.
  2. Elige Omni-search.
  3. Selecciona de la lista de plantillas de diseño con cuál quieres comenzar.
  4. Asígnale un nombre y haz clic en Save.
  5. Realiza cualquier ajuste que desees en el diseño. La Omnisearch guide tiene más información sobre cómo hacerlo.

Crear contenido #

Esto contiene todas las configuraciones usadas para mostrar el Omnisearch, y hacerlo embebible en tu sitio web.

  1. Ve a Search > Elements.
  2. Haz clic en New Element.
  3. Nómbralo “Omni-Search”.
  4. Añade una etiqueta de tracking – esto también debe ser simplemente “Omni-Search”.
  5. En Element type, selecciona Omni-search del menú desplegable.
  6. En Design selecciona el diseño que creaste del menú desplegable.
  7. Haz clic en Save en la parte superior de la pantalla.

Añadir al sitio web #

  1. Desde la configuración de Content, abre la pestaña Insert into website.
  2. Aquí tienes dos opciones:
    • Usar injection te permite insertar el código mediante un selector CSS.
    • Usar embedded code te permite insertar el código manualmente en tu sitio web.
  3. Elige la opción que te resulte más sencilla de usar.
  4. Si usas la opción de embedded code, reemplaza INSERT_CSS_SELECTOR[...] con una clase única o ID para tu campo de búsqueda. Omnisearch se mostrará cuando se haga clic en el campo de entrada que coincida con el selector.

Plantillas iniciales #

Si deseas usar code designs, estas plantillas pueden ayudarte a empezar. Contienen los elementos básicos de UI que componen Instant Search y Search Page, que puedes modificar según tus necesidades.

Instant Search Code #

Esto contiene las partes de HTML y CSS para mostrar un dropdown de Instant Search. Añade esto en un code design en my.clerk.io.

HTML #

<div id="clerk-template-live-search" style="background: white">
    <div class="clerk-live-search">
        <div class="row">
            <div class="col-12 col-sm-8 clerk-live-search-products">
                {% if products.length != 0 %}
                    <div class="h4 headline-style">{{ snippets.headlineProducts }}</div>
                    {% for product in products %}
                        <div class="product clerk-instant-search-key-selectable">
                            <a href="{{ product.url }}" class="d-block product-link link-discreet">
                                <div class="row align-items-center">
                                    <div class="col-2 text-center product-image-wrapper">
                                        <img src="{{ product.image }}" class="product-image img-fluid" />
                                    </div>
                                    <div class="col-7">
                                        <div class="product-name productbox-title et-mb-0">{{ product.name }}</div>
                                    </div>
                                    <div class="col-3">
                                        <div class="price_wrapper text-right">
                                            {% if product.has_variations or product.bulk_prices != 0 %}
                                                <span class="price_label pricestarting">
                                                    {{ snippets.priceStarting }}
                                                </span>
                                            {% endif %}

                                            {% if product.on_sale %}
                                                <span class="instead-of old-price">
                                                    <small class="text-muted-util">
                                                        <del class="value">{{ product.original_price | money_eu }} {{ globals.currency_symbol }}</del>
                                                    </small>
                                                </span>
                                            {% endif %}

                                            <span class="price productbox-price {% if product.on_sale %} special-price{% endif %}">
                                                <span>{{ product.price | money_eu }} {{ globals.currency_symbol }} <span class="footnote-reference">*</span></span>
                                            </span>

                                            {% if product.base_price > 0 %}
                                                <div class="price-note">
                                                    <span class="value">{{ product.base_price | money_eu }} {{ globals.currency_symbol }} {{ snippets.vpePer }} {{ product.base_price_unit }}</span>
                                                </div>
                                            {% endif %}
                                        </div>
                                    </div>
                                </div>
                            </a>
                        </div>
                    {% endfor %}
                    <div class="text-center">
                        <a href="{{ snippets.searchUrl }}?query={{ query }}" class="btn btn-secondary btn-lg">
                            {{ snippets.showAllResults }}
                        </a>
                    </div>
                {% else %}
                    <div class="text-center">
                        {{ snippets.textNoResults | replace '###QUERY###' query | highlight query 'clerk-live-search-highlight' }}
                    </div>
                {% endif %}
            </div>

            <div class="col col-sm-4 clerk-live-search-others">
                {% if suggestions.length != 0 %}
                    <div class="h4 headline-style">{{ snippets.headlineSuggestions }}</div>
                    <div class="clerk-live-search-others-wrapper clerk-suggestion">
                        {% for suggestion in suggestions %}
                            <a href="{{ snippets.searchUrl }}?query={{ suggestion }}">
                                {{ suggestion }}
                            </a>
                        {% endfor %}
                    </div>
                {% endif %}
                {% if categories.length != 0 %}
                    <div class="h4 headline-style">{{ snippets.headlineCategories }}</div>
                    <div class="clerk-live-search-others-wrapper clerk-category">
                        {% for category in categories %}
                            <a href="{{ category.url }}">
                                {{ category.name }}
                            </a>
                        {% endfor %}
                    </div>
                {% endif %}
                {% if pages.length != 0 %}
                    <div class="h4 headline-style">{{ snippets.headlinePages }}</div>
                    <div class="clerk-live-search-others-wrapper clerk-pages">
                        {% for page in pages %}
                            <a href="{{ page.url }}">
                                {{ page.title }}
                            </a>
                        {% endfor %}
                    </div>
                {% endif %}
            </div>
        </div>
    </div>
</div>

CSS #

#clerk-template-live-search {
    background: var(--white);
    padding: 1rem;
    box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.2);
}
#clerk-template-live-search .product {
    margin-bottom: 1rem;
}

.clerk-live-search-container .clerk-live-search-others a {
    text-decoration: none;
    display: block;
    margin-bottom: 0.3125rem;
}

.clerk-live-search-others-wrapper .clerk-category {
    display: flex;
    flex-wrap: wrap;
}

Search Page Code #

Esto contiene la parte HTML para mostrar una Search Page. Añade esto en un code design en my.clerk.io.

Search Page (EasyTemplate) #

<div id="result-wrapper" data-wrapper="true">
    {% if products.length %}
        <div class="et-product-list-products-wrapper">
            <div class="row product-list row-cols-2 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-4 layout-gallery" data-products-per-row='{"xs":2,"sm":2,"md":3,"lg":4,"xl":4}' id="product-list">
                {% for product in products %}
                <div class="product-wrapper col">
                    <div id="result-wrapper_buy_form_{{ product.id }}" data-wrapper="true" class="productbox productbox-show-variations et-item-box productbox-column">
                        <div class="productbox-inner">
                            <div class="row">
                                <div class="col col-12">
                                    <div class="productbox-image">
                                           
                                           
                                        {% if product.top_article and product.top_article != false %}
                                            <div class="ribbon ribbon-4 productbox-ribbon">
                                                {{ snippets.ribbons.4 }}
                                            </div>
                                        {% endif %}
                                        
                                        {% if product.on_sale and product.on_sale != false %}
                                            <div class="ribbon ribbon-2 productbox-ribbon">
                                                {{ snippets.ribbons.2 }}
                                            </div>
                                        {% endif %}
                                        
                                        {% if product.in_stock and product.in_stock != false %}
                                            <div class="ribbon ribbon-8 productbox-ribbon">
                                                {{ snippets.ribbons.8 }}
                                            </div>
                                        {% endif %}
                                        
                                        {% if product.in_stock and product.in_stock <= 0 %}
                                            <div class="ribbon ribbon-7 productbox-ribbon">
                                                {{ snippets.ribbons.7 }}
                                            </div>
                                        {% endif %}
                                        
                                        
                                        {% if product.age and product.age <= snippets.settings.newProductmaxDays %}
                                            <div class="ribbon ribbon-3 productbox-ribbon">
                                                {{ snippets.ribbons.3 }}
                                            </div>
                                        {% endif %}
                                        
                                        {% if product.average_rating and product.average_rating <= snippets.settings.topProductMinStars %}
                                            <div class="ribbon ribbon-6 productbox-ribbon">
                                                {{ snippets.ribbons.6 }}
                                            </div>
                                        {% endif %}
                                        
                                        {% if product.age and product.age < 0 %}
                                            <div class="ribbon ribbon-5 productbox-ribbon">
                                                {{ snippets.ribbons.5 }}
                                            </div>
                                        {% endif %}
                                        
                                        {% if product.vorbestellbardate and product.vorbestellbardate > 0 %}
                                            <div class="ribbon ribbon-9 productbox-ribbon">
                                                {{ snippets.ribbons.9 }}
                                            </div>
                                        {% endif %}
                                        
                                        {% if product.age and product.age > 0 and product.stock <= 0 %}
                                            <div class="ribbon ribbon-5 productbox-ribbon">
                                                {{ snippets.ribbons.5 }}
                                            </div>
                                        {% endif %}
                                        
                                        <div class="productbox-images list-gallery">
                                            <a href="{{ product.url }}" title="{{ product.name }}">
                                                <div class="productbox-image square square-image">
                                                    <div class="inner">
                                                        <picture>
                                                            <img src="{{ product.image }}" class="img-fluid" loading="lazy" alt="{{ product.name }}" />
                                                        </picture>
                                                    </div>
                                                </div>
                                            </a>
                                        </div>
                                    </div>
                                </div>

                                <div class="col col-12">
                                    <div class="productbox-caption">
                                        <div class="et-item-box-manufacturer productbox-manufacturer">
                                            <span>{% if snippets.settings.showBrand %}{{ product.brand }}{% endif %}</span>
                                        </div>

                                        <div class="et-item-box-title productbox-title">
                                            <a href="{{ product.url }}" class="text-clamp-2 link-discreet">
                                                {{ product.name }}
                                            </a>
                                        </div>

                                        <div class="et-item-box-rating productbox-rating">
                                        {% if product.average_rating > 0 %}
                                            <a class="rating" href="{{ product.url }}#tab-votes" title="{{ snippets.productRating }}: {{ product.average_rating }}/5">
                                            {% if product.average_rating >= 5 %}
                                                <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>
                                            {% else %}
                                                {% if product.average_rating >= 4 %}
                                                    <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 4 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}
                                                {% else %}
                                                    {% if product.average_rating >= 3 %}
                                                        <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 3 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}<i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                    {% else %}
                                                        {% if product.average_rating >= 2 %}
                                                            <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 2 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}<i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                        {% else %}
                                                            {% if product.average_rating >= 1 %}
                                                                <i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 1 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}<i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                            {% else %}
                                                                {% if product.average_rating > 0 %}
                                                                    <i class="{{ snippets.icons.ratingHalf }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                                {% endif %}
                                                            {% endif %}
                                                        {% endif %}
                                                    {% endif %}
                                                {% endif %}
                                            {% endif %}
                                            </a>
                                        {% endif %}
                                        </div>
                                        
                                        {% if product.in_stock %}
                                        
                                            {% if product.stock >= snippets.settings.storageLightsGreen%}
                                            
                                            <div class="delivery-status">
                                                <ul class="list-unstyled">
                                                    <li>
                                                        <span class="status status-2"> 
                                                            <span class="{{snippets.settings.storageLightIcon}} status-icon"> </span>
                                                            <span class="status-text">{{snippets.settings.storageLightTextGreen}}</span>
                                                        </span>
                                                    </li>
                                                </ul>
                                            </div>
                                            
                                            {% endif %}
                                            
                                            {% if product.stock > snippets.settings.storageLightsRed and product.stock < snippets.settings.storageLightsGreen %}
                                            
                                            
                                            <div class="delivery-status">
                                                <ul class="list-unstyled">
                                                    <li>
                                                        <span class="status status-1"> 
                                                            <span class="{{snippets.settings.storageLightIcon}} status-icon"> </span>
                                                            <span class="status-text">{{snippets.settings.storageLightTextYellow}}</span>
                                                        </span> 
                                                    </li>
                                                </ul>
                                            </div>
                                               
                                            {% endif %}
                                            
                                            {% if product.stock == snippets.settings.storageLightsRed%}
                                            
                                                <div class="delivery-status">
                                                    <ul class="list-unstyled">
                                                        <li>
                                                           <span class="status status-0"> 
                                                                <span class="{{snippets.settings.storageLightIcon}} status-icon"> </span>
                                                                <span class="status-text">{{snippets.settings.storageLightTextRed}}</span>
                                                            </span>
                                                        </li>
                                                    </ul>
                                                </div>
                                            
                                            {% endif %}
                                            
                                        {% endif %}

                                        <div class="et-item-box-price">
                                            <div class="price_wrapper">
                                                {% if product.has_variations or product.bulk_prices != 0 %}
                                                    <span class="price_label pricestarting">
                                                        {{ snippets.priceStarting }}
                                                    </span>
                                                {% endif %}

                                                <div class="price productbox-price {% if product.on_sale %} special-price{% endif %}">
                                                    <span>{{ product.price | money }} {{ globals.currency_symbol }} <span class="footnote-reference">*</span></span>
                                                </div>

                                                {% if product.on_sale %}

<div class="price-note et-old-price">
    <div class="instead-of old-price">
        <small class="text-muted-util">
            <del class="value">{{ product.original_price | money }} {{ globals.currency_symbol }}</del>
        </small>
    </div>
</div>
{% endif %}

{% if product.base_price > 0 %}
    <div class="price-note">
        <span class="value">{{ product.base_price | money }} {{ globals.currency_symbol }} {{ snippets.vpePer }} {{ product.base_price_unit }}</span>
    </div>
{% else %}
    <div class="price-note">&nbsp;</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endfor %}
</div>

{% if count > products.length %}
<div class="row">
    <div class="col-12 productlist-pagination">
        <div class="clerk-endless-scroll-more-wrapper mx-auto text-center">
            <div class="clerk-endless-scroll-progress-wrapper">
                <div class="clerk-endless-scroll-progress-label">
                    {{ snippets.loadMoreProgress | highlight '###PRODUCTCOUNT###' 'clerk-endless-scroll-progress-count' | replace '###PRODUCTCOUNT###' products.length | replace '###COUNT###' count }}
                </div>
                <div class="clerk-endless-scroll-progress progress mb-4">
                    <div class="progress-bar bg-secondary" role="progressbar" style="width: {{ (products.length / count) * 100 }}%;" aria-valuenow="{{ products.length }}" aria-valuemin="0" aria-valuemax="{{ count }}"></div>
                </div>
            </div>
            <div class="clerk-load-more-button btn btn-secondary btn-lg">{{ snippets.loadMore }}</div>
            <script>
                document.querySelector('.clerk-load-more-button').addEventListener('click', function() {
                    Clerk('content', '#{{ content.id }}', function(content) {
                        content.more({% if not limit %}{{ result.length }}{% endif %});
                    });
                });
            </script>
        </div>
    </div>
</div>
{% endif %}
</div>
{% else %}
<p class="text-center">{{ snippets.textNoResults | replace '###QUERY###' query | highlight query 'clerk-search-highlight' }}</div>
{% endif %}
</div>

Página de búsqueda (Nova) #

<div id="result-wrapper" data-wrapper="true">
    {% if products.length %}
        <div class="row product-list layout-gallery" id="product-list">
            {% for product in products %}
                <div class="product-wrapper col col-sm-6 col-md-4 col-xl-3 col-6">
                    <div id="result-wrapper_buy_form_{{ product.id }}" data-wrapper="true" class="productbox productbox-column productbox-hover">
                        <div class="productbox-inner">
                            <div class="row">
                                <div class="col  col-12">
                                    <div class="productbox-image">
                                        <div class="productbox-images">
                                            <a href="{{ product.url }}" title="{{ product.name }}">
                                                <div class="productbox-image square square-image">
                                                    <div class="inner">
                                                        <picture>
                                                            <img src="{{ product.image }}" class="img-fluid" loading="lazy" alt="{{ product.name }}" />
                                                        </picture>
                                                    </div>
                                                </div>

                                                {% if product.top_article and product.top_article != false %}
                                                    <div class="ribbon ribbon-4 productbox-ribbon">
                                                        {{ snippets.ribbons.4 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.on_sale and product.on_sale != false %}
                                                    <div class="ribbon ribbon-2 productbox-ribbon">
                                                        {{ snippets.ribbons.2 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.in_stock and product.in_stock != false %}
                                                    <div class="ribbon ribbon-8 productbox-ribbon">
                                                        {{ snippets.ribbons.8 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.in_stock and product.in_stock <= 0 %}
                                                    <div class="ribbon ribbon-7 productbox-ribbon">
                                                        {{ snippets.ribbons.7 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.age and product.age <= snippets.settings.newProductmaxDays %}
                                                    <div class="ribbon ribbon-3 productbox-ribbon">
                                                        {{ snippets.ribbons.3 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.average_rating and product.average_rating <= snippets.settings.topProductMinStars %}
                                                    <div class="ribbon ribbon-6 productbox-ribbon">
                                                        {{ snippets.ribbons.6 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.age and product.age < 0 %}
                                                    <div class="ribbon ribbon-5 productbox-ribbon">
                                                        {{ snippets.ribbons.5 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.vorbestellbardate and product.vorbestellbardate > 0 %}
                                                    <div class="ribbon ribbon-9 productbox-ribbon">
                                                        {{ snippets.ribbons.9 }}
                                                    </div>
                                                {% endif %}
                                                
                                                {% if product.age and product.age > 0 and product.stock <= 0 %}
                                                    <div class="ribbon ribbon-5 productbox-ribbon">
                                                        {{ snippets.ribbons.5 }}
                                                    </div>
                                                {% endif %} 
                                                
                                            </a>
                                        </div>
                                    </div>
                                </div>

                                <div class="col col-12">
                                    <div class="productbox-title">
                                        <a href="{{ product.url }}" title="{{ product.name }}" class="text-clamp-2">
                                            {{ product.name }}
                                        </a>
                                    </div>

                                    {% if product.average_rating > 0 %}
                                        <a class="rating" href="{{ product.url }}#tab-votes" title="{{ snippets.productRating }}: {{ product.average_rating }}/5">
                                        {% if product.average_rating >= 5 %}
                                            <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>
                                        {% else %}
                                            {% if product.average_rating >= 4 %}
                                                <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 4 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}
                                            {% else %}
                                                {% if product.average_rating >= 3 %}
                                                    <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 3 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}<i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                {% else %}
                                                    {% if product.average_rating >= 2 %}
                                                        <i class="{{ snippets.icons.rating }}"></i><i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 2 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}<i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                    {% else %}
                                                        {% if product.average_rating >= 1 %}
                                                            <i class="{{ snippets.icons.rating }}"></i>{% if product.average_rating > 1 %}<i class="{{ snippets.icons.ratingHalf }}"></i>{% else %}<i class="{{ snippets.icons.ratingEmpty }}"></i>{% endif %}<i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                        {% else %}
                                                            {% if product.average_rating > 0 %}
                                                                <i class="{{ snippets.icons.ratingHalf }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i><i class="{{ snippets.icons.ratingEmpty }}"></i>
                                                            {% endif %}
                                                        {% endif %}
                                                    {% endif %}
                                                {% endif %}
                                            {% endif %}
                                        {% endif %}
                                        </a>
                                    {% else %}
                                        <div class="rating productbox-rating-empty"></div>
                                    {% endif %}
                                    
                                    {% if product.in_stock %}
                                        
                                            {% if product.stock >= snippets.settings.storageLightsGreen%}
                                            
                                            <div class="delivery-status">
                                                <ul class="list-unstyled">
                                                    <li>
                                                        <span class="status status-2"> 
                                                            <span class="{{snippets.settings.storageLightIcon}} status-icon"> </span>
                                                            <span class="status-text">{{snippets.settings.storageLightTextGreen}}</span>
                                                        </span>
                                                    </li>
                                                </ul>
                                            </div>
                                            
                                            {% endif %}
                                            
                                            {% if product.stock > snippets.settings.storageLightsRed and product.stock < snippets.settings.storageLightsGreen %}
                                            
                                            
                                            <div class="delivery-status">
                                                <ul class="list-unstyled">
                                                    <li>
                                                        <span class="status status-1"> 
                                                            <span class="{{snippets.settings.storageLightIcon}} status-icon"> </span>
                                                            <span class="status-text">{{snippets.settings.storageLightTextYellow}}</span>
                                                        </span> 
                                                    </li>
                                                </ul>
                                            </div>
                                               
                                            {% endif %}
                                            
                                            {% if product.stock == snippets.settings.storageLightsRed%}
                                            
                                                <div class="delivery-status">
                                                    <ul class="list-unstyled">
                                                        <li>
                                                           <span class="status status-0"> 
                                                                <span class="{{snippets.settings.storageLightIcon}} status-icon"> </span>
                                                                <span class="status-text">{{snippets.settings.storageLightTextRed}}</span>
                                                            </span>
                                                        </li>
                                                    </ul>
                                                </div>
                                            
                                            {% endif %}
                                            
                                        {% endif %}

                                    <div>
                                        <div class="price_wrapper">
                                            {% if product.has_variations or product.bulk_prices != 0 %}
                                                <span class="price_label pricestarting">
                                                    {{ snippets.priceStarting }}
                                                </span>
                                            {% endif %}

                                            <div class="price productbox-price {% if product.on_sale %} special-price{% endif %}">
                                                <span>{{ product.price | money }} {{ globals.currency_symbol }} <span class="footnote-reference">*</span></span>
                                            </div>

                                            {% if product.on_sale %}
                                                <div class="price-note">
                                                    <div class="instead-of old-price">
                                                        <small class="text-muted-util">
                                                            <del class="value">{{ product.original_price | money }} {{ globals.currency_symbol }}</del>
                                                        </small>
                                                    </div>
                                                </div>
                                            {% endif %}

                                             {% if product.base_price > 0 %}
                                                <div class="price-note">
                                                    <span class="value">{{ product.base_price | money }} {{ globals.currency_symbol }} {{ snippets.vpePer }} {{ product.base_price_unit }}</span>
                                                </div>
                                            {% else %}
                                                <div class="price-note">&nbsp;</div>
                                            {% endif %}
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            {% endfor %}
        </div>

        {% if count > products.length %}
            <div class="row">
                <div class="col-12 productlist-pagination">
                    <div class="clerk-endless-scroll-more-wrapper mx-auto text-center">
                        <div class="clerk-endless-scroll-progress-wrapper">
                            <div class="clerk-endless-scroll-progress-label">
                                {{ snippets.loadMoreProgress | highlight '###PRODUCTCOUNT###' 'clerk-endless-scroll-progress-count' | replace '###PRODUCTCOUNT###' products.length | replace '###COUNT###' count }}
                            </div>
                            <div class="clerk-endless-scroll-progress progress mb-4">
                                <div class="progress-bar bg-secondary" role="progressbar" style="width: {{ (products.length / count) * 100 }}%;" aria-valuenow="{{ products.length }}" aria-valuemin="0" aria-valuemax="{{ count }}"></div>
                                </div>
                            </div>
                           <div class="clerk-load-more-button btn btn-secondary btn-lg">{{ snippets.loadMore }}</div>
                           <script>
                                document.querySelector('.clerk-load-more-button').addEventListener('click', function() {
                                    Clerk('content', '#{{ content.id }}', function(content) {
                                        content.more({% if not limit %}{{ result.length }}{% endif %});
                                    });
                                });
                           </script>
                        </div>
                    </div>
                </div>
            </div>
        {% endif %}
    {% else %}
        <p class="text-center">{{ snippets.textNoResults | replace '###QUERY###' query | highlight query 'clerk-search-highlight' }}</div>
    {% endif %}
</div>

<style>
.productbox-image {
    position: relative;
    width: 100%;
    padding-bottom: 100%; /* Crea una relación de aspecto 1:1 */
    overflow: hidden;
}

.productbox-image .inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.productbox-image img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
</style>

Código de Facetas #

Esto contiene las partes HTML y JavaScript para mostrar las Facetas. Añádelas a un diseño de código en my.clerk.io.

Facetas (EasyTemplate) #

<div class="row">
    <div class="col-12 et-product-list-filter-wrapper">
        <div class="et-product-list-filter-top-wrapper">
            <div class="bg-gray-lighter et-pt-10 et-pt-md-30 et-pb-15 et-mb-30">
                <div class="headline-style h2 d-none d-md-block">
                    Filtro y ordenación
                </div>

                <div class="d-flex flex-wrap justify-content-center justify-content-md-start et-product-list-filter-top et-filters-active" data-more-filters-limit="{&quot;xs&quot;:0,&quot;sm&quot;:0,&quot;md&quot;:0,&quot;lg&quot;:0,&quot;xl&quot;:0}">
                    <div class="col-6 col-sm-auto d-lg-none et-product-list-filter-mobile text-right">
                        <div id="et-product-list-filter-collapse-trigger-mobile" class="et-product-list-filter-collapse-trigger-mobile et-collapse btn btn-filter" data-toggle="collapse" aria-expanded="true" data-target="#et-product-list-filter-collapse-content-mobile" aria-controls="et-product-list-filter-collapse-content-mobile">
                            <i class="fas fa-filter"></i> Filtrar
                        </div>
                    </div>

                    <div id="et-product-list-filter-collapse-content-mobile" class="col-12 et-product-list-filter-collapse-content-mobile collapse">
                        <div class="row">
                            <div class="col w-100 et-product-list-filter-filters">
                                <div class="row row-cols-1 row-cols-sm-2 row-cols-md-4 row-cols-lg-4 row-cols-xl-6">
                                    <!-- Ordenar -->
                                    <div class="col et-product-list-filter-item">
                                        <div class="dropdown et-product-list-filter-sort">
                                            <button class="btn btn-filter dropdown-toggle et-dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-display="static">
                                                Ordenar
                                                <i class="fas fa-angle-up et-dropdown-open"></i>
                                                <i class="fas fa-angle-down et-dropdown-closed"></i>
                                            </button>
                                            <div class="dropdown-menu" id="clerk-sort">
                                                <div class="link-discreet dropdown-item js-clerk-sort" data-sort="asc_price" title="Precio ascendente">
                                                    <span class="et-filter-option-name filter-item-value">Precio ascendente</span>
                                                </div>
                                                <div class="link-discreet dropdown-item js-clerk-sort" data-sort="desc_price" title="Precio descendente">
                                                    <span class="et-filter-option-name filter-item-value">Precio descendente</span>
                                                </div>
                                                <div class="link-discreet dropdown-item js-clerk-sort" data-sort="asc_age" title="Nuevos primero">
                                                    <span class="et-filter-option-name filter-item-value">Nuevos primero</span>
                                                </div>
                                                <div class="link-discreet dropdown-item js-clerk-sort" data-sort="asc_name" title="Nombre del artículo de A a Z">
                                                    <span class="et-filter-option-name filter-item-value">Nombre del artículo de A a Z</span>
                                                </div>
                                                <div class="link-discreet dropdown-item js-clerk-sort" data-sort="desc_name" title="Nombre del artículo de Z a A">
                                                    <span class="et-filter-option-name filter-item-value">Nombre del artículo de Z a A</span>
                                                </div>
                                            </div>
                                        </div>
                                    </div>

                                    <!-- Grupos de facetas -->
                                    {% for facet_group in facets %}
                                        {% assign activeGroup = '' %}
                                        {% for facet in facet_group.facets %}
                                            {% if facet.selected %}
                                                {% assign activeGroup = ' active ' %}
                                            {% endif %}
                                        {% endfor %}

                                        <div class="col et-product-list-filter-item">
                                            <div class="dropdown et-product-list-filter-{{ facet_group.group }}">
                                                <button class="btn btn-filter dropdown-toggle et-dropdown-toggle{{ activeGroup }}" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-display="static">
                                                    <span class="text-truncate">{{ facet_group.title }}</span>
                                                    <i class="fas fa-angle-up et-dropdown-open"></i>
                                                    <i class="fas fa-angle-down et-dropdown-closed"></i>
                                                </button>
                                                <div class="dropdown-menu">
                                                    {% if facet_group.type == "range" %}
                                                        <div class="clerk-range stagio_range"
                                                            data-group="{{ facet_group.group}}"
                                                            data-min="{{ facet_group.min }}"
                                                            data-max="{{ facet_group.max }}"
                                                            data-start="{{ facet_group.start }}"
                                                            data-end="{{ facet_group.end }}"
                                                            data-step="auto"></div>
                                                    {% endif %}
                                                    {% for facet in facet_group.facets %}
                                                        <div class="clerk-facet
                                                                {% if facet.selected %}
                                                                clerk-facet-selected
                                                                {% endif %} nav-link filter-item d-flex align-items-center"
                                                            data-facet="{{ facet_group.group }}"
                                                            data-value="{{ facet.value }}"
                                                            data-min="{{ facet.min }}"
                                                            data-max="{{ facet.max }}"
                                                            title="{{ facet.name }}"
                                                            rel="nofollow">
                                                            <i class="far fa{% if facet.selected %}-check{% endif %}-square snippets-filter-item-icon-right"></i>
                                                            <span class="et-filter-option-name filter-item-value">{{ facet.name }}</span>
                                                            <span class="badge badge-outline-secondary">{{ facet.count }}</span>
                                                        </div>

{% endfor %}
                                                </div>
                                            </div>
                                        </div>
                                    {% endfor %}
                                </div>
                            </div>

                            <!-- Filtros activos -->
                            {% assign isActive = 0 %}
                            {% for facet_group in facets %}
                                {% for facet in facet_group.facets %}
                                    {% if facet.selected %}
                                        {% assign isActive = 1 %}
                                    {% endif %}
                                {% endfor %}
                            {% endfor %}

                            {% if isActive %}
                                <div class="col-12 et-product-list-filter-actions">
                                    <div id="active-filters" class="active-filters">
                                        {% for facet_group in facets %}
                                            {% for facet in facet_group.facets %}
                                                {% if facet.selected %}
                                                    <div class="clerk-facet clerk-facet-selected filter-type-{{ facet_group.group }} snippets-filter-item et-active-filter btn btn-xs btn-secondary"
                                                        data-facet="{{ facet_group.group }}"
                                                        data-value="{{ facet.value }}"
                                                        data-min="{{ facet.min }}"
                                                        data-max="{{ facet.max }}"
                                                        title="Quitar este filtro"
                                                        rel="nofollow">
                                                        <span class="et-active-filter-value">{{ facet.name }}</span> <i class="fas fa-times snippets-filter-item-icon-left"></i>
                                                    </div>
                                                {% endif %}
                                            {% endfor %}
                                        {% endfor %}
                                        <div title="Restablecer todos los filtros" class="snippets-filter-item-all et-active-filter-clear btn btn-danger btn-xs">
                                            <span class="et-active-filter-name">Restablecer todos los filtros</span><i class="fas fa-times snippets-filter-item-icon-left"></i>
                                        </div>
                                    </div>
                                </div>
                            {% endif %}
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="et-product-list-filter-total" id="clerk-facets-headline-count" >
            <span class="value"></span> artículos
        </div>
    </div>
</div>

<script>
    if (!window.s360_clerk) {
        window.s360_clerk = {};
    }

    Clerk('on', 'rendered', '#clerk-search', function(content, data) {
        window.s360_clerk.query = data.query;

        // añadir cantidad de productos al titular del facet
        $("#clerk-facets-headline-count .value").html(data.count);

        // registrar capas de ordenamiento
        $("#clerk-sort .js-clerk-sort").on('click', function() {
            let val = $(this).data('sort');
            let or = (val.split('_')[0] == 'null') ? eval(val.split('_')[0]) : val.split('_')[0];
            let orb = (val.split('_')[1] == 'null') ? eval(val.split('_')[1]) : val.split('_')[1];
            window.s360_clerk.sort = val;

            Clerk('content', '[data-target][data-query][data-template][data-clerk-content-id]', 'param', {
                orderby: orb,
                order: or
            });
        });

        // función para el botón eliminar todos los filtros
        $('.snippets-filter-item-all').on('click', function (e) {
            e.preventDefault();
            window.location.href = window.location.href.split('?')[0] + "?query=" + window.s360_clerk.query;
        });

        // establecer capa de ordenamiento activa
        if (window.s360_clerk.sort) {
            let sortActive = $('#clerk-sort .js-clerk-sort[data-sort=' + window.s360_clerk.sort + ']');
            if (sortActive.hasClass("active") === false) {
                sortActive.addClass("active");
                sortActive.append('<i class="fas fa-check ml-auto pl-1"></i>');
                sortActive.data("sort", "null_null");
            }
        }
    });
</script>

Facetas (Nova) #

<div class="row">
    <aside class="sidepanel-left d-print-none col-12 dropdown-full-width">
        <div class="box box-normal">
            <div id="clerk-facets-headline-count" class="productlist-filter-headline d-none d-md-flex">
                Filtro y orden&nbsp;<span class="value"></span>
            </div>

            <!-- Botón de restablecer filtros -->
            {% assign isActive = 0 %}
            {% for facet_group in facets %}
                {% for facet in facet_group.facets %}
                    {% if facet.selected %}
                        {% assign isActive = 1 %}
                    {% endif %}
                {% endfor %}
            {% endfor %}

            {% if isActive  %}
                <div title="Restablecer todos los filtros" class="snippets-filter-item-all btn btn-danger btn-sm">
                    <span class="et-active-filter-name">Restablecer todos los filtros</span><i class="fas fa-times snippets-filter-item-icon-left"></i>
                </div>
            {% endif %}
        </div>

        <!-- Ordenamiento -->
        <div class="box box-filter word-break">
            <div class="nav-panel">
                <ul class="nav flex-column">
                    <li class="nav-item dropdown facet-sort">
                        <span class="nav-link  dropdown-toggle" role="button" data-toggle="collapse" data-target="#facet-group-sort" aria-expanded="false">
                            Ordenar
                        </span>

                        <div class="collapse snippets-categories-collapse " id="facet-group-sort">
                            <div id="clerk-sort">
                                <div class="link-discreet filter-item js-clerk-sort" data-sort="asc_price" title="Precio ascendente">
                                    <span class="et-filter-option-name filter-item-value">Precio ascendente</span>
                                </div>
                                <div class="link-discreet filter-item js-clerk-sort" data-sort="desc_price" title="Precio descendente">
                                    <span class="et-filter-option-name filter-item-value">Precio descendente</span>
                                </div>
                                <div class="link-discreet filter-item js-clerk-sort" data-sort="asc_age" title="Novedades primero">
                                    <span class="et-filter-option-name filter-item-value">Novedades primero</span>
                                </div>
                                <div class="link-discreet filter-item js-clerk-sort" data-sort="asc_name" title="Nombre del artículo de A a Z">
                                    <span class="et-filter-option-name filter-item-value">Nombre del artículo de A a Z</span>
                                </div>
                                <div class="link-discreet filter-item js-clerk-sort" data-sort="desc_name" title="Nombre del artículo de Z a A">
                                    <span class="et-filter-option-name filter-item-value">Nombre del artículo de Z a A</span>
                                </div>
                            </div>
                        </div>
                    </li>
                </ul>
            </div>

            <hr class="box-filter-hr">
        </div>

        <!-- Grupos de facetas -->
        {% for facet_group in facets %}
            <div class="box box-filter word-break">
                <div class="nav-panel">
                    <ul class="nav flex-column">
                        {% assign activeGroup = 0 %}
                        {% for facet in facet_group.facets %}
                            {% if facet.selected %}
                                {% assign activeGroup = 1 %}
                            {% endif %}
                        {% endfor %}

                        <!-- Grupo de facetas -->
                        <li class="nav-item dropdown facet-{{ facet_group.group }}">
                            <span class="nav-link  dropdown-toggle" role="button" data-toggle="collapse" data-target="#facet-group-{{ facet_group.title }}" aria-expanded="{% if activeGroup == 1}true{% else %}false{% endif %}">
                                {{ facet_group.title }}
                            </span>

                            <!-- Facetas -->
                            <div class="snippets-categories-collapse {% if activeGroup == 1}collapsed show{% else %}collapse{% endif %}" id="facet-group-{{ facet_group.title }}">
                                {% if facet_group.type == "range" %}
                                    <div class="filter-item clerk-range stagio_range"
                                        data-group="{{ facet_group.group}}"
                                        data-min="{{ facet_group.min }}"
                                        data-max="{{ facet_group.max }}"
                                        data-start="{{ facet_group.start }}"
                                        data-end="{{ facet_group.end }}"
                                        data-step="auto">
                                    </div>
                                {% endif %}

                                {% for facet in facet_group.facets %}
                                    <div class="filter-item clerk-facet {% if facet.selected %} active clerk-facet-selected {% endif %}"
                                        data-facet="{{ facet_group.group }}"
                                        data-value="{{ facet.value }}"
                                        data-min="{{ facet.min }}"
                                        data-max="{{ facet.max }}"
                                        title="{{ facet.name }}"
                                    >
                                        <div class="box-link-wrapper">
                                            {% if facet.selected %}
                                                <i class="far fa-check-square snippets-filter-item-icon-right"></i>
                                            {% else %}
                                                <i class="far fa-square snippets-filter-item-icon-right"></i>
                                            {% endif %}
                                            <span class="word-break">{{ facet.name }}</span>
                                            <span class="badge  badge-outline-secondary">{{ facet.count }}</span>
                                        </div>
                                    </div>
                                {% endfor %}
                            </div>
                        </li>
                    </ul>
                </div>

                <hr class="box-filter-hr">
            </div>
        {% endfor %}
    </aside>
</div>

<script>
    if (!window.s360_clerk) {
        window.s360_clerk = {};
    }

    Clerk('on', 'rendered', '#clerk-search', function(content, data) {
        window.s360_clerk.query = data.query;

        // añadir cantidad de productos al titular del facet
        $("#clerk-facets-headline-count .value").html(data.count);

        // registrar capas de ordenamiento
        $("#clerk-sort .js-clerk-sort").on('click', function() {
            let val = $(this).data('sort');
            let or = (val.split('_')[0] == 'null') ? eval(val.split('_')[0]) : val.split('_')[0];
            let orb = (val.split('_')[1] == 'null') ? eval(val.split('_')[1]) : val.split('_')[1];
            window.s360_clerk.sort = val;

            Clerk('content', '[data-target][data-query][data-template][data-clerk-content-id]', 'param', {
                orderby: orb,
                order: or
            });
        });

        // función para el botón eliminar todos los filtros
        $('.snippets-filter-item-all').on('click', function (e) {
            e.preventDefault();
            window.location.href = window.location.href.split('?')[0] + "?query=" + window.s360_clerk.query;
        });

        // establecer capa de ordenamiento activa
        if (window.s360_clerk.sort) {
            let sortActive = $('#clerk-sort .js-clerk-sort[data-sort=' + window.s360_clerk.sort + ']');
            if (sortActive.hasClass("active") === false) {
                sortActive.addClass("active");
                sortActive.append('<i class="fas fa-check ml-auto pl-1"></i>');
                sortActive.data("sort", "null_null");
            }
        }
    });
</script>

Esta página ha sido traducida por una IA útil, por lo que puede contener errores de idioma. Muchas gracias por su comprensión.