Academy

Product Cards: Source-Controlled Commerce Blocks

Build product cards from a trusted SKU source so images, names, prices, availability, and CTAs stay accurate for buyers, search engines, and AI agents.

14 min read

A product card turns a product mention into a complete, actionable commerce unit: a product image, official name, current price, and a call to action (CTA), meaning the link or button that advances the purchase journey. Its most important rule is invisible to the reader: the writer places the card by stock keeping unit (SKU), the catalog identifier for a sellable product or variant, while the product source supplies the values.

Product image from catalog

SKU TRAIL-BOOT-042

North Ridge Waterproof Hiking Boot

USD 149.00 · In stock

View product

The example renders the relationship, not an authored offer. In production, every visible value after the SKU comes from the approved product source. A catalog update changes every card that references that SKU without asking writers to find and edit old articles.

Why this element matters

Readers evaluating products need to answer four questions quickly: What is it? What does it look like? What does it cost? What can I do next? A product name buried in prose makes them reconstruct those answers across a page. A bounded card reduces that effort while keeping the commercial interruption proportional to the recommendation.

The card also establishes trust through consistency. When an article says “USD 149” but the product page says “USD 169,” the discrepancy is not a small editorial defect; it makes the reader question the recommendation, promotion, and checkout. A source-controlled card prevents the article from becoming an independent price database. It can also reflect stock state, variant identity, and destination changes as the catalog changes.

Machine extractability means a crawler, shopping agent, feed, or content migration tool can preserve which image, name, price, availability state, and action belong to which product. Proximity alone is weak. If three images sit above three prices in visually aligned columns, a machine may still associate them incorrectly. One card should expose a single product entity keyed by SKU, with its facts inside one semantic container and its destination linked unambiguously.

The element is not merely a styled affiliate link. The element writing rules take precedence: choose the component by its purpose. When a block presents one purchasable product with identity, price, and action, use a product card even if a designer could imitate it with an image, heading, and button. A typed component provides source binding, validation, accessibility behavior, and structured-data hooks that loose markup cannot guarantee.

When to use it

Use a product card when the reader has enough context to evaluate a specific product and a direct product action is useful. Common cases include a recommended item in a buying guide, products in a category introduction, an accessory on a product page, or each shortlisted option after comparison criteria have been explained.

The product must be identifiable by one valid SKU in the approved source. If the name refers to a family with several independently priced variants, resolve the article’s recommendation to a specific variant or use a product-family treatment whose CTA asks the reader to choose a variant. Do not silently display the cheapest variant as though it were the price of every configuration.

Near misses are easy to spot once purpose is explicit:

  • A sentence naming a product as an example does not need a card unless price and action help the reader at that moment.
  • A collection of plans with different billing terms needs a price table, not a row of product cards.
  • A ranked list still needs editorial reasoning around each item. Cards cannot replace selection criteria, evidence, tradeoffs, or the explanation of who each product suits.
  • A promotion with eligibility, expiry, and coupon conditions needs a dedicated offer treatment. The card may display the source-controlled active price, but it must not contain a miniature terms page.
  • A comparison of specifications belongs in a comparison or specification table. Repeating full cards in every comparison cell creates visual noise and weakens relationships.
  • A service without a SKU and catalog record is not a product card merely because it has a price and button.

Do not add a card simply to monetize an informational mention. If the reader has not encountered a need, criterion, or recommendation that explains why the product belongs, the card will feel like an interruption and a machine will receive an entity without useful context.

Logo

Ready to Monitor Your AI Visibility?

Track how AI chatbots mention your brand across ChatGPT, Perplexity, and other platforms.

Where to place it

Position exists to connect the product with the reasoning that selected it. Place the card immediately after the paragraph, subheading, or verdict that identifies the product and explains its fit. A reader should encounter the reason before the action, not a sales control before the evidence.

When a section includes both products and non-product solutions, products come before home remedies, do-it-yourself methods, and other alternatives. This order keeps commerce items in one predictable group, gives their catalog data a clean boundary, and prevents a household method from appearing to be another SKU. Introduce the criteria, show the relevant product card or cards, then open a clearly labelled alternatives section.

Exact placement rules:

ContextPositionReason
Single recommendationAfter the verdict and one-sentence fit explanationThe reader understands why the action is present.
Ranked product listAfter each product’s heading and concise evidence, before detailed caveatsIdentity and action remain attached to the recommendation without replacing analysis.
Category introductionAfter the category criteria or filter explanationThe card supports a defined choice instead of becoming an unexplained listing.
Product detail pageAfter the value proposition and decisive variant contextThe primary product is established before price and action are requested.
Products plus home remediesAll qualifying product cards first; remedies and alternatives afterward under a new headingCatalog entities remain separate from non-product actions.

Do not place a card before the page’s direct answer, inside a paragraph, between a claim and its evidence, or inside a numbered instruction. Do not sit it beside a conflicting price, a second CTA for the same destination, a countdown timer, a testimonial that appears to endorse that exact SKU without evidence, or a home-remedy box. Avoid adjacent duplicate cards for the same SKU; link later references back to the canonical placement instead.

