Chris-Craft
Chris-Craft's runabout 'Build Your Own' product builder — list every current model and boat type, read one build's full option tree (edition, engine,…
Chris-Craft's runabout 'Build Your Own' product builder — list every current model and boat type, read one build's full option tree (edition, engine, hull/stripe/vinyl colors, ~29 named accessories, cover, flooring and more, each choice's exact MSRP and discounted Your Price), and price a specific build against the site's own live pricing rather than a researched estimate.
Domain: chriscraft.com
Also known as: Chris-Craft, Chris Craft, chriscraft.com, Chris-Craft Corporation
Call it directly
bowmark.providers.chriscraft.searchModels(query?: string): Promise<ChriscraftModelSummary[]>
bowmark.providers.chriscraft.getConfigurator(modelId: string, boatType: ChriscraftBoatType): Promise<ChriscraftConfigurator>
bowmark.providers.chriscraft.priceConfiguration(modelId: string, boatType: ChriscraftBoatType, selections: Record<string, string | string[]>): Promise<ChriscraftPriceResult>Functions
| Function | What it does |
|---|---|
searchModels | Lists every current Chris-Craft model+boat-type combination from the public "Build Your Own" gallery — model id, boat type (STERNDRIVE/OUTBOARD/SURF), name and its build.chriscraft.com… |
getConfigurator | Reads one model+boat-type's whole builder: every option group (Edition Selection, Top Option, Engine Type, Hull Color, Stripe Color, Cockpit Vinyl colors, Contrast Stitching, Additional… |
priceConfiguration | Prices ONE specific build — selections keyed by option group (case-insensitive), a single choice name or, for a multi-select group like "Additional Options", an array of choice names, e.g.… |
Types
// Chris-Craft's OWN shapes — not a capability contract.
type ChriscraftBoatType = "STERNDRIVE" | "OUTBOARD" | "SURF";
interface ChriscraftModelSummary { modelId: string; boatType: ChriscraftBoatType; name: string; url: string }
interface ChriscraftOptionChoice {
id: string; // the site's own guid
name: string;
price: number; // MSRP delta, 0 for a no-charge default
priceFormatted: string;
discountPercentage: number;
yourPrice: number; // discounted price, ROUNDED per choice (matches the site's own display)
yourPriceFormatted: string;
isDefault: boolean; // true if the page loads with this choice already picked
}
interface ChriscraftOptionGroup {
category: string; // broader section, e.g. "Edition Selection", "Paint"
group: string; // the key priceConfiguration's selections are matched against
required: boolean; // true for a mandatory group (Edition Selection, Engine Type)
maxSelections: number | null; // 1 = single-select, null = unlimited multi-select (e.g. Additional Options)
choices: ChriscraftOptionChoice[];
}
interface ChriscraftConfigurator {
modelId: string;
boatType: ChriscraftBoatType;
name: string;
url: string;
groups: ChriscraftOptionGroup[];
}
interface ChriscraftPriceLine { group: string; choice: string; price: number; yourPrice: number }
interface ChriscraftPriceResult {
modelId: string;
boatType: ChriscraftBoatType;
msrpTotal: number;
msrpTotalFormatted: string;
yourPriceTotal: number;
yourPriceTotalFormatted: string;
breakdown: ChriscraftPriceLine[]; // one line per group — the caller's pick(s), or the site's own default
unmatched: string[]; // a caller selection that matched no real group/choice
unresolvedGroups: string[]; // a REQUIRED group with no pick and no default (e.g. Edition Selection, Engine Type) — totals are a FLOOR until these are picked
handoffUrl: string; // the model's own builder page — no shareable configured-state URL exists to build, and the aggregate total is behind a lead-capture form never submitted here
}Examples
// Price the exact build ANGLE found ChatGPT guessing at.
const priced = await bowmark.providers.chriscraft.priceConfiguration("10882", "STERNDRIVE", {
"Edition Selection": "Standard Edition",
"Engine Type": "Volvo V8 5.3L (300HP) DP FWC EVC",
"Top Option": "Bimini Top with Vertical Storage and Boot",
});
return { msrp: priced.msrpTotalFormatted, yourPrice: priced.yourPriceTotalFormatted, stillToPick: priced.unresolvedGroups, buildThisOn: priced.handoffUrl };// What models exist, and what does one's builder actually offer?
const models = await bowmark.providers.chriscraft.searchModels("sportster");
const cat = await bowmark.providers.chriscraft.getConfigurator(models[0].modelId, models[0].boatType);
const engines = cat.groups.find((g) => g.group === "Engine Type");
return { model: cat.name, boatType: cat.boatType, engineChoices: engines?.choices.map((c) => c.name) };