HomeGeliştiriciler için

Yazılımı çalıştırmak için gerekli bilgiler

Searchbooster.io akıllı arama sisteminin çalışmasını sağlamak için aşağıdaki adımlar sırasını uygulamanız gerekir:

  1. bağlantı ile sisteme kayıt olun
  2. yeni bir proje oluşturun ve ona bir isim verin (talimat)
  3. projeye ürün bilgilerini içeren bir feed ekleyin (aşağıdaki sayfadaki feed gereksinimlerine bakın)
  4. hedef siteye widget’ın JS kodunu kurun (talimat) veya API entegrasyonunu gerçekleştirin
  5. feed içeriği indekslendikten sonra sistem çalışmaya başlayacak ve 14 günlük bir test süresi etkinleştirilecektir.
  6. test süresi boyunca, servis çalışanları sizinle iletişime geçecek ve bir tarife seçmenize yardımcı olacak, fatura kesecek, ödeme yapıldıktan sonra uygun tarifeyi etkinleştireceklerdir.

Projenin genel şeması burada açıklanmıştır.

OpenAPI formatında (swagger) API belgeleri
Ana API yöntemlerini açıklayan ekran kaydı

Önerilen YML Örneği

Ne kadar çok alan doldurulursa o kadar iyidir.

<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>

Yandex’in resmi önerilerini burada bulabilirsiniz: https://yandex.ru/support/marketplace/catalog/yml-requirements.html

Tüm kimlik (id) parametreleri sıfırdan başlamamalıdır.

Dikkat edin: bir dizi parametre, örneğin category öğesinin url özelliği, resmi Yandex Market formatının bir parçası değildir, ancak onu bize iletirseniz, arama özelliklerini genişleteceğiz. Ayrıca, tüm parametrelerin doldurulması zorunlu değil, örneğin url etiketi, brands bölümü – YML’yi onlarsız kullanabiliriz, ancak bu tür alanların olması daha sonra arama çalışmasını iyileştirir.

Ayrıca «populatiry» örneğinde adı verilen parametre de önemlidir. Bu parametrede, sonuç sıralamasında kullanılacak ürünün koşullu ağırlığını belirtmelisiniz. Bu parametre zorunlu değildir, ancak ürünlerin sonuçlarını sizin için ayarlamak üzere arama çalışmasını önemli ölçüde iyileştirebilir.

Bölgesellik, bölge etiketi kullanılarak uygulanır. Şehirler, ilçeler veya bazı koşullu çokgenler böyle bir bölge olabilir. Bölge içinde, ürün özelliklerinin özel durumlarını ayarlayabilirsiniz.

 

Ürünün satıcı kodu nasıl iletilir?

Ürünün satıcı kodu, ayrı bir <offerCode>ü yani ürün satıcı kodunu verme etiketi üzerinden iletilmelidir.
Ayrıca satıcı kodunu <param name=”Satıcı kodu”> üzerinden iletmenin alternatif bir yolu da vardır.

Bir ürün için isteğe bağlı bir etiket ve isteğe bağlı bir snippet (parçacık) nasıl görüntülenir?

Label ve snippet etiketleri için destek uygulanmıştır.

İlkinin yardımıyla bir snippet ve ikincisinin yardımıyla isteğe bağlı bir etiket iletebilirsiniz.

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

Basitleştirilmiş mal teslim etme formatı

Mağazanızdan belirli bir ürün işlemini yapmanın en kolay yolu. Benzer bir formatla da çalışabiliriz, ancak daha fazla verimlilik için yukarıda anılan şablonu kullanmanızı öneririz.

<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>

Kullanıcı olaylarını çağırmak için geri arama (callback) mekanizması

Widget’ımız, arama yaparken veya arama önerilerini kullanırken özel olayların tetiklenmesini destekler.

!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")
    }
});

Arama sonuçlarını dönüştürme

Bazı durumlarda, site tarafında arama sonuçları ek olarak değiştirilmelidir. Örneğin, bu, farklı sitelere kod yerleştirirken kullanışlıdır. Aşağıda bir başlatma örneği verilmiştir

! 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');
    }
});