Bowmark AIdocs

EQ3

EQ3's modern furniture catalog and configurator — real listing prices across the sofa line (listSofas), and one product's full fabric/finish/size…

EQ3's modern furniture catalog and configurator — real listing prices across the sofa line (listSofas), and one product's full fabric/finish/size configurator read in full (getSofaConfiguration): the site's own computed price for its default build plus every alternative option and its own price contribution.

Domain: eq3.com

Also known as: EQ3

Call it directly

bowmark.providers.eq3.listSofas(): Promise<Eq3SofaListing[]>
bowmark.providers.eq3.getSofaConfiguration(args: { instanceId: string; categorySlug: string; subcategorySlug: string; productLineSlug: string; productSlug: string }): Promise<Eq3SofaConfiguration>

Functions

FunctionWhat it does
listSofasLists every sofa in EQ3's living/seating/sofas line with real regular and sale prices, straight off the site's own category listing.
getSofaConfigurationReads one sofa's full configurator: the site's own computed price (regular + sale) for its default build, plus every fabric/finish/size option the configurator offers with each item's own…

Types

interface Eq3SofaListing {
  instanceId: string;   // pass into getSofaConfiguration's instanceId
  name: string;
  regularPrice: number; // real listing price before the sitewide sale
  salePrice: number;    // real listing price after the sitewide sale, 0 when none running
  isCustomMade: boolean;
  coloursAvailable: boolean;
  optionsAvailable: boolean;
  thumbnailUrl: string | null;
  categorySlug: string;
  subcategorySlug: string;
  productLineSlug: string;
  productSlug: string;
  productUrl: string;
}

interface Eq3OptionItem {
  id: string;
  alias: string;
  price: number | null; // null when this item is structural (its price lives on ITS OWN nested groups)
}

interface Eq3OptionGroup {
  component: string; // e.g. "Seat Depth", "Core", "Arm Style"
  items: Eq3OptionItem[];
}

interface Eq3SofaConfiguration {
  instanceId: string;
  name: string;
  regularPrice: number;   // the site's own computed price for this default build
  sellingPrice: number;
  discountPercent: number | null; // e.g. 20 — null when no sale is running
  massPounds: number | null;
  availability: string;
  canonicalUrl: string;
  optionGroups: Eq3OptionGroup[]; // every alternative the configurator offers
}