Bowmark AIdocs

Sun Home Saunas

Sun Home Saunas' live Digioh buyer quiz — its current questions, published product-ranking rules, real Shopify prices, and a real cart write for a…

Sun Home Saunas' live Digioh buyer quiz — its current questions, published product-ranking rules, real Shopify prices, and a real cart write for a recommended product — no login or dealer routing.

Domain: sunhomesaunas.com

Also known as: Sun Home Saunas, Sun Home, sunhomesaunas, sunhomesaunas.com

Call it directly

bowmark.providers.sunhomesaunas.getSaunaFinderQuestions(): Promise<SunHomeSaunasQuizQuestion[]>
bowmark.providers.sunhomesaunas.getPersonalizedSaunaMatches(answers: {questionId: string, optionIds: string[]}[]): Promise<SunHomeSaunasMatch[]>
bowmark.providers.sunhomesaunas.addSaunaToCart(handle: string, quantity?: number): Promise<SunHomeSaunasCartResult>

Functions

FunctionWhat it does
getSaunaFinderQuestionsReads Sun Home Saunas' real, live Digioh buyer quiz from its published breakpoint configuration — every current question and answer button, with the ids getPersonalizedSaunaMatches() needs…
getPersonalizedSaunaMatchesApplies real answers (from getSaunaFinderQuestions()) to the live Digioh prq_keywords rules the site's quiz publishes, then returns the site's own weighted ranking with real current…
addSaunaToCartAdds one real matched product (a handle from getPersonalizedSaunaMatches()) to a real Shopify cart at Sun Home Saunas' own real live price, and reads the cart back to confirm the write…

Types

// Sun Home Saunas' OWN shapes — not a capability contract.

interface SunHomeSaunasQuizOption {
  id: string;
  label: string;
}

interface SunHomeSaunasQuizQuestion {
  id: string;          // pass back as answers[].questionId
  title: string;
  type: string;        // the site's own Digioh question type, e.g. "DIGIOH_PRQ"
  options: SunHomeSaunasQuizOption[];  // option.id -> answers[].optionIds
}

interface SunHomeSaunasMatch {
  handle: string;       // the key addSaunaToCart takes
  title: string;
  price: number;        // dollars — real live Shopify price
  matchScore: number;   // selected answers that positively weighted this product
  matchOutOf: number;   // submitted answer selections
}

interface SunHomeSaunasCartResult {
  handle: string;
  title: string;
  variantId: number;
  linePrice: number;      // dollars, for the quantity added
  quantity: number;
  cartItemCount: number;  // the live cart's total items AFTER this add
  cartTotal: number;      // dollars — the live cart's total price after this add
}

Examples

// What does Sun Home recommend for two people who want a sauna indoors?
const questions = await bowmark.providers.sunhomesaunas.getSaunaFinderQuestions();
const pick = (title, label) => {
  const q = questions.find(q => q.title.includes(title));
  return { questionId: q.id, optionIds: [q.options.find(o => o.label.includes(label)).id] };
};
const matches = await bowmark.providers.sunhomesaunas.getPersonalizedSaunaMatches([
  pick("Which Sun Home Setup", "Sauna"),
  pick("How People Use Sauna", "2 people"),
  pick("Where Likely Place Sauna", "Indoor wellness space"),
]);
const top = matches[0];
const cart = await bowmark.providers.sunhomesaunas.addSaunaToCart(top.handle);
return { recommendation: top, cart };