b2KIT

Product Schema Builder

Generate Product schema markup with price, availability, reviews, and brand data. Export valid JSON-LD for e-commerce pages.

Tested tool guide Tested browser tools Checked August 16, 2026

What Product Schema Builder does, with a checked example

Builds the schema.org Product JSON-LD block that e-commerce pages use to describe a product to search engines. You enter the product details - name, image, price, availability, reviews, brand - and the tool returns valid JSON-LD you paste into your page. The part people get wrong: the markup is only as good as the page behind it. Every value must match what the page visibly shows, and Google, not the tool, decides whether a rich result actually appears. Generating correct JSON-LD is the easy half; keeping it accurate and deployed is the job.

Worked example

A concrete input and expected output from the current implementation.

Input

Name: Aurora Desk Lamp; Image: https://example.com/images/aurora-desk-lamp.jpg; Description: Adjustable LED desk lamp with 5 color temperatures and a USB-C charging port; SKU: AUR-LAMP-200; Brand: Aurora Home; Price: 49.99 USD; Availability: InStock; Rating: 4.6 from 128 reviews; Product URL: https://example.com/products/aurora-desk-lamp

Expected output

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Aurora Desk Lamp",
  "image": "https://example.com/images/aurora-desk-lamp.jpg",
  "description": "Adjustable LED desk lamp with 5 color temperatures and a USB-C charging port.",
  "sku": "AUR-LAMP-200",
  "brand": { "@type": "Brand", "name": "Aurora Home" },
  "url": "https://example.com/products/aurora-desk-lamp",
  "offers": {
    "@type": "Offer",
    "price": "49.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "128"
  }
}

Each value lands where Google's documentation expects it: price and currency nested in the Offer, rating and review count in aggregateRating, availability as a schema.org enum URL. Price and ratingValue are serialized as strings, the form Google's examples use.

How the result is produced

1

Field-to-property mapping

Each form field maps to a schema.org Product property. Name, image, description, sku, and brand sit at the top level; price, priceCurrency, availability, and itemCondition nest inside an Offer block; ratingValue and reviewCount nest inside aggregateRating. Availability and condition are emitted as full schema.org enum URLs, such as https://schema.org/InStock, and prices serialize as strings, which is how Google's documentation recommends representing them.

2

Validation and export

Before exporting, the tool checks the object against the fields Google lists as required for Product markup - name, an image, price, and availability - and flags values it cannot use, such as an availability term outside the standard enum. The finished JSON-LD is then exported twice: wrapped in a script tag ready to paste into the page, and as bare JSON for template systems that inject it themselves.

Good uses

  • Adding Product markup to a new product page on a store that has no structured data yet, before the page goes live.
  • Regenerating the block when a price changes or an item restocks, so the schema and the page do not drift apart.
  • Replacing legacy microdata or data-vocabulary.org markup with JSON-LD during a store template overhaul.

Limits and checks

  • No guarantee of rich results. Google decides which pages get a price or star display, so a valid block on a weak page may change nothing. The tool verifies the JSON, not the outcome.
  • Unverified against the page. If the markup price differs from the price shoppers see, or the rating counts reviews that are not visible on the page, you are in breach of Google's structured data guidelines and risk a manual action.
  • Availability is a snapshot. An InStock value emitted today goes stale the moment stock changes; Google may keep showing the outdated state. Rebuild the block from your inventory data, not by hand, and switch out-of-stock items to OutOfStock.

Common questions

Where do I put the exported snippet?

In the product page's HTML. Googlebot reads JSON-LD from the head or body, so either works; paste it where your template renders that product so it updates automatically. The tool only produces the snippet - it cannot publish it to your site - and it runs entirely in your browser, so nothing you type is uploaded.

Will this get me star ratings in search results?

Not by itself. Stars need aggregateRating backed by reviews visitors can actually read on the page, and even then Google may decline to show them. If the page has no visible reviews, leave the reviews section empty rather than entering a rating you cannot support.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools