Maiden Home
Maiden Home's Size x Wood Finish product configurator (sofas, sectionals/modular components, tables) — list every configurable product, read one product's…
Maiden Home's Size x Wood Finish product configurator (sofas, sectionals/modular components, tables) — list every configurable product, read one product's complete priced variant grid, and resolve a free-text product + size + wood finish to the exact live price and SKU, off the storefront's own live catalog rather than a researched estimate or a hedged price range.
Domain: maidenhome.com
Also known as: Maiden Home, maidenhome.com
Call it directly
bowmark.providers.maidenhome.searchConfigurations(query?: string): Promise<MaidenHomeConfiguratorProduct[]>
bowmark.providers.maidenhome.getProduct(handle: string): Promise<MaidenHomeConfiguratorProduct>
bowmark.providers.maidenhome.resolveVariant(productQuery: string, size: string, woodFinish: string): Promise<MaidenHomeVariantResolution>Functions
| Function | What it does |
|---|---|
searchConfigurations | Lists every Maiden Home product configurable by Size x Wood Finish (sofas, sectionals/modular components, tables) from the storefront's own live catalog — every size and wood-finish option,… |
getProduct | Reads one configurator product's complete Size x Wood Finish variant grid — a handle, e.g. "the-chelsea-sofa-heritage-belgian-linen-lake" — every size x finish combination, each with its… |
resolveVariant | Resolves a free-text product (e.g. "Chelsea Sofa Heritage Belgian Linen Lake"), size (e.g. "85\"") and wood finish (e.g. "Driftwood Ash") to the exact priced variant and its product URL,… |
Types
// Maiden Home's OWN shapes — not a capability contract.
interface MaidenHomeVariant {
productHandle: string;
productTitle: string;
productType: string; // e.g. "Sofa", "Modular Component", "Dining Table"
size: string; // e.g. "85\" Width", or a non-numeric value like "Right-Facing Chaise"
woodFinish: string; // e.g. "Driftwood Ash"
sku: string;
price: number;
priceFormatted: string;
available: boolean;
url: string; // the product page, preselecting this exact variant
}
interface MaidenHomeConfiguratorProduct {
handle: string;
title: string;
productType: string;
url: string;
sizeOptions: string[];
woodFinishOptions: string[];
priceRange: { min: number; max: number };
variants: MaidenHomeVariant[];
}
interface MaidenHomeVariantResolution {
productQuery: string;
size: string;
woodFinish: string;
matched: boolean;
variant: MaidenHomeVariant | null;
candidates: MaidenHomeVariant[]; // populated when not narrowed to exactly one real variant
message: string;
}Examples
// Resolve the exact variant ChatGPT's own fit-check hedged into a price range —
// the site's configurator narrowed to one real, priced, in-stock variant.
const resolved = await bowmark.providers.maidenhome.resolveVariant(
"Chelsea Sofa Heritage Belgian Linen Lake",
'85"',
"Driftwood Ash",
);
return { matched: resolved.matched, price: resolved.variant?.priceFormatted, url: resolved.variant?.url };// What can I configure, and what does one product actually offer?
const configurable = await bowmark.providers.maidenhome.searchConfigurations("chelsea");
const chelsea = await bowmark.providers.maidenhome.getProduct(configurable[0]!.handle);
return { sizes: chelsea.sizeOptions, finishes: chelsea.woodFinishOptions, priceRange: chelsea.priceRange };