Bowmark AIdocs

Modular Closets

Modular Closets' real pre-configured kit catalog (closets, wardrobes, pantries, laundry, mudroom) and its real Shopify-priced configurator — search real…

Modular Closets' real pre-configured kit catalog (closets, wardrobes, pantries, laundry, mudroom) and its real Shopify-priced configurator — search real kits, read one kit's real option tree (Color, Width, and on some kits a third option), and price one exact combination against the site's own real variant price.

Domain: modularclosets.com

Also known as: Modular Closets, modularclosets, modularclosets.com

Call it directly

bowmark.providers.modularclosets.searchClosetKits(query?: string): Promise<ModularClosetsKit[]>
bowmark.providers.modularclosets.getKitConfigurator(handle: string): Promise<ModularClosetsConfigurator>
bowmark.providers.modularclosets.priceKitConfiguration(handle: string, selections: Record<string, string>): Promise<ModularClosetsPriceResult>

Functions

FunctionWhat it does
searchClosetKitsSearches Modular Closets' real pre-configured kit catalog (closets, wardrobes, pantries, laundry, mudroom — every room type in one collection), optionally filtered by a free-text query…
getKitConfiguratorReads one kit's real option tree (Color, Width, and on some kits a third option like "Doors included") plus every real priced variant for every combination, straight off the site's own…
priceKitConfigurationResolves one exact build (a kit handle + a chosen value for every real option from getKitConfigurator) to Modular Closets' own real Shopify-priced variant — the same number and availability…

Types

// Modular Closets' OWN shapes — not a capability contract.

interface ModularClosetsKit {
  handle: string;       // the key getKitConfigurator/priceKitConfiguration take
  title: string;
  tags: string[];        // the site's own room-type/grouping tags, e.g. ["Bedroom"]
  priceMin: number;      // dollars — cheapest real combination
  priceMax: number;
}

interface ModularClosetsOption {
  name: string;          // e.g. "Color", "Width", "Doors included"
  values: string[];      // this kit's real values for that option
}

interface ModularClosetsVariant {
  variantId: number;
  selections: Record<string, string>;  // every real option name -> this variant's value
  price: number;         // the real Shopify-priced total for this exact combination
  available: boolean;
}

interface ModularClosetsConfigurator {
  handle: string;
  title: string;
  options: ModularClosetsOption[];
  variants: ModularClosetsVariant[];   // every real priced combination
}

interface ModularClosetsPriceResult {
  handle: string;
  selections: Record<string, string>;
  variantId: number;
  price: number;          // the real number the site's own product page would show
  available: boolean;
}

Examples

// What does a 66" wide Total Closet Kit cost in Natural Oak?
const kits = await bowmark.providers.modularclosets.searchClosetKits("total closet kit");
const kit = kits[0];
const configurator = await bowmark.providers.modularclosets.getKitConfigurator(kit.handle);
const priced = await bowmark.providers.modularclosets.priceKitConfiguration(kit.handle, {
  Color: "Natural Oak",
  Width: '66" WIDE',
});
return { price: priced.price, available: priced.available, options: configurator.options };