Prerequisites — before implementing AI Sizing, complete the Cookie consent and Installation steps on the JS Library page. Kleep must not load until the visitor has consented via your CMP, and the library must be loaded site-wide.
Methods
kleep.load — Display Kleep’s CTA
-
Initialize the widget with
kleep.load: -
Add a container where the widget should be displayed on the product page:
This div is used to append our button inside. We leave CSS styling of the button to you during the implementation.
Parameters
kleep.load should be called on each product page (PDP) to load Kleep’s CTA, with the following parameters:
If
lang or market don’t follow their respective conventions or aren’t supported, you’ll see a console warning.Supported languages (ISO 639-1)
Supported languages (ISO 639-1)
If a language you need isn’t in the list below, please contact your Kleep representative.
fr— French (default)ar— Arabicbr— Brazilianda— Danishde— Germanel— Greeken— Englishes— Spanishfi— Finnishhu— Hungarianid— Indonesianit— Italianja— Japaneseko— Koreannl— Dutchpl— Polishpt— Portugueseru— Russiansv— Swedishth— Thaivi— Vietnamesezh— Chinese (Simplified)zht— Chinese (Traditional)
en-GB, fr_CA…): zh-TW, zh-HK and zh-Hant select Traditional Chinese.Supported markets (ISO 3166-1 alpha-2)
Supported markets (ISO 3166-1 alpha-2)
AF, AX, AL, DZ, AD, AO, AI, AG, AR, AM, AW, AC, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CA, CV, BQ, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, HR, CU, CW, CY, CZ, CI, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, XK, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MQ, MR, MU, YT, MX, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, AN, NC, NZ, NI, NE, NG, NU, NF, MK, NO, OM, PK, PS, PA, PG, PY, PE, PH, PN, PL, PT, QA, CM, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, KR, SS, ES, LK, VC, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TA, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, WF, EH, YE, ZM, ZW, ZZ
Example
Custom callbacks
BesidesgetSizes, addToCart and selectSize, kleep.load accepts custom callbacks under callbacks. They work the same way: a button in the drawer, and when the visitor clicks it, Kleep calls your function. Each custom button is set up by Kleep for your account during onboarding (label, translations, and when it appears — for example when the recommended size is out of stock); you only implement the function.
Each callback receives the
variantId of the size the visitor was looking at (null when getSizes isn’t implemented), and a second argument with productId and size.
kleep.requestSize — Get the recommended size on a PDP
Call kleep.requestSize on each product page to get the visitor’s recommended size for that product, without opening the drawer. It is meant to be called on every PDP, including products Kleep can’t size: it then resolves with success: false and you display nothing.
It works in two modes:
- Return only — Kleep returns the recommended size and you build your own element and wording around it.
- Fill an element — you pass a
selector; Kleep writes the recommended size into that element as plain text (not a button), with the same wording as the “Recommended size” state of the CTA created bykleep.load, translated in the page’slang(editable in your Dashboard under Web Translations). The element is left untouched when there is nothing to display.
Parameters
Return value
APromise resolving to an object. It never rejects: errors resolve with success: false.
kleep.requestSize only reads the visitor’s existing Kleep profile: it never opens the drawer or asks questions, and it returns sizes only — never the visitor’s measurements or identifiers. Call it again when the product displayed changes (single-page apps) or after the drawer closes, so the label follows the latest profile.kleep.createButton — Recreate Kleep’s CTA
In some cases your website might rebuild components or reload state variables, causing Kleep’s CTA to disappear. Call kleep.createButton to make it reappear.
No parameter is needed — it reuses the information you provided when calling kleep.load, so make sure kleep.load ran first.
kleep.track — Enable tracking & Dashboard access
On top of the sizing functionality, we add tracking so you can measure how the solution performs on your website. Use kleep.track(event_type, event_info) to send information each time a tracked event occurs.
These events track your store’s standard customer journey — a product being viewed, added to cart, or purchased through your usual storefront flow. They are not Kleep-specific actions (e.g. an add-to-cart triggered from the Kleep widget); fire each one wherever it naturally happens on your site.
product_viewed
product_added_to_cart
checkout_completed
kleep.getTrackingId — Get internal Kleep ID
For custom use cases, you can retrieve one of the visitor’s Kleep internal IDs.
It returns either:
null— if the visitor has not used Kleep, or- a UUID — if the visitor has a Kleep tracking ID
