Arama

Hook, doğrudan çağrı ve yönlendirmeler

Selwise aramasını uygulamaya almak: anlık arama sonuçları, yönlendirme kuralları ve sıfır sonuç ölçümü. Panelde tanımlı eş anlamlılar, yönlendirmeler ve sıralama kuralları uygulamada da geçerlidir.

Neyi arar

Selwise ürün beslemesini arar; mağazanızın kendi ürün dizinini değil. Bu yüzden filtre kenarı (facet) ve sıralama yoktur. Uygulamanızın kendi liste ekranı "tüm sonuçları gör" için kalmalı, Selwise araması onun üstünde hızlı bir anlık arama katmanı olmalıdır.

Hook ile

import { useSelwiseSearch } from '@selwise/react-native/react';

const { query, setQuery, hits, loading, error, isZeroResults, trackClick, clear } = useSelwiseSearch({
  limit: 20,
  minChars: 2,
  debounceMs: 300,
});
useSelwiseSearch(options?: SearchOptions & { debounceMs?: number; minChars?: number }): {
  query: string;
  setQuery: (query: string) => void;
  hits: SelwiseProduct[];
  loading: boolean;
  error: Error | null;
  isZeroResults: boolean;                    // arama çalıştı ve hiçbir şey döndürmedi
  trackClick: (itemCode: string, position?: number) => void;
  clear: () => void;
}

debounceMs varsayılanı 300, minChars varsayılanı 2 (daha kısa sorgu boş sayılır). Hook yazmayı bekler, önceki isteği iptal eder ve yalnızca en son sorgunun cevabını gösterir. Sonuçlara dokunulduğunda trackClick(item.itemCode, index) çağırın: tıklama raporu bununla dolar. isZeroResults sonuçsuz arama ekranınızı çizmek içindir; hata varken false kalır.

Doğrudan çağrı

search(query: string, options?: SearchOptions, signal?: AbortSignal): Promise<SearchResult>
trackSearchClick(query: string, itemCode: string, position?: number): void

interface SearchOptions {
  limit?: number;        // sunucuda en çok 100; verilmezse panelde ayarlı sonuç sayısı (yoksa 10)
  minPrice?: number;
  maxPrice?: number;
  inStock?: boolean;
  category?: string;
}

const result = await selwise.search('kırmızı ruj', { limit: 10, inStock: true });
if (result.redirect) {
  navigateTo(result.redirect);            // sonuç listesini ÇİZMEYİN
  return;
}
render(result.hits);

Cevap alanları

AlanAnlam
querySorduğunuz metin (SDK ekler)
hitsÜrün listesi, öneri ürünleriyle aynı alanlar
total, tookToplam eşleşme, milisaniye
enabledArama kanalda kapalıysa false
categories{ name, count } listesi (varsa)
redirectPanelde tanımlı yönlendirme (kargo gibi bir sorgu kargo sayfasına gider)
suggestions, expandedQuery, error, strategy, traceIdTanılama ve öneri alanları
  • redirect varsa sonuç listesinin yerine geçer. Bu bir cevaptır, başarısız arama değildir: hits boştur ve yönlendirmeyi uygulamayan uygulama, merchant'ın bilerek yazdığı kural için boş bir liste gösterir. Yönlendirmeli aramalar search_query olarak kaydedilir ve sıfır sonuç raporunu kirletmez (Yönlendirmeler).
  • Boş sorgu ve filtre yoksa cevap 200 ile hits: [] ve error: 'Query parameter required' olur; 200 karakterden uzun sorgu Query too long döner. Bu iki durumda SDK hata fırlatmaz ve hits boş geldiği için search_zero_results olayı yazar; bu yüzden boş ya da çok kısa sorguyla doğrudan search() çağırmayın (hook bunu minChars ile engeller).
  • Arama modülü satın alınmamış hesapta uç nokta 402 döner; kanalda arama kapalıysa enabled: false gelir. Önceden selwise.getSearchStatus() ile { enabled, testMode } kontrol edin. Arama test modundaysa (testMode: true) 0.13.0'dan beri search() yalnızca testMode: true ile başlatılan istemcide sorgular; gerçek bir alışverişçide istek gönderilmez, boş sonuç (hits: []) döner ve rapora hiçbir arama yazılmaz. Arama kutusunu bu durumda göstermemek için yine de getSearchStatus() okuyun.

Ne ölçülür

search() kendisi iki olayı kaydeder; ayrıca bir şey yazmayın, yoksa sayılar iki katına çıkar:

DurumOlay
Sonuç varsearch_query
Sonuç yok (ve yönlendirme yok)search_zero_results
Yönlendirmesearch_query (üstverisinde redirect)
trackSearchClickproduct_click (entityType: search, üstverisinde query ve position)

Sonuçsuz aramalar panelde listelenir: Sonuçsuz Aramalar, Arama Analitiği.

Kendi arama ekranınız

Uygulamanın kendi arama ekranı varsa ve Selwise sonuçları göstermiyorsa o aramalar Selwise'e yalnızca olay olarak ulaşır. Akinon App Maker eklentisi bunu kendiliğinden yapar ve source: app_search ile işaretler; sıfır sonuç iddia edilmez, çünkü sonuç gelmeden olay yayınlanır (Akinon App Maker Eklentisi).

Ham uç noktalar

selwise.endpoints.getSearchConfig() ve selwise.endpoints.getSearchSuggestions() arama yapılandırmasını ve önerilen sorguları ham cevap olarak verir; kendi arama arayüzünüzü yazıyorsanız kullanışlıdır. Alanları için Public API sayfasına bakın.

Sırada ne var

Son güncelleme: 10 Ekim 2026