Borsheims
Reads Borsheims' live product catalog and composes a setting + diamond into a priced ring, straight off borsheims.com's own embedded product data — no…
Reads Borsheims' live product catalog and composes a setting + diamond into a priced ring, straight off borsheims.com's own embedded product data — no key, no browser.
Domain: borsheims.com
Also known as: Borsheims, borsheims.com
Call it directly
bowmark.providers.borsheims.searchProducts(query: string): Promise<BorsheimsSearchResult[]>
bowmark.providers.borsheims.getProduct(url: string): Promise<BorsheimsProduct>
bowmark.providers.borsheims.configureRing(args: ConfigureRingArgs): Promise<BorsheimsRingConfiguration>Functions
| Function | What it does |
|---|---|
searchProducts | Turns a free-text query into real borsheims.com product page URLs — the LOCATOR getProduct and configureRing need — by matching every query token against the site's own sitemap.xml (~16,000… |
getProduct | Reads one product's real, live price straight off its product page's own embedded data (mivaJS.product) — the same JSON the page's own components render from, including any active discount. |
configureRing | Composes a setting product page and a diamond/center-stone product page into a priced ring — setting.price + diamond.price — the same arithmetic the site's own ring builder performs, plus… |
Types
interface BorsheimsSearchResult {
name: string; // derived from the URL slug, title-cased
url: string; // pass to getProduct / configureRing
lastmod: string | null;
}
interface BorsheimsProduct {
code: string;
name: string;
basePrice: number; // dollars, before any discount
price: number; // dollars, the real selling price
discount: number | null;
inventoryAvailable: number;
imageUrl: string | null;
url: string; // pass to getProduct / configureRing
}
interface BorsheimsRingConfiguration {
setting: BorsheimsProduct;
diamond: BorsheimsProduct;
totalPrice: number; // dollars, setting.price + diamond.price
builderUrl: string; // the handoff — open this to configure/buy
}
interface ConfigureRingArgs {
settingUrl: string;
diamondUrl: string;
}