Anatomy

The anatomy has four required visible regions and one source key:

  1. Product image: the primary catalog image for the referenced SKU, with source-managed alternative text that identifies the product and relevant visible variant.
  2. Product name: the official customer-facing name, linked or paired with the canonical product destination.
  3. Price: the current amount and ISO currency code, or a truthful source state such as “Price unavailable.” A sale price retains its regular-price relationship.
  4. CTA: a specific action such as “View North Ridge boot” or “Add North Ridge boot to cart,” selected from the allowed action for that product and channel.
  5. SKU: the stable lookup key. It may remain visually subdued or hidden from shoppers, but it must exist in the component data and diagnostics.

Availability is conditional visually but required in source data. Show “Out of stock,” “Preorder,” or another meaningful state when it changes what the CTA can do. Badges, ratings, shipping notes, and variants are optional extensions; none may crowd out the required four regions or be authored as unverifiable claims.

Design examples

Every variant uses the same source contract. Variants change layout and emphasis, never ownership of product facts.

Standard vertical card: the default for one to four products. It works in article columns and stacks predictably on narrow screens.

Compact horizontal card: use in long lists where image recognition matters but vertical space is limited. The CTA follows the price in reading order even when CSS places it at the edge.

Featured recommendation: use once when editorial reasoning has identified a clear fit. “Best for wet trails” is authored context outside the source-controlled product name; “best overall” requires stated criteria and evidence.

Unavailable state: preserve identity when temporary unavailability is useful to the reader, but replace the purchase action with the source-approved next step. A discontinued product should normally be replaced editorially rather than promoted as an empty card.

Parameters

The interface deliberately gives authors little control. Limiting authored inputs prevents copy from overriding the catalog. “Source” below identifies where the renderer obtains each value.

Product-card interface parameters
NameTypeRequiredMin/maxDefaultSource
skuPlain stringYes1 exact catalog identifier; 1–64 charactersNoneAttribute supplied by writer
placementEnum: standard, compact, featuredNoOne valuestandardAttribute supplied by writer
context-labelPlain stringNo2–6 words; 50 charactersAbsentFirst heading in body; editorial context only
namePlain stringYes1 catalog value; display clamp set by design systemNoneProduct source by SKU
imageAsset recordYes1 primary imageNoneProduct source by SKU
image-altPlain stringYes5–25 wordsNoneProduct source image metadata
priceDecimal or explicit unavailable stateYes0 or greater; one current valueNoneProduct source by SKU
currencyISO 4217 codeRequired for monetary priceExactly 3 lettersMarket currencyProduct source and active market
availabilityControlled enumYesOne source stateNoneInventory or product source by SKU
urlAbsolute or root-relative URLYes1 canonical destinationNoneProduct source by SKU and market
cta-labelPlain stringYes2–6 wordsView productSource-approved action mapped from availability

The body is empty except for an optional first heading that becomes editorial context, such as “Best for wet trails.” It must never contain a second name, handwritten price, replacement image URL, availability claim, or destination. If the source record is incomplete, fix the source or block publication.

Product-card syntax and code examples

All three formats carry the same authored instruction: place the product identified by this SKU here. They do not serialize the product’s current values into the article.

Portable Markdown directive

:::product-card{sku="TRAIL-BOOT-042" placement=featured}
### Best for wet trails
:::

Hugo shortcode

{{< product-card sku="TRAIL-BOOT-042" placement="featured" >}}
Best for wet trails
{{< /product-card >}}

The Hugo notation documents the target adapter contract. It must resolve the SKU through the site’s approved product data layer rather than accept product values as shortcode parameters.

WordPress

[product_card sku="TRAIL-BOOT-042" placement="featured"]
Best for wet trails
[/product_card]

A WordPress implementation should use a dynamic server-rendered block or registered shortcode backed by the same product source. Saving a static copy of the product name and price into post content defeats the contract.

Good and bad examples

Good: placement carries the recommendation; the source carries the offer

For steep, wet routes, prioritize a waterproof membrane, an outsole designed for mud, and secure heel retention. The North Ridge model meets those stated criteria without being the lightest option.

:::product-card{sku="TRAIL-BOOT-042" placement=featured}

This works because the prose explains fit and tradeoff before the product action. The directive identifies one SKU, so the renderer can retrieve a current image, official name, market price, availability, and URL as one product entity.

Bad: commercial values are copied into the article

Best waterproof boot — North Ridge, only $129!
Image: /uploads/north-ridge-final-v2.jpg
Buy now

This fails because the price, image, name treatment, and URL are handwritten. The amount may be stale or use the wrong market; “only” adds an unsupported value judgment; the fragment URL cannot reach a product; and the image is disconnected from catalog metadata. There is no SKU, availability state, currency code, or machine-stable grouping. The fix is not to complete the prose card. Replace it with a source-bound directive and keep only the editorial fit explanation outside it.

Schema markup and accessibility

A resolved card can feed Product and Offer structured data when the page, product, and visible facts qualify under the site’s schema policy. The SKU can map to sku; the official name and image can map to name and image; a genuine offer can supply price, priceCurrency, availability, and url. The server must generate visible content and structured output from the same resolved record so they cannot disagree.

Do not emit an Offer with a guessed price, use zero for an unavailable amount, or mark an item in stock because the CTA says “View product.” If several cards describe the same SKU, schema should not create contradictory duplicate entities. Connect or deduplicate them through one stable product identity.

Accessibility begins with document relationships. Wrap each card in an article or equivalent labelled group, make the product name a logical heading, and associate the CTA’s accessible name with that product. “View product” repeated six times is ambiguous in a link list; “View North Ridge Waterproof Hiking Boot” remains useful without visual context.

Alternative text should describe the product and meaningful visible variant, not repeat price or write “image of.” Decorative secondary images use empty alternative text. Do not communicate availability, sale state, or recommendation only through color, strikethrough, badge shape, or icon. Keyboard focus must follow reading order, and the whole card must not become one giant link when it also contains a distinct button or variant control.

Writing rules

The card stays concise because its job is identity and action, not persuasion. Each rule protects either source integrity or reader comprehension:

  • One SKU prevents mixed identities. Each card resolves exactly one SKU. Do not combine an image from one variant with the price of another.
  • Source ownership prevents stale commerce claims. Writers supply placement and, optionally, a two-to-six-word context label. They never type the name, image path, price, currency, availability, URL, or CTA into the card.
  • Editorial context explains fit. A featured label may state a defensible use case such as “Best for small kitchens.” Keep it to 50 characters and support it in nearby prose.
  • Current price needs complete context. The renderer shows an ISO currency code and handles regular versus sale price from the product source. Never add “cheap,” “only,” or savings language unless a separate verified claim supports it.
  • One action reduces ambiguity. Use one primary CTA, mapped to availability. Do not add newsletter capture, coupon entry, share controls, or competing retailer links inside the canonical card.
  • Compact boundaries aid extraction. The visible card contains one image, one official name, one price state, one availability state when material, and one CTA. Long descriptions, test results, pros and cons, and legal terms remain in adjacent elements.
  • Products precede non-products. When home remedies or other non-product alternatives share a section, show relevant product cards first, then begin a separate alternatives subsection.

Tone is factual and calm. The surrounding prose may recommend, compare, or warn, but the source-controlled fields remain neutral. Never place a testimonial, unsupported superlative, countdown, hidden affiliate disclosure, prescription, dosage instruction, warranty interpretation, or return-policy summary inside the card. Those claims require their own evidence, ownership, and update behavior.

Post types that use it

The postTypes frontmatter array is the canonical relationship. The table explains the role of the card in each listed specification.

Post typeRequirementProduct-card role
Product pageConditionalShow a compatible accessory, bundle component, or variant after its relationship to the primary product is explained.
Category pageCore for curated productsTurn category criteria and filters into source-current product choices without copying catalog data into body content.
Buying guideCore when named products are recommendedPlace a card after the fit explanation for each shortlisted product.
Best X for Y pageCoreBind each evidence-supported recommendation to a current product identity and action.
Alternatives to X pageConditionalUse for purchasable alternatives after the reason for switching and audience fit are established.
Comparison pageConditionalUse after the shared-criteria verdict, not inside the comparison matrix or in place of evidence.
Review pageConditionalGive the reviewed SKU a current action after the review discloses method, fit, and limitations.

QA checklist

  • Does the block’s purpose match a product card under the precedence rule?
  • Does the directive contain one valid SKU and no authored product values?
  • Does the resolved SKU identify the intended market and exact variant?
  • Do image, name, price, currency, availability, URL, and CTA come from approved sources?
  • Does the visible price match the destination and any structured data at render time?
  • Does a sale state include a valid regular-price relationship and source-controlled active period?
  • Is an unavailable product labelled truthfully with an appropriate non-purchase action?
  • Does nearby prose explain why the product fits before the card asks for action?
  • Are products placed before home remedies, do-it-yourself methods, and non-product alternatives?
  • Is the card separated from conflicting prices, countdowns, testimonials, and duplicate CTAs?
  • Does the product name create a clear heading or accessible label for the card?
  • Does the CTA’s accessible name identify its product when links are read out of context?
  • Does alternative text describe the meaningful product and variant without duplicating nearby copy?
  • Are recommendation, price, availability, and sale state expressed in text rather than color alone?
  • Does keyboard order follow image, name, price, availability, and action logically?
  • Is schema emitted only for an eligible resolved product, with no guessed or contradictory offer values?
  • Does a missing or discontinued SKU fail safely according to catalog policy rather than render a blank or invented card?
  • Has the page avoided duplicate cards for the same SKU and kept editorial claims outside source-controlled fields?

A product card is ready only when a reader and a machine can identify the same product, current commercial state, and next action. If an author must maintain any of those facts in article prose, the source contract has been broken.

← All Academy tutorials

Ready to put it into practice?

Free check · 7-day trial · no credit card