drawer.kleep.ai. De SDK biedt één component + twee methoden, vergelijkbaar met het iOS-oppervlak.
Installatie
Elke release wordt gepubliceerd als een npm-tarball op
cdn.kleep.ai. Er zijn twee URL-vormen beschikbaar:
Nieuwste stabiele versie (automatisch bijgewerkt bij elke nieuwe stabiele release — pre-releases verschuiven deze aanwijzer nooit):
v1.0.0 en 1.0.0 door de gewenste releasetag. De twee vermelde pakketten zijn peer-afhankelijkheden — de SDK vereist ze maar laat u de versie bepalen.
De gepubliceerde tarball bevat een bijbehorende SHA-256 (<tarball>.sha256 / latest.tgz.sha256) als u de integriteit wilt verifiëren vóór installatie.
Expo
Beide peer-afhankelijkheden zijn vooraf gebundeld in Expo Go (SDK 54+). Er is geen extra setup nodig tijdens ontwikkeling. Voor productie-builds worden ze automatisch opgehaald doorexpo prebuild.
Bare React Native
Rechten
Voeg voor de schoeiselstroom (camerascan) het volgende toe aan
ios/<App>/Info.plist:
android/app/src/main/AndroidManifest.xml:
Eenmalig configureren bij het starten van de app
| Veld | Verplicht | Beschrijving |
|---|---|---|
publicId | ja | UUID ter identificatie van uw retailer (verstrekt door Kleep) |
language | nee | 'fr' | 'en' | 'de' | 'it' | 'es' | 'nl' | 'pt' | 'ja' | 'ko' | 'pl' | 'br' | 'dk' | 'fi' | 'se' | 'gb' |
Gebruik
Methode 1: Kleep.checkProduct
Roep dit aan bij het koppelen van de PDP. Het resultaat bepaalt de “Vind mijn maat”-CTA — of deze wordt weergegeven en welk label wordt getoond.
| parameter | prioriteit | beschrijving |
|---|---|---|
productId | verplicht | Uw product-ID bij de retailer |
recommendable | recommendedSize | Wat weergeven |
|---|---|---|
false | — | CTA verbergen (product niet geschikt voor Kleep) |
true | afwezig | CTA: “Trouver ma taille” |
true | "M" | CTA: “Taille recommandée: M” |
(publicId, productId) voor de gate en (publicId, productId, mid) voor de aanbevolen maat. Het opnieuw renderen van de PDP of terugnavigeren is gratis.
Implementatievoorbeeld
Methode 2: <KleepFindSizeView>
Koppel dit component om de maatzoeker-drawer te openen in een volledig scherm Modal+WebView. Gecontroleerd componentpatroon: u beheert de visible-toestand, de SDK vraagt sluiting aan via onDismiss.
| prop | prioriteit | beschrijving |
|---|---|---|
visible | verplicht | Beheert de zichtbaarheid van de Modal |
productId | verplicht | Hetzelfde als in checkProduct |
onDismiss | verplicht | Wordt geactiveerd wanneer de gebruiker de drawer sluit (X / swipe / terug). De host MOET visible naar false omschakelen |
variantId | optioneel | Selecteert vooraf een variant voor de aanbeveling |
customerId | optioneel | CRM-identificator voor koppeling tussen sessies |
language | optioneel | Overschrijft de SDK-taalkeuze voor dit openen |
countryCode | optioneel | bijv. "FR", "US" — bepaalt eenheidssysteem + standaard BH-maten |
stocks | optioneel | { [variantId]: number | boolean } — drawer toont niet-beschikbare / gedeeltelijke voorraad UI |
mock | optioneel | true → drawer slaat echte aanbeveling-API-aanroepen over (alleen QA) |
forceState | optioneel | 'outOfRange' | 'unavailable' | 'error' | 'qrcode' — QA-ingang om direct een eindtoestand te renderen |
warmRestore | optioneel | { mid, uid } — laad een bestaande meting vooraf (sla de introductie over). Herstel op hetzelfde apparaat is al automatisch via AsyncStorage |
extraParams | optioneel | Raw Record<string, string> toegevoegd aan de drawer-URL (ontsnappingsluik) |
onAddToCart | optioneel | (event: { variantId, size? }) => void — gebruiker tikte op de “Toevoegen aan winkelwagen” CTA in de drawer. Host voegt de variant toe aan zijn winkelwagen |
onSelectSize | optioneel | (event: { size }) => void — gebruiker koos een maat op het Resultaatscherm. Host moet zijn PDP-maatkiezer synchroniseren |
onMessage | optioneel | Debug-hook — wordt geactiveerd voor elke inkomende postMessage geparseerd vanuit de drawer |
style | optioneel | StyleProp<ViewStyle> — containeropmaak overschrijven |
webViewProps | optioneel | Doorgestuurd naar react-native-webview voor geavanceerde aanpassing |
- Koppelt de iframe-stijl
window.parent.postMessagevan de drawer aan de React Native bridge - Slaat
mid/uidop in AsyncStorage wanneer de drawer ze pusht - Reageert op
getMid/getUid/getSizespostMessages van de drawer - Roept
Kleep.checkProductaan bij het openen om de stroom te bepalen (kleding / lingerie / schoeisel / kinderen) — gebruikt dezelfde 5-minuten-cache als uw CTA-aanroep, dus het is gratis als u alcheckProducthebt aangeroepen
Methode 3: Kleep.track
Fire-and-forget-analyse. Gooit nooit een fout.
| parameter | prioriteit | beschrijving |
|---|---|---|
eventName | verplicht | Naam van de gebeurtenis |
options.customerId | optioneel | CRM-identificator |
options.parameters | optioneel | Record<string, unknown> — willekeurige gebeurtenisgegevens |
| eventName | Trigger |
|---|---|
product_viewed | Wanneer de PDP wordt bekeken |
product_added_to_cart | Wanneer een product aan de winkelwagen wordt toegevoegd |
checkout_completed | Bij orderbevestiging na de betaling |
product_viewed
product_added_to_cart
checkout_completed
Cache-ongeldigmaking
De SDK houdt twee in-memory caches bij (elk 5 minuten TTL):
- Productpoort —
(publicId, productId) → { recommendable, category, productFound } - Aanbevolen maat —
(publicId, productId, mid) → size label
