Chantecaille
Chantecaille's own Foundation Shade Match Quiz, reimplemented over its real Cartful Solutions scoring engine: read the real live question taxonomy, and…
Chantecaille's own Foundation Shade Match Quiz, reimplemented over its real Cartful Solutions scoring engine: read the real live question taxonomy, and get real ranked foundation matches — name, price, product page — computed by the site's own engine for a stated undertone, skin tone, finish, skincare benefits and coverage.
Domain: chantecaille.com
Also known as: Chantecaille, chantecaille, chantecaille.com
Call it directly
bowmark.providers.chantecaille.getFoundationQuizTaxonomy(): Promise<QuizQuestion[]>
bowmark.providers.chantecaille.matchFoundation(selections: FoundationSelections): Promise<FoundationMatch[]>Functions
| Function | What it does |
|---|---|
getFoundationQuizTaxonomy | Reads Chantecaille's real, live Foundation Shade Match Quiz question and answer taxonomy off its own Cartful Solutions bundle — the real option names to pass to matchFoundation. |
matchFoundation | Chantecaille's own Foundation Shade Match Quiz, run for real: posts the caller's selections to the site's own scoring engine and returns the real ranked foundation matches, highest score… |
Types
// Chantecaille's OWN shapes — not a capability contract.
interface QuizQuestion {
id: string;
code: string; // e.g. "undertone", "tone", "look", "benefits", "coverage"
name: string; // e.g. "Undertone"
question: string; // the site's own prompt text
answers: { id: string; code: string; name: string }[];
}
interface FoundationSelections {
undertone: string; // e.g. "Cool" — code or name, from getFoundationQuizTaxonomy()
skinTone: string; // e.g. "Medium Deep"
skinLook: string; // e.g. "Smooth and flawless"
benefits: string[]; // e.g. ["Hydration"] — [] answers the site's own "Skip"
coverage: string; // e.g. "Light" | "Medium" | "Full"
}
interface FoundationMatch {
name: string; // e.g. "Future Skin - Maple"
score: number; // the site's own computed match score
price: string;
displayPrice: string; // e.g. "$95.00"
productUrl: string; // real product page, this exact shade preselected
productImageUrl: string;
description: string;
}Examples
// Chantecaille's own quiz, run for a stated skin profile
const matches = await bowmark.providers.chantecaille.matchFoundation({
undertone: "Cool",
skinTone: "Medium Deep",
skinLook: "Smooth and flawless",
benefits: ["Hydration"],
coverage: "Light",
});
const top = matches[0];
return { recommendation: top.name, price: top.displayPrice, buy: top.productUrl };// What are the real quiz questions and answer options?
const taxonomy = await bowmark.providers.chantecaille.getFoundationQuizTaxonomy();
return taxonomy.map((q) => `${q.question}: ${q.answers.map((a) => a.name).join(", ")}`);