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
| Function | What it does |
|---|---|
listShapes | Lists every crystal shape ArtPix 3D currently sells (rectangle, heart, square, …), each with its own product page URL. |
getSizePricing | Runs 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");