Interior Define
Interior Define's custom sofa/sectional configurator — search the catalog, read one product's full customizer (fabric color, leg finish, dimensions,…
Interior Define's custom sofa/sectional configurator — search the catalog, read one product's full customizer (fabric color, leg finish, dimensions, cushion fill, every option's exact price), and price a specific configuration against the live catalog rather than a researched estimate.
Domain: interiordefine.com
Also known as: Interior Define, interiordefine, InteriorDefine, interiordefine.com
Prefer the capability
bowmark.custom_sofa_configurator covers this provider and routes around it when it is having a bad day. Reach for this page when you need interiordefine.com specifically.
Call it directly
bowmark.providers.interiordefine.searchProducts(query: string): Promise<InteriorDefineProductSummary[]>
bowmark.providers.interiordefine.getConfigurator(sku: string): Promise<InteriorDefineConfigurator>
bowmark.providers.interiordefine.priceConfiguration(sku: string, selections: Record<string, string>): Promise<InteriorDefinePriceResult>
bowmark.providers.interiordefine.addToCart(sku: string, selections: Record<string, string>): Promise<InteriorDefineCartHandoff>Functions
| Function | What it does |
|---|---|
searchProducts | Searches Interior Define's catalog by free text (e.g. "sectional", "leather sofa") and returns every customizable match with its SKU, name, entry URL and starting price. |
getConfigurator | Reads one product's whole customizer: every option category (fabric Color, leg Finish, Length, Total Depth, Cushion Fill, Total Sofa Cushions — the exact set varies by product) with each… |
priceConfiguration | Prices ONE specific configuration — selections keyed by option title (case-insensitive), e.g. { Color: "Coconut", Finish: "Matte Black" } — against the SKU's live customizer and returns the… |
addToCart | Turns a configuration into the link you hand the shopper: Interior Define's own product page with every matched choice PRESELECTED (fabric, leg finish, size, cushions), landing them on the… |
Types
// Interior Define's OWN shapes — not a capability contract.
interface InteriorDefineProductSummary {
sku: string; // the key getConfigurator/priceConfiguration take
name: string;
urlKey: string;
url: string;
basePrice: number;
basePriceFormatted: string; // "$1,630.00"
}
interface InteriorDefineOptionChoice { id: number; label: string; priceDelta: number }
interface InteriorDefineOption {
optionId: number; // Magento's own option_id — the key addToCart writes into the handoff URL
title: string; // "Color" (fabric), "Finish" (legs), "Length", "Total Depth", "Cushion Fill", "Total Sofa Cushions"
required: boolean;
choices: InteriorDefineOptionChoice[];
}
interface InteriorDefineConfigurator {
sku: string;
name: string;
url: string;
basePrice: number;
basePriceFormatted: string;
options: InteriorDefineOption[];
}
interface InteriorDefinePriceLine { option: string; choice: string; priceDelta: number }
interface InteriorDefinePriceResult {
sku: string;
total: number;
totalFormatted: string;
breakdown: InteriorDefinePriceLine[];
missingRequired: string[]; // required categories with no valid selection — total is a FLOOR until these are picked
unmatched: string[]; // selections that didn't match a real option/choice, named so nothing mispriced silently
handoffUrl: string; // the product's entry page — call addToCart for the same page with the choices PRESELECTED
}
interface InteriorDefineCartHandoff {
sku: string;
name: string;
url: string; // the product page with every matched choice preselected, on the site's own Add to Cart button
applied: InteriorDefinePriceLine[];
total: number;
totalFormatted: string;
missingRequired: string[]; // required categories left unpicked — the site defaults them, so total is a FLOOR
unmatched: string[];
}Examples
// Configure a sofa and hand the shopper a link that opens it ready to buy.
const priced = await bowmark.providers.interiordefine.addToCart("SLON.FABRIC.SOFA.STNDRD", {
Color: "Coconut",
Finish: "Matte Black",
});
return { openThis: priced.url, price: priced.totalFormatted, shopperStillPicks: priced.missingRequired };// What would a grey performance-fabric sectional with walnut legs actually cost?
const matches = await bowmark.providers.interiordefine.searchProducts("sectional");
const sloan = matches.find((m) => m.name === "Sloan");
const priced = await bowmark.providers.interiordefine.priceConfiguration(sloan.sku, {
Color: "Grey",
Finish: "Oiled Walnut with Brass Cap",
});
return { total: priced.totalFormatted, missing: priced.missingRequired, finishOnSite: priced.handoffUrl };Related
custom_sofa_configurator | Custom sofa configurator (fabric selection, live pricing) — the capability this provider backs. |
joybird | Also backs the same capability. |