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
| Function | What it does |
|---|---|
listSofas | Lists every sofa in EQ3's living/seating/sofas line with real regular and sale prices, straight off the site's own category listing. |
getSofaConfiguration | Reads 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
}