Lightspeed: Search
Lightspeed
Search
Usar en IA Abrir en ChatGPT
Hacer preguntas sobre esta página
Abrir en Claude
Hacer preguntas sobre esta página
Abrir en Perplexity
Hacer preguntas sobre esta página
Copiar página
Copiar página como markdown para LLMs
Ver como Markdown
Ver esta página en texto plano Agrega una potente funcionalidad de búsqueda a tu tienda online de Lightspeed.
Clerk.io ofrece tres soluciones de búsqueda distintas que se pueden usar juntas o por separado:
Este artículo explica cómo comenzar con Search en Lightspeed.
General
# Para incorporar tu código embed ya sea para Live Search o Search Page, necesitas acceder a los archivos de tu tema. Para hacer esto, haz clic en “Design” en el menú lateral izquierdo, luego haz clic en “Code bewerken” en el desplegable Geavanceerd.
Para agregar detalles de sincronización o comenzar una sincronización, ve a my.clerk.io > Data > Configuration .
Instant Search
# Instant Search proporciona resultados de búsqueda en tiempo real mientras los clientes escriben, mostrados en un desplegable debajo del campo de entrada de búsqueda.
Crear Diseño
# Puedes usar el
Design Editor para configurarlo visualmente, o usar
code designs .
Design Editor
# Ve a Search > Designs y haz clic en New Design. Elige Other designs > Instant Search. De la lista de plantillas de diseño, elige con cuál quieres comenzar. Asígnale un nombre y haz clic en Create design. Realiza los cambios que desees en el diseño. Code Design
# Ve a Search > Designs y haz clic en New Design. Elige Other designs > Blank > With code. Asígnale un nombre y haz clic en Save. Crea un diseño de código desde cero usando
Liquid code . Si quieres un diseño de inicio, revisa la
Instant Search template más abajo.
Crear Elemento
# Esto contiene todos los ajustes usados para mostrar el desplegable de Instant Search y hacerlo embebible en tu sitio web.
Ve a Search > Elements. Haz clic en New Element. Nómbralo “Live Search”. En Element type , selecciona Live-search del desplegable. En Design selecciona el diseño que creaste del desplegable. Haz clic en Save en la parte superior de la pantalla. Agregar al Sitio Web
# En tu archivo principal de layout (probablemente fixed.rain o custom.rain ), coloca el código embed de Live Search justo antes de la etiqueta de cierre
.
Actualiza el placeholder dentro de “data-instant-search” para incluir la clase o ID de consulta que se usa en tu tienda online (en este ejemplo, “#searchInput”). <span
class = "clerk"
data-template = "@live-search"
data-instant-search-suggestions = "6"
data-instant-search-categories = "6"
data-instant-search-pages = "6"
data-instant-search = "#searchInput"
data-instant-search-positioning = "left" >
</span >
Search Page
# La Search Page proporciona una experiencia de búsqueda de página completa con opciones avanzadas de filtrado. Se usa para mostrar todas las coincidencias de la consulta de búsqueda de un cliente.
Crear Diseño
# Puedes usar el
Design Editor para configurarlo visualmente, o usar
code designs .
Design Editor
# Ve a Search > Designs y haz clic en New Design. Elige Other designs > Search Page. De la lista de plantillas de diseño, elige con cuál quieres comenzar. Asígnale un nombre y haz clic en Create design. Realiza los cambios que desees en el diseño. Code Design
# Ve a Search > Designs y haz clic en New Design. Elige Other designs > Blank > With code. Asígnale un nombre y haz clic en Save. Crea un diseño de código desde cero usando
Liquid code . Si quieres un diseño de inicio, revisa la
Search Page template más abajo.
Crear Elemento
# Esto contiene todos los ajustes usados para mostrar la Search Page y hacerla embebible en tu página de búsqueda existente.
Ve a Search > Elements. Haz clic en New Element. Nómbralo “Search Page”. En Element type , selecciona Search page del desplegable. En Design selecciona el diseño que creaste del desplegable. Haz clic en Save en la parte superior de la pantalla. Agregar al Sitio Web
# En Lightspeed, la Search Page se encuentra dentro del archivo Categories (collection.rain ).
Después de crear tu Search Page Element y Design en my.clerk.io, coloca el código embed de Search Page donde quieras que la página aparezca dentro del código collection.rain.
Asegúrate de actualizar data-query para referenciar la consulta de búsqueda adecuada; en Lightspeed, esto es {{page.search}}.
Agrega una sentencia “if” para referenciar apropiadamente la página de búsqueda, y volver al código de categoría cuando no se trate de una Search Page: {% if page.search %}
<div class = "page-width clerk-page-width" >
<span
id = "clerk-search"
class = "clerk"
data-template = "@search-page"
data-target = "#clerk-search-results"
data-query = "{{ page.search }}"
data-facets-attributes = '["price","categories","vendor"]'
data-facets-titles = '{"price":"Price","categories":"Categories","vendor":"Brand"}'
data-facets-target = "#clerk-search-filters"
data-facets-price-prepend = "€"
data-facets-in-url = "false"
data-facets-view-more-text = "View More"
data-facets-searchbox-text = "Search for " >
</span >
<div id = "clerk-show-facets" onclick = "toggleFacets()" >Filters</div >
<div class = "clerk_flex_wrap" >
<div id = "clerk-facets-container" >
<div id = "clerk-search-filters" ></div >
</div >
<div id = "clerk-search-results" ></div >
</div >
<script >
function toggleFacets (){
el = document.getElementById ('clerk-facets-container' );
el .classList .toggle ('active' );
}
</script >
<style >
#clerk-show-facets { width : 70 % ; height : 40 px ; margin : 20 px auto ; background-color : #333 ; color : white ; text-align : center ; border-radius : 2 px ; line-height : 40 px ; cursor : pointer ; }
.clerk-page-width { display : flow - root; }
#clerk-search-results { width : 80 % ; }
#clerk-show-facets { display : none ; }
.clerk_flex_wrap { display : flex ; flex-direction : row ; }
.active { display : block !important ; }
@media only screen and ( max-width : 800px ) {
#clerk-search-filters { width : 100 % !important ; }
#clerk-facets-container { display : none ; }
#clerk-show-facets { display : block ; }
.clerk_flex_wrap { flex-direction : column ; }
#clerk-search-results { display : block ; width : 100 % ; }
}
</style >
</div >
{% else %}
<!--CATEGORY_CODE_HERE-->
{% endif %}
Si tienes un snippet configurado para tu página de búsqueda (algo como snippets/search.rain ), asegúrate de comentar todo el snippet para evitar que esa página de búsqueda se muestre en tu tienda.
Asegúrate también de que tu código de categoría esté colocado donde dice CATEGORY_CODE_HERE en el ejemplo anterior.
Omnisearch
# El Omnisearch combina Instant Search y Search Page en una sola superposición que se abre cuando el usuario enfoca el campo de búsqueda.
Crear Diseño
# Omnisearch utiliza un diseño de código.
Ve a Search > Designs y haz clic en New Design. Elige Omni-search. Elige una plantilla, asígnale un nombre y haz clic en Save. Ajusta el diseño según sea necesario. Consulta la
Omnisearch guide para más detalles. Crear Elemento
# Ve a Search > Elements. Haz clic en New Element. Nómbralo “Omni-Search”. En Element type , selecciona Omni-search . En Design selecciona tu diseño de Omnisearch. Haz clic en Save . Agregar al Sitio Web
# Puedes insertar Omnisearch usando
injection o
embedded code .
Si usas código embebido, configura un selector CSS para el campo de búsqueda usando data-trigger-element.
Código embed de ejemplo:
<span class = "clerk"
data-template = "@omni-search"
data-api = "search/omni"
data-trigger-element = "#search" >
</span >
Plantillas Iniciales
# Si quieres usar code designs, estas plantillas pueden ayudarte a empezar. Contienen los elementos UI básicos que componen Instant Search y Search Page, que luego puedes modificar según tus necesidades.
Instant Search Code
# Esto contiene las partes de HTML y CSS para mostrar un desplegable de Instant Search. Añade estos a un code design en my.clerk.io.
HTML
# <div class = "clerk-instant-search" >
{% if hits.length == 0 %}
<div class = "clerk-instant-search-no-results" >
Nothing matched: <b >{{ query }}</b >... try a simpler search!
</div >
{% endif %}
{% if content.query != response.query %}
<div class = "clerk-instant-search-alternate-query" >
<i class = "fas fa-search clerk-icon" aria-hidden = "true" ></i > Showing results for: <b >{{ query }}</b >
</div >
{% endif %}
<div class = "clerk-instant-search-grid" >
{% if products.length > 0 %}
<div class = "clerk-instant-search-col clerk-col-1" >
<div class = "clerk-instant-search-products" >
<div class = "clerk-instant-search-title" >Products</div >
{% for product in products %}
<a href = "{{ product.url }}" >
<div class = "clerk-instant-search-product clerk-instant-search-key-selectable" >
<div class = "clerk-instant-search-product-image" style = "background-image: url('{{ product.image }}');" ></div >
<div >
<div class = "clerk-instant-search-product-name" >{{ product.name | highlight query }}</div >
{% if product.price < product.list_price %}
< div class = "clerk-instant-search-product-list-price" >{{ product.list_price | money }}</div >
{% endif %}
<div class = "clerk-instant-search-product-price" >{{ product.price | money }}</div >
</div >
<div >
<div class = "clerk-instant-search-product-button" >Buy Now</div >
</div >
</div >
</a >
{% endfor %}
{% if hits > products.length %}
<div class = "clerk-desktop-button clerk-instant-search-more-results clerk-instant-search-key-selectable" >
<a class = "clerk-view-more-results-button" href = "/search?q={{ query }}" >
<u >See <b >{{ hits }}</b > more results for "<i >{{ query }}</i >"</u >
</a >
</div >
{% endif %}
</div >
</div >
{% endif %}
{% if (suggestions.length + categories.length + pages.length) > 0 %}
<div class = "clerk-instant-search-col clerk-col-2" >
{% if suggestions.length > 1 %}
<div class = "clerk-instant-search-suggestions" >
<div class = "clerk-instant-search-title" >Search Suggestions</div >
{% for suggestion in suggestions %}
{% if suggestion != query %}
<div class = "clerk-instant-search-suggestion clerk-instant-search-key-selectable" >
<a href = "/search?q={{ suggestion highlight query 'bold' true }}" >
<i class = "fas fa-search clerk-icon" aria-hidden = "true" ></i >{{ suggestion }}
</a >
</div >
{% endif %}
{% endfor %}
</div >
{% endif %}
{% if categories.length > 0 %}
<div class = "clerk-instant-search-categories" >
<div class = "clerk-instant-search-title" >Categories</div >
{% for category in categories %}
<div class = "clerk-instant-search-category clerk-instant-search-key-selectable" >
<a href = "{{ category.url }}" >
{{ category.name | highlight query }}
</a >
</div >
{% endfor %}
</div >
{% endif %}
{% if pages.length > 0 %}
<div class = "clerk-instant-search-pages" >
<div class = "clerk-instant-search-title" >Related Content</div >
{% for page in pages %}
<div class = "clerk-instant-search-category clerk-instant-search-key-selectable" >
<a href = "{{ page.url }}" >
<div class = "name" >{{ page.title | highlight query 'bold' true }}</div >
</a >
</div >
{% endfor %}
</div >
{% endif %}
</div >
{% endif %}
{% if hits > products.length %}
<div class = "clerk-mobile-button clerk-instant-search-more-results clerk-instant-search-key-selectable" >
<a href = "/search?q={{ query }}" >
See <b >{{ hits }}</b > more results for "<i >{{ query }}</i >"
</a >
</div >
{% endif %}
</div >
</div >
CSS
# .clerk-instant-search { padding : 20 px ; }
.clerk-instant-search-container a { color : black !important ; text-decoration : none !important ; }
.clerk-instant-search-container a :hover { color : #b6c254 !important ; }
.clerk-instant-search { overflow : hidden ; width : 100 % ; min-width : 650 px ; max-width : 1000 px ; margin : .2 em auto ; background-color : white ; border : 1 px solid #eee ; border-top : 0 px ; border-radius : 5 px 5 px 10 px 10 px ; box-shadow : 0 1 em 2 em 1 em rgba(0 ,0 ,0 ,.2 ); }
.clerk-instant-search-no-results { padding : 1 em ; font-style : italic ; text-align : center ; }
.clerk-instant-search-alternate-query { margin : 0 0 5 px 0 ; }
.clerk-instant-search-more-results { padding : 1 em ; font-size : 1.2 em ; text-align : center ; }
.clerk-instant-search-title { color : #b6c254 ; margin : 20 px 0 5 px ; padding : 0 0 10 px ; text-transform : uppercase ; font-size : 1 em ; border-bottom : 1 px solid #000 ; }
.clerk-instant-search-products { padding-right : 2 em ; }
.clerk-instant-search-product { display : flex ; padding : .2 em ; color : gray ; }
.clerk-instant-search-product :hover { background-color : rgba(46 , 204 , 113 , .1 ); }
.clerk-instant-search-product :hover .clerk-instant-search-product-button { transform : scale(1.05 ); }
.clerk-instant-search-product > * { flex : 1 1 auto ; }
.clerk-instant-search-product > * :first-child , .clerk-instant-search-product > * :last-child { flex : 0 0 auto ; }
.clerk-instant-search-product-image { display : inline-block ; width : 3 em ; height : 3 em ; margin-right : 1 em ; background-position : center center ; background-repeat : no-repeat ; background-size : contain ; }
.clerk-instant-search-product-name { overflow : hidden ; height : 1.2 em ; margin-bottom : .2 em ; }
.clerk-instant-search-product-list-price { display : inline-block ; margin-right : .5 em ; opacity : .8 ; font-weight : normal ; text-decoration : line-through ; color : gray ; }
.clerk-instant-search-product-price { display : inline-block ; font-weight : bold ; }
.clerk-icon { color : lightgray ; margin-right : .5 em ; }
.clerk-instant-search-suggestions { margin-bottom : 1 em ; }
.clerk-instant-search-suggestion { padding : .1 em ; }
.clerk-instant-search-categories { margin-bottom : 1 em ; }
.clerk-instant-search-category { padding : 5 px ; margin : 5 px ; width : auto ; display : inline-block ; border : 1 px solid black ; border-radius : 2 px ; }
.clerk-instant-search-pages { margin-bottom : 1 em ; }
.clerk-instant-search-page { padding : .1 em ; }
@media screen and ( min-width : 1200px ) { .clerk-instant-search-container { width : 50 % ; } .clerk-instant-search-grid { display : flex ; } .clerk-col-1 { flex : 2 ; } .clerk-col-2 { flex : 1 ; } .clerk-mobile-button { display : none ; } }
@media screen and ( min-width : 768px ) and ( max-width : 1200px ) { .clerk-instant-search-container { right : 0 !important ; left : 0 !important ; } .clerk-mobile-button { display : none ; } }
@media screen and ( max-width : 767px ) { .clerk-instant-search-container { right : 0 !important ; } .clerk-desktop-button { display : none ; } }
@media screen and ( min-width : 376px ) and ( max-width : 800px ) { .clerk-instant-search { min-width : 0 !important ; } }
@media screen and ( max-width : 375px ) { .clerk-instant-search { min-width : 200 px !important ; } .clerk-instant-search-col { margin : 0 0 20 px 0 ; } .clerk-instant-search-product-name { height : 3 em !important ; } }
Search Page Code
# Esto contiene las partes de HTML y CSS para mostrar una Search Page. Añade estos a un code design en my.clerk.io.
HTML
# <div class = "clerk-search-result" >
<div class = "clerk-search-result-headline" >{{ headline }}</div >
<div class = "clerk-grid" >
{% for product in products %}
<div class = "clerk-grid-item" >
<div class = "clerk-grid-product" >
<a href = "{{ product.url }}" >
{% if product.price < product.list_price %}
< div class = "clerk-grid-badge" >On Sale</div >
{% endif %}
<div class = "clerk-grid-image" style = "background-image: url('{{ product.image }}');" ></div >
<div class = "clerk-grid-brand" >{{ product.brand }}</div >
<div class = "clerk-grid-name" >{{ product.name }}</div >
<div class = "clerk-grid-pricing" >
{% if product.price < product.retail_price %}
< div class = "clerk-grid-list-price" >£{{ product.retail_price | money }}</div >
{% endif %}
<div class = "clerk-grid-price" >£{{ product.price | money }}</div >
</div >
</a >
{% if product.stock == 1 %}
<a class = "clerk-not-in-stock" href = "{{ product.url }}" data-event-type = "product-click" >
<div class = "clerk-grid-button-not-in-stock" >Out of Stock</div >
</a >
{% else %}
<a class = "clerk-add-to-cart" href = "/cart.php?action=add&product_id={{ product.id }}" data-event-type = "product-click" >
<div class = "clerk-grid-button" >Add to Cart</div >
</a >
{% endif %}
</div >
</div >
{% endfor %}
</div >
{% if count > products.length %}
<div class = "clerk-load-more-button" onclick = "Clerk('content', '#{{ content.id }}', 'more', 40);" >Show More Results</div >
{% endif %}
</div >
CSS
# #clerk-search-results { margin : 0 ; }
.clerk-search-result { margin : 1 em 0 ; }
.clerk-search-result-headline { font-weight : bold ; font-size : 2 em ; text-align : center ; }
.clerk-grid { display : flex ; flex-flow : row wrap ; }
.clerk-grid-item { margin : auto ; }
.clerk-grid-product { position : relative ; overflow : hidden ; margin : 1 em ; padding : 1 em ; background-color : white ; border : 1 px solid #eee ; border-radius : 1 em ; box-shadow : 0 .1 em .2 em 0 rgba(0 ,0 ,0 ,.08 ); text-align : center ; }
.clerk-grid-badge { position : absolute ; top : 5 px ; right : -35 px ; display : inline-block ; width : 120 px ; margin : 10 px auto ; padding : 5 px 0 ; border-radius : 3 px ; background-color : #fbc531 ; font-size : 10 px ; color : white ; text-align : center ; letter-spacing : 1 px ; transform : rotate(45 deg ); }
.clerk-grid-tags { position : absolute ; top : .8 em ; left : .8 em ; }
.clerk-grid-tag { display : inline-block ; padding : .2 em .8 em ; border-radius : .3 em ; background-color : gray ; font-size : 10 px ; color : white ; letter-spacing : 1 px ; }
.clerk-grid-image { width : 100 % ; height : 8 em ; margin-bottom : 1 em ; background-position : center center ; background-repeat : no-repeat ; background-size : contain ; }
.clerk-grid-brand { font-size : 0.9 em ; color : #757575 ; }
.clerk-grid-name { height : 3 em ; overflow : hidden ; color : #4a3b40 ; font-weight :bold ; font-size : 15 px ; margin-bottom : 1 em ; }
.clerk-grid-pricing { display : flex ; margin-bottom : 1 em ; }
.clerk-grid-price { flex : 1 ; color : #757575 ; font-weight : bold ; }
.clerk-grid-list-price { flex : 1 ; opacity : .8 ; font-weight : normal ; text-decoration : line-through ; color : gray ; }
.clerk-add-to-cart , .clerk-add-to-cart :hover { color : white ; }
.clerk-not-in-stock , .clerk-not-in-stock :hover { color : #4a3b40 ; }
.clerk-grid-button-not-in-stock { display : block ; margin : 0 auto ; padding : .6 em 2 em ; border : none ; border-radius : .5 em ; background-color : white ; color : #4a3b40 ; text-transform : uppercase ; text-align : center ; white-space : nowrap ; font-weight : bold ; cursor : pointer ; }
.clerk-grid-button { display : block ; margin : 0 auto ; padding : .6 em 2 em ; border : none ; border-radius : .5 em ; background-color : #b6c254 ; color : white ; text-transform : uppercase ; text-align : center ; white-space : nowrap ; font-weight : bold ; cursor : pointer ; }
.clerk-load-more-button { display : block ; width : 20 em ; margin : 1 em auto ; padding : .6 em 2 em ; border : none ; border-radius : .5 em ; background-color : #b6c254 ; color : white ; text-transform : uppercase ; text-align : center ; white-space : nowrap ; font-weight : bold ; font-size : 1.2 em ; cursor : pointer ; }
@media screen and ( min-width : 1025px ) { .clerk-grid-item { flex : 0 0 25 % ; margin : auto ; } }
@media screen and ( min-width : 500px ) and ( max-width : 1024px ) { .clerk-grid-item { flex : 0 0 33 % ; margin : auto ; } }
@media screen and ( max-width : 499px ) { .clerk-grid-item { flex : 0 0 100 % ; margin : auto ; } }
Esta página ha sido traducida por una IA útil, por lo que puede contener errores de idioma. Muchas gracias por su comprensión.