Bowmark AIdocs

Solo Stove

Solo Stove's bundle-builder check flow — search bundles by what a shopper would type (e.g. "pizza bundle"), then check one bundle's own product id (fire…

Solo Stove's bundle-builder check flow — search bundles by what a shopper would type (e.g. "pizza bundle"), then check one bundle's own product id (fire pit + accessories, e.g. the Dream Backyard Bundle) for its combined price and whether the exact combination is orderable right now, broken down per component so a caller can see WHICH piece is out of stock when it is not.

Domain: solostove.com

Also known as: Solo Stove, SoloStove

Call it directly

bowmark.providers.solostove.listBundles(query: string): Promise<SolostoveBundleSearch>
bowmark.providers.solostove.checkBundle(args: { bundleId: string }): Promise<SolostoveBundleCheck>

Functions

FunctionWhat it does
listBundlesSearches Solo Stove's own storefront search for BUNDLE products (fire pit + accessories sold as one combination) by what a shopper would type, e.g. "pizza bundle" or "Dream Backyard".…
checkBundleChecks one Solo Stove bundle (fire pit + accessories, e.g. the Dream Backyard Bundle) by its own product id — the +-joined component SKUs from the bundle's product page URL, or a bundleId…

Types

interface SolostoveBundleSummary {
  bundleId: string;
  name: string;
  price: number;
  currency: string;
  orderable: boolean;
}
interface SolostoveBundleSearch {
  query: string;
  bundles: SolostoveBundleSummary[];
  total: number;
}
interface SolostoveBundleComponent {
  sku: string;
  name: string;
  price: number;
  quantity: number;
  orderable: boolean;
  availableToSell: number;
}
interface SolostoveBundleCheck {
  bundleId: string;
  name: string;
  price: number;
  currency: string;
  orderable: boolean;       // false when even ONE component is out of stock
  components: SolostoveBundleComponent[]; // empty for a non-bundle product
}

Examples

// find a bundle by what a shopper would say, then check if it's buildable right now
const found = await bowmark.providers.solostove.listBundles("pizza bundle");
const bundleId = found.bundles[0]?.bundleId;
const check = await bowmark.providers.solostove.checkBundle({ bundleId });
log(`${check.name}: $${check.price} — ${check.orderable ? "orderable" : "NOT orderable"}`);
if (!check.orderable) {
  const broken = check.components.filter(c => !c.orderable).map(c => c.name);
  log(`blocked by: ${broken.join(", ")}`);
}