Vinyle OSM Symphonie n 5
Orchestre symphonique de Montreal
Artist-merchandise product card — square product image, h3 title, optional artist line, pre-formatted price and an add-to-cart CTA pinned to the card bottom. Static display organism (Family 7 Commerce, sibling of PackageCard/SideCard): price is a pre-formatted string and the button copy switches FR/EN via locale.
components/organisms/merchcard/MerchCard.tsxCarte produit marchandise (vinyle, t-shirt, affiche). FR-CA : « Ajouter au panier ».
Organism - Commerce family (Family 7)
Carte 1:1 image carree, titre, artiste optionnel, prix et bouton Ajouter au panier.
Orchestre symphonique de Montreal
Editions ePassLive
Atelier Saint-Henri
This component supports light and dark mode.
id*stringIdentifiant unique du produit.
title*stringTitre du produit.
artiststringArtiste ou createur.
price*stringPrix formate.
imageUrl*stringURL image 1:1.
imageAlt*stringTexte alternatif (WCAG 1.1.1).
locale"fr" | "en"Bascule le libellé du bouton (fr par défaut : « Ajouter au panier » / en : « Add to cart »).
classNamestringClasses additionnelles sur la racine (ex. max-w-xs).
idstring—Unique per-card id; anchors the aria-labelledby wiring (merch-${id} on the article and the h3 title). Must be unique per rendered card on the page.
titlestring—Product title, rendered as the h3 heading that labels the article.
artiststring—Optional artist/maker attribution line under the title (muted). Omit to hide.
pricestring—Pre-formatted price string (e.g. « 35,00 $ ») rendered verbatim in tabular-nums — the organism does no currency formatting.
imageUrlstring—Square product image source URL (rendered aspect-square, loading=lazy).
imageAltstring—Image alt text — describe the product, not « image of » (WCAG 1.1.1).
locale"fr" | "en"'fr'Switches the add-to-cart button label (fr « Ajouter au panier » / en « Add to cart »).
classNamestring—Extra classes appended to the root article (layout sizing, e.g. max-w-xs).
<MerchCard />import { MerchCard } from "@epasslive/design-system"<MerchCard id="tee-osheaga" title="T-shirt Osheaga 2026" artist="Osheaga" price="35,00 $" imageUrl="/img/tee.jpg" imageAlt="T-shirt noir avec le logo Osheaga 2026" /><MerchCard {...props} locale="en" className="max-w-xs" />— Do not expect onAddToCart/maxQty callbacks or a quantity selector — the item/onAddToCart/maxQty API was a franken-catalog artifact, never implemented (removed from catalog + docs 2026-09-14)
— Do not pass raw numbers to price — pre-formatted strings only, the caller owns currency formatting
— Do not reuse the same id across cards on one page — merch-${id} anchors aria-labelledby wiring and DOM ids must be unique