Bowmark AIdocs

KUIU

KUIU's live hunting-apparel catalogue — every product, its camo-pattern/color and size variants, real prices and stock — plus the storefront's own Find…

KUIU's live hunting-apparel catalogue — every product, its camo-pattern/color and size variants, real prices and stock — plus the storefront's own Find Your Fit men's size chart and a live-validated checkout handoff link.

Domain: kuiu.com

Also known as: kuiu, KUIU, KUIU Ultralight Hunting

Call it directly

bowmark.providers.kuiu.listKuiuProducts(opts?: { limit?: number }): Promise<KuiuProduct[]>
bowmark.providers.kuiu.getKuiuProduct(handle: string): Promise<KuiuProduct>
bowmark.providers.kuiu.findKuiuSize(measurements: { chest: number; waist: number }): Promise<KuiuSizeMatch>
bowmark.providers.kuiu.getKuiuCheckoutLink(handle: string, variantTitleOrOptions: string, opts?: { quantity?: number }): Promise<KuiuCheckoutLink>

Functions

FunctionWhat it does
listKuiuProductsReads the live KUIU catalogue as the storefront publishes it — every product, its handle, title, vendor, description, tags, images and the per-variant price/stock the storefront is quoting…
getKuiuProductReads one product by its handle — every camo-pattern/color and size variant, its exact price and whether that specific variant is purchasable right now.
findKuiuSizeMaps chest and waist measurements (inches) to KUIU's own published men's apparel size, reading the storefront's live Find Your Fit chart.
getKuiuCheckoutLinkResolves a product handle + a variant match (either the exact variant title like "Vias / M", or a substring of it) to a real Shopify cart-permalink URL, validated live against the…

Types

interface KuiuVariant {
  /** Shopify's numeric variant id as a string. */
  id: string;
  /** The variant's own label, e.g. "Vias / M". */
  title: string;
  /** String verbatim from the storefront — "129.00" (dollars) on /products.json, "12900" (cents) on /products/<handle>.js. */
  price: string;
  /** Same scale as price. Null when the variant is not on sale. */
  compareAtPrice: string | null;
  sku: string | null;
  /** Whether the variant is purchasable right now. */
  available: boolean;
  /** e.g. ["Vias", "M"] — camo pattern/color + size. */
  options: string[];
}
interface KuiuProduct {
  /** The handle is the only stable identifier across the catalogue. */
  handle: string;
  title: string;
  vendor: string;
  productType: string;
  url: string;
  descriptionHtml: string | null;
  optionNames: string[];
  variants: KuiuVariant[];
  priceRange: { min: string; max: string } | null;
  /** True if ANY variant is purchasable. */
  inStock: boolean;
  tags: string[];
  images: string[];
}
interface KuiuSizeMatch {
  /** The chart size that matched both chest and waist, e.g. "M". Null on no match. */
  size: string | null;
  chestRange: string | null;
  waistRange: string | null;
  armLengthRange: string | null;
  /** The size the CHEST measurement alone points to. */
  chestMatch: string | null;
  /** The size the WAIST measurement alone points to. */
  waistMatch: string | null;
  /** Populated when chest and waist disagree, or neither matched. */
  warnings: string[];
}
interface KuiuCheckoutLink {
  /** Shopify's own cart-permalink URL — a GET that adds the line item and redirects into the cart. */
  url: string;
  variant: KuiuVariant;
  product: KuiuProduct;
}

Examples

// what's my size, and is it in stock?
const size = await bowmark.providers.kuiu.findKuiuSize({ chest: 39, waist: 32 });
log(size.size ? `You're a ${size.size}` : `No single chart row fits — chest says ${size.chestMatch}, waist says ${size.waistMatch}`);
// cheapest in-stock KUIU pieces right now
const all = await bowmark.providers.kuiu.listKuiuProducts({ limit: 50 });
const inStock = all.filter(p => p.inStock).sort((a, b) => Number(a.priceRange?.min ?? 0) - Number(b.priceRange?.min ?? 0));
log(inStock.slice(0, 5).map(p => `${p.title} from $${p.priceRange?.min}`).join(", "));