Información necesaria para el funcionamiento del software

Para que el sistema de búsqueda inteligente de Searchbooster.io funcione, es necesario seguir la siguiente secuencia de pasos:

  1. regístrese en el sistema haciendo clic en el enlace
  2. cree un nuevo proyecto y dele un nombre (instrucciones)
  3. añada un feed con información de los productos al proyecto (vea los requisitos del feed en la página de abajo)
  4. instale el código JS del widget en el sitio de destino (instrucciones) o realice la integración a través de la API
  5. una vez que el contenido del feed esté indexado, el sistema se pondrá en funcionamiento y se activará un periodo de prueba de 14 díasй
  6. durante el periodo de prueba, el personal del servicio se pondrá en contacto con usted para ayudarle a elegir una tarifa, facturar y activar la tarifa correspondiente tras el pago.

Aquí se describe el esquema general del proyecto.

Documentación de la API en formato OpenAPI (swagger)
Screencast de los principales métodos de la API

Ejemplo de YML recomendado

Cuantos más campos rellene, tanto mejor

<yml_catalog date="2020-08-04 02:00">
	<shop>
		<name>Магазин</name>
		<company>Магазин</company>
		<url>https://site.ru/</url>

		<brands>
			<brand url="http://site.ru/brand/1">Lego</brand>
			<brand url="http://site.ru/brand/2">Лукойл</brand>
			<brand url="http://site.ru/brand/3">BMW</brand>
		</brands>

		<categories>
			<category url="http://site.ru/cat/1" id="1">Спорт и отдых</category>
			<category url="http://site.ru/cat/2" id="2" parentId="1">Тренажеры и фитнес</category>
			<category url="http://site.ru/cat/3" id="3" parentId="2">Тренажеры</category>
			<category url="http://site.ru/cat/4" id="4" parentId="3">Эллиптические тренажеры</category>
		</categories>

		<offers>
			<offer type="vendor.model" available="true" id="1">
				<url>https://site.ru/product/1</url>
				<price>665890.00</price>
				<oldprice>1399.00</oldprice>
				<currencyId>RUR</currencyId>
				<categoryId>4</categoryId>
				<picture>https://site.ru/images/1.png</picture>
				<typePrefix>Эллиптический тренажер</typePrefix>
				<vendor>Matrix</vendor>
				<model>A3X 2012</model>
				<description>Описание</description>
				<sales_notes>Сборка - бесплатно.</sales_notes>
				<manufacturer_warranty>true</manufacturer_warranty>
				<offerCode>артикул-товара</offerCode>
				<snippet>подпись-к-товару</snippet>
				<label>ярлык-на-товар-акция-на-товар</label>
			
				<param name="popularity">3</param>
				<param name="Вес в упаковке" unit="кг">221</param>
				<param name="Длина" unit="м">1.8</param>
				<param name="Ширина" unit="м">0.7</param>
				<param name="Высота" unit="м">1.7</param>
				<pickup>false</pickup>
				<store>false</store>

				<region id="msk">
				    <available>true</available>
			      	    <price>9999</price>
				</region>
				<region id="spb">
				    <available>false</available>
				    <price>11200</price>
				</region>
			</offer>
		</offers>
	</shop>
</yml_catalog>

Las recomendaciones oficiales de Yandex pueden encontrarse aquí:
https://yandex.ru/support/marketplace/catalog/yml-requirements.html

Todos los parámetros de id no deben empezar de cero.

Por favor, tenga en cuenta: una serie de parámetros, por ejemplo, la propiedad url del elemento category no forma parte del formato oficial de Yandex Market, pero si la transmite, ampliaremos las capacidades de búsqueda. Además, no todos los parámetros son obligatorios, por ejemplo, la etiqueta url en la sección de brands. Podemos utilizar YML sin este parámetro, pero la presencia de tales campos mejora posteriormente el rendimiento de la búsqueda.

Otro parámetro importante es aquel llamado «populatiry» en el ejemplo. Este parámetro debe utilizarse para especificar el peso condicional del producto que se utilizará en la ordenación de los resultados de búsqueda. Esta opción no es obligatoria, pero puede mejorar notablemente el rendimiento de la búsqueda personalizando los resultados de búsqueda de productos.

La etiqueta «region» se usa para ajustar las regiones. Ciudades, distritos o algunos polígonos condicionales pueden usarse como tal región. Dentro de una región, es posible configurar casos particulares de propiedades de productos.

¿Cómo puedo transferir el código del artículo de producto?
El código del artículo se transfiere a través de una etiqueta separada que sirve para transferir el código del artículo.
También hay una forma alternativa de transferir el código del artículo, a través de.

¿Cómo se puede implementar una etiqueta de producto arbitraria y un snippet arbitrario?
Se ha implementado el soporte de las etiquetas snippet y label.
El primero permite transmitir un snippet y el segundo, una etiqueta arbitraria

Поддержка тегов snippet и label.

Formato de transferencia de productos simplificado

La forma más fácil de tramitar un producto específico de su tienda. Podemos utilizar también un formato similar, pero para una mayor eficacia sugerimos utilizar la plantilla de arriba

<offer id="9012">
  <name>Эллиптический тренажер Matrix A3X 2012</name>
  <url>https://site.ru/product/1</url>
  <price>665890.00</price>
  <currencyId>RUR</currencyId>
  <categoryId>4</categoryId>
  <picture>https://site.ru/images/1.png</picture>
</offer>

Mecanismo de callback para activar eventos del usuario

Nuestro widget permite activar eventos personalizados cuando se realizan búsquedas o se utilizan sugerencias de búsqueda.

!function(e, t, n, o, r) {
    e[r] = e[r] || function() {
        (e[r].a = e[r].a || []).push(arguments)
    }, e[r].h = o, e[r].n = r, e[r].i = 1 * new Date, s = t.createElement(n), a = t.getElementsByTagName(n)[0], s.async = 1, s.src = o, a.parentNode.insertBefore(s, a)
}(window, document, "script", "https://cdn2.searchbooster.net/scripts/v2/init.js", "searchbooster"), searchbooster({
    theme: "v2",
    apiUrl: "//api4.searchbooster.io",
   
    apiKey: "...",
 
    initialized: function(e) {
        e.on('search', function(query) {
            if (query.query.query.length) {
                gtag('config', 'UA-123-1', {
                    'page_path': '/poisk/rezultaty/?q=' + encodeURIComponent(query.query.query)
                })
               
            }
        })

        e.on('completions', function(query) {
            if (query.query.query.length) {
              console.log(query.query.query);
            }
        });
        e.CombinedSearchInput.mount("header #SearchInput input")
    }
});

Conversión de los resultados de la búsqueda

En algunos casos, es necesario modificar adicionalmente los resultados de la búsqueda en el sitio web. Es cómodo, por ejemplo, cuando se coloca el código en diferentes sitios web. A continuación se muestra un ejemplo de inicialización

! function(e, t, n, c, o) {
    e[o] = e[o] || function() {
        (e[o].a = e[o].a || []).push(arguments)
    }, e[o].h = c, e[o].n = o, e[o].i = 1 * new Date, s = t.createElement(n), a = t.getElementsByTagName(n)[0], s.async = 1, s.src = c, a.parentNode.insertBefore(s, a)
}(window, document, "script", "https://cdn2.searchbooster.net/scripts/v2/init.js", "searchbooster"), searchbooster({
    apiKey: "apikey",
    theme: "base",
    apiUrl: "//api4.searchbooster.io",
 
    offer: {
        mapper: function(offer) {
          // ниже идет код преобразования
            try {
                var url = new URL(offer.url);
                offer.url = url.href.replace(url.origin, '');
            } catch (error) {};
            return offer;
        },
    },
    initialized: function(e) {
        e.CombinedSearchInput.mount('.search__field');
    }
});