Boll & Branch
Boll & Branch's Virtual Bed Designer, read for real — the bundle configurator's own category steps, live product/price/color options and swatch…
Boll & Branch's Virtual Bed Designer, read for real — the bundle configurator's own category steps, live product/price/color options and swatch references, off the embedded widget vendor's own undocumented API.
Domain: bollandbranch.com
Also known as: Boll & Branch, Boll and Branch, bollandbranch
Call it directly
bowmark.providers.bollandbranch.getBedDesignerFlow(): Promise<BedDesignerFlow>
bowmark.providers.bollandbranch.getCategoryOptions(category: string): Promise<BollAndBranchProduct[]>
bowmark.providers.bollandbranch.getSwatchDetails(names: string[]): Promise<BollAndBranchSwatch[]>Functions
| Function | What it does |
|---|---|
getBedDesignerFlow | Reads the Virtual Bed Designer's own configurator definition — its ordered category steps (sheet set, comforter/duvet, bed blanket, throw blanket, decorative pillow) — straight off the… |
getCategoryOptions | Lists the real, currently-sellable products for one Designer category (matched by keyword against the site's own productType, e.g. "Choose Your Sheet Set" -> Sheet Sets) with live price… |
getSwatchDetails | Resolves color/fabric names (as offered by getCategoryOptions) to their hex value or reference swatch image. |
Types
interface BedDesignerStep {
title: string;
category: string;
}
interface BedDesignerFlow {
name: string;
steps: BedDesignerStep[];
}
interface BollAndBranchOption {
value: string;
inStock: boolean;
}
interface BollAndBranchProduct {
title: string;
handle: string;
productType: string;
priceRange: { min: number; max: number };
sizes: BollAndBranchOption[];
colors: BollAndBranchOption[];
hasAnyInStock: boolean;
}
interface BollAndBranchSwatch {
name: string;
hex: string | null;
imageUrl: string | null;
}Examples
// what does the Virtual Bed Designer ask a shopper to pick, in order?
const flow = await bowmark.providers.bollandbranch.getBedDesignerFlow();
log(flow.steps.map(s => s.title).join(" -> "));// what sheet sets can I choose, with real current prices and colors?
const sheets = await bowmark.providers.bollandbranch.getCategoryOptions("Choose Your Sheet Set");
log(sheets.map(p => `${p.title}: $${p.priceRange.min}-${p.priceRange.max}, colors: ${p.colors.map(c => c.value).join(", ")}`).join("\n"));