Bowmark AIdocs

CultureFly

CultureFly's licensed pop-culture subscription boxes — the live catalogue, every box's real size + cadence (One-Time/Quarterly/Annual) options and price,…

CultureFly's licensed pop-culture subscription boxes — the live catalogue, every box's real size + cadence (One-Time/Quarterly/Annual) options and price, and a ready checkout handoff link for a chosen size and cadence — read off the storefront's own Shopify catalogue and its own subscription-cadence widget.

Domain: culturefly.com

Also known as: CultureFly, culturefly, culturefly.com

Call it directly

bowmark.providers.culturefly.listCultureFlyBoxes(): Promise<CultureFlyBoxSummary[]>
bowmark.providers.culturefly.getCultureFlyBoxOptions(handle: string): Promise<CultureFlyBoxOptions>
bowmark.providers.culturefly.buildCultureFlyCheckoutLink(handle: string, size: string, cadence: string): Promise<CultureFlyCheckoutLink>

Functions

FunctionWhat it does
listCultureFlyBoxesReads the live CultureFly catalogue for the licensed subscription-box product lines currently on sale (Star Wars, Pusheen, Friends, Supernatural, and any others the storefront adds) —…
getCultureFlyBoxOptionsReads one box's full configure surface — every size, every cadence (One-Time/Quarterly/Annual) and the real price for each combination, plus the underlying variant + selling-plan ids the…
buildCultureFlyCheckoutLinkResolves a chosen size + cadence against getCultureFlyBoxOptions and returns the exact checkout handoff URL for that selection, one step from payment.

Types

interface CultureFlyBoxSummary {
  handle: string;
  title: string;
  vendor: string;
  /** CultureFly's own tags, verbatim — includes "Collector Box" (the filter). */
  tags: string[];
  /** The storefront's own hero image, or null when the product has none. */
  image: string | null;
}
interface CultureFlySize {
  /** The apparel size label the widget renders (e.g. "S", "XL", "3XL"). */
  size: string;
  /** The Shopify variant id this size resolves to FOR THIS CADENCE. */
  variantId: string;
  /** Dollar-and-cents string for this size at this cadence, e.g. "120.00". */
  price: string;
}
interface CultureFlyCadence {
  /** "One-Time" | "Quarterly" | "Annual" — CultureFly's own widget labels. */
  cadence: string;
  /** The Shopify product id backing this cadence (a distinct product per cadence). */
  productId: string;
  /** Null for the one-time (non-subscription) cadence. */
  sellingPlanId: string | null;
  sizes: CultureFlySize[];
}
interface CultureFlyBoxOptions {
  title: string;
  cadences: CultureFlyCadence[];
}
interface CultureFlyCheckoutLink {
  handle: string;
  size: string;
  cadence: string;
  /** The exact per-size, per-cadence price the storefront is quoting. */
  price: string;
  /** GET this URL to land straight on CultureFly's own checkout with the chosen size + cadence pre-selected. */
  checkoutUrl: string;
}

Examples

// what boxes does CultureFly sell right now?
const boxes = await bowmark.providers.culturefly.listCultureFlyBoxes();
log(boxes.map(b => b.title).join(", "));
// what does the Star Wars box cost on a quarterly cadence, in a Medium?
const opts = await bowmark.providers.culturefly.getCultureFlyBoxOptions("star-wars-collectors-box");
const quarterly = opts.cadences.find(c => c.cadence === "Quarterly");
const m = quarterly?.sizes.find(s => s.size === "M");
log(m ? `$${m.price} / quarter` : "size not offered on this cadence");