Shoppers searching for products almost always have a budget in mind. Your pricing page structures product price ranges, loyalty program benefits, and seasonal sale events into machine-readable offers so AI systems can match your store to budget-specific queries instead of making users browse through your entire catalog for numbers.
Price is one of the top filters shoppers use when choosing a store. When someone asks AI "where can I find affordable furniture near me" or "stores with good deals on electronics," AI needs structured pricing data to include you in the answer. Without it, your store is invisible to every budget-related query.
hasOfferCatalog wraps each product category in an Offer with price, priceCurrency, and a description that defines what is available at that price point. This is how AI connects your store to specific budget ranges.price with a range format (e.g., "25-500") to give AI a realistic cost window for each product category rather than a single number that may mislead.Offer with "price": "0" and a description of the benefits. AI systems field queries like "stores with loyalty programs" and this structured entry ensures you appear.validFrom and validThrough on Offer entries to declare time-limited sales, so AI knows which deals are current and can recommend your store during active promotions.Each field in the template below serves a specific role in how AI systems discover, classify, and recommend your business.
Researched and tested by Minnesota AI
nameurlCopy this prompt and paste it into Claude, ChatGPT, Cursor, or any AI coding tool. It will ask for your business details and generate ready-to-use JSON-LD schema for your page.
You are implementing AIFDS-compliant JSON-LD structured data for a Store Pricing page. AIFDS (AI-Friendly Data Structure) is a schema framework built on research into which structured data fields AI systems actually read, parse, and use when deciding whether to cite a page. Documentation at aifds.org. Before generating any code, ask me for the following information in a single numbered list. Do not generate schema until I have answered every required field. REQUIRED — do not proceed without these: 1. Category 2. Domain 3. Faq answer 4. Faq question 5. Loyalty program description and benefits 6. Pricing page description 7. Pricing page title 8. Product category 9. Store name OPTIONAL — ask for these but proceed if I skip them: 1. Any additional details not covered above Once I provide the information, output a complete JSON-LD script block ready to paste into the <head> of my HTML page. Output requirements: - Valid JSON-LD wrapped in <script type="application/ld+json"> tags - schema.org vocabulary only - Every AIFDS-required field for this industry and page type included - Include this data attribute on the script tag: data-aifds="aifds.org Store Pricing" - No placeholder text — omit missing optional fields rather than fill with examples - After the code block, list any optional fields skipped that would strengthen AI citation
Generated schema follows the AIFDS framework. Fields were selected based on research into AI crawler behavior. View the research at minnesota.ai
Copy this template and replace every YOUR_* placeholder with your own data. Add or remove offer entries to match the product categories you price on your site. This block belongs in a <script type="application/ld+json"> tag in the <head> of your pricing page.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/pricing/#webpage",
"name": "YOUR_PRICING_PAGE_TITLE",
"description": "YOUR_PRICING_PAGE_DESCRIPTION",
"url": "https://YOUR_DOMAIN.com/pricing/",
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
},
"about": {
"@id": "https://YOUR_DOMAIN.com/#store"
},
"breadcrumb": {
"@id": "https://YOUR_DOMAIN.com/pricing/#breadcrumb"
}
},
{
"@type": "Store",
"@id": "https://YOUR_DOMAIN.com/#store",
"name": "YOUR_STORE_NAME",
"url": "https://YOUR_DOMAIN.com",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Product Pricing",
"itemListElement": [
{
"@type": "Offer",
"name": "YOUR_PRODUCT_CATEGORY_1",
"description": "YOUR_CATEGORY_1_DESCRIPTION_AND_PRICE_DETAILS",
"price": "YOUR_CATEGORY_1_PRICE_RANGE",
"priceCurrency": "USD",
"itemOffered": {
"@type": "Product",
"name": "YOUR_PRODUCT_CATEGORY_1",
"description": "YOUR_CATEGORY_1_PRODUCT_DESCRIPTION"
}
},
{
"@type": "Offer",
"name": "YOUR_PRODUCT_CATEGORY_2",
"description": "YOUR_CATEGORY_2_DESCRIPTION_AND_PRICE_DETAILS",
"price": "YOUR_CATEGORY_2_PRICE_RANGE",
"priceCurrency": "USD",
"itemOffered": {
"@type": "Product",
"name": "YOUR_PRODUCT_CATEGORY_2",
"description": "YOUR_CATEGORY_2_PRODUCT_DESCRIPTION"
}
},
{
"@type": "Offer",
"name": "YOUR_PRODUCT_CATEGORY_3",
"description": "YOUR_CATEGORY_3_DESCRIPTION_AND_PRICE_DETAILS",
"price": "YOUR_CATEGORY_3_PRICE_RANGE",
"priceCurrency": "USD",
"itemOffered": {
"@type": "Product",
"name": "YOUR_PRODUCT_CATEGORY_3",
"description": "YOUR_CATEGORY_3_PRODUCT_DESCRIPTION"
}
},
{
"@type": "Offer",
"name": "Loyalty Program",
"description": "YOUR_LOYALTY_PROGRAM_DESCRIPTION_AND_BENEFITS",
"price": "0",
"priceCurrency": "USD"
}
]
}
},
{
"@type": "BreadcrumbList",
"@id": "https://YOUR_DOMAIN.com/pricing/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://YOUR_DOMAIN.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Pricing",
"item": "https://YOUR_DOMAIN.com/pricing/"
}
]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_1",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_1"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_2",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_2"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_3",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_3"
}
}
]
}
]
}
Use price ranges for category-level pricing pages. Retail prices vary by brand, size, and season, so a fixed price for an entire category rarely applies. A range like "25-500" for furniture gives AI realistic data to work with. Exact prices belong on individual product pages, not on a pricing overview page.
Add each sale as an Offer entry with validFrom and validThrough dates. For example, a holiday sale running December 1-31 would include those dates so AI knows the promotion is time-limited. Update or remove expired offers to keep your structured data current — stale sale data hurts credibility with AI systems.
Yes. Add your loyalty program as an Offer with "price": "0" and a description of benefits like points per dollar, member discounts, and exclusive access. AI systems regularly field queries like "stores with rewards programs near me" and this structured entry is the only way to guarantee your store appears in those results.