Bowmark AIdocs

ArtPix 3D

Reads ArtPix 3D's own live product configurator — every crystal shape, and for a chosen shape, every size's real current price (with active sale…

Reads ArtPix 3D's own live product configurator — every crystal shape, and for a chosen shape, every size's real current price (with active sale discounts) and stock/best-seller labels — the way the site's own size-picker computes it, real-time.

Domain: artpix3d.com

Also known as: ArtPix 3D, artpix3d.com, ArtPix3D

Call it directly

bowmark.providers.artpix3d.listShapes(): Promise<Artpix3dShape[]>
bowmark.providers.artpix3d.getSizePricing(shape: string): Promise<Artpix3dProductPricing>

Functions

FunctionWhat it does
listShapesLists every crystal shape ArtPix 3D currently sells (rectangle, heart, square, …), each with its own product page URL.
getSizePricingRuns the site's own size/price computation for one shape: every size's real current sell price, list price, active discount, stock and best-seller status.

Types

// ArtPix 3D's OWN shapes — not a capability contract.

interface Artpix3dShape { slug: string; name: string; url: string }

interface Artpix3dSizePrice {
  size: string;                     // e.g. "Large"
  sellPrice: number | null;
  retailPrice: number | null;
  discountPercent: number | null;
  inStock: boolean;
  bestSeller: boolean;
  lowStockLabel: string | null;
}

interface Artpix3dProductPricing {
  shape: string;
  productName: string;
  sizes: Artpix3dSizePrice[];
  configureUrl: string;             // where a buyer picks a photo and checks out
}

Examples

// The query ChatGPT could only half-answer: a real, sale-adjusted price for
// a specific size, not a static list price off a search snippet.
const shapes = await bowmark.providers.artpix3d.listShapes();
const pricing = await bowmark.providers.artpix3d.getSizePricing(shapes[0].slug);
return pricing.sizes.find((s) => s.size === "Large");