Bowmark AIdocs

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

FunctionWhat it does
searchProductsSearches 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.
getConfiguratorReads 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…
priceConfigurationPrices 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…
addToCartTurns 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 };
custom_sofa_configuratorCustom sofa configurator (fabric selection, live pricing) — the capability this provider backs.
joybirdAlso backs the same capability.