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
| Function | What it does |
|---|---|
listCultureFlyBoxes | Reads 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) —… |
getCultureFlyBoxOptions | Reads 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… |
buildCultureFlyCheckoutLink | Resolves 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");