Bowmark AIdocs

Little Words Project

Little Words Project's choose-a-word bead bracelets — every product, its bead-pattern/color/size variants and real prices, PLUS the word personalizer's…

Little Words Project's choose-a-word bead bracelets — every product, its bead-pattern/color/size variants and real prices, PLUS the word personalizer's own length/character rule — read off the live Shopify storefront, plus a live-validated checkout handoff link carrying the word.

Domain: littlewordsproject.com

Also known as: Little Words Project, little words project, LWP, littlewordsproject.com, Little Words

Call it directly

bowmark.providers.littlewordsproject.listLittleWordsProjectCollections(opts?: { limit?: number }): Promise<LittleWordsProjectCollectionRow[]>
bowmark.providers.littlewordsproject.listLittleWordsProjectProducts(collectionHandle: string, opts?: { limit?: number }): Promise<LittleWordsProjectCatalogueRow[]>
bowmark.providers.littlewordsproject.getLittleWordsProjectProduct(handle: string): Promise<LittleWordsProjectProduct>
bowmark.providers.littlewordsproject.getLittleWordsProjectCheckoutLink(handle: string, selections: { options?: Record<string, string>; word?: string }, opts?: { quantity?: number }): Promise<LittleWordsProjectCheckoutLink>

Functions

FunctionWhat it does
listLittleWordsProjectCollectionsThe entry door: reads the storefront's own published collection index — e.g. "Custom", "Best Sellers" — with each one's handle and product count, so a caller holding only what a shopper…
listLittleWordsProjectProductsReads a Little Words Project collection's live products — e.g. "custom", "best-sellers" — with handle, title, price range and stock.
getLittleWordsProjectProductReads one product by its handle — every bead-pattern/letter-color/size variant with live price and stock, plus (when the product has a word personalizer) its exact min/max character rule.
getLittleWordsProjectCheckoutLinkResolves a product handle + option choices (bead pattern / letter color / size, whichever the product offers) + personalized word to a real Shopify cart-permalink URL carrying the word as a…

Types

interface LittleWordsProjectOption {
  name: string;
  values: string[];
}
interface LittleWordsProjectVariant {
  id: string;
  title: string;
  /** Integer cents, verbatim from the storefront. */
  price: number;
  available: boolean;
  options: string[];
}
interface LittleWordsProjectPersonalization {
  minLength: number;
  maxLength: number;
  /** The site's own rule text, verbatim. */
  message: string;
  /** The cart line-item property key the word is submitted under. */
  propertyName: string;
}
interface LittleWordsProjectProduct {
  handle: string;
  title: string;
  vendor: string;
  url: string;
  optionNames: string[];
  options: LittleWordsProjectOption[];
  variants: LittleWordsProjectVariant[];
  inStock: boolean;
  images: string[];
  /** null on a product with no free-text word personalizer. */
  personalization: LittleWordsProjectPersonalization | null;
}
interface LittleWordsProjectCatalogueRow {
  handle: string;
  title: string;
  vendor: string;
  url: string;
  priceRange: { min: number; max: number } | null;
  inStock: boolean;
  images: string[];
}
interface LittleWordsProjectCollectionRow {
  handle: string;
  title: string;
  productsCount: number;
}
interface LittleWordsProjectCheckoutLink {
  url: string;
  variant: LittleWordsProjectVariant;
  product: LittleWordsProjectProduct;
}

Examples

// what does Little Words Project even sell — find a collection handle to search inside
const collections = await bowmark.providers.littlewordsproject.listLittleWordsProjectCollections();
log(collections.map(c => `${c.title} (${c.handle}): ${c.productsCount} items`).join(", "));
// what custom bracelets does Little Words Project sell, and what do they cost?
const rows = await bowmark.providers.littlewordsproject.listLittleWordsProjectProducts("custom", { limit: 20 });
log(rows.map(r => `${r.title}: $${(r.priceRange?.min ?? 0) / 100}`).join(", "));