This document explains where rich snippets (also known as "microdata" or "structured data") are rendered in AspDotNetStorefront and what data drives them. It's broken down by file. Each file that renders rich snippets has its own entry. Several of the files call other files, so the rich snippets are often nested.
Views\ShoppingCart\_KitSummary.cshtml
The price attributes are rendered if none of the following are true:
The kit product's HidePriceUntilCart field is 1
The HideKitPrice AppConfig is true
The kit's BasePrice is zero
The currency is from .Net's RegionInfo.ISOCurrencySymbol, which is derived from the DefaultLocale AppConfig for the requesting store or, if the AppConfig is empty, the system.web/globalization/culture attribute in the web.config.
Attribute
Source
price
The kit's BasePrice
priceCurrency
Currency (see above)
XmlPackages\page.kitheader.xml.config
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
gtin8
The product's GTIN field
GTIN is 8 numeric digits
gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
gtin14
The product's GTIN field
GTIN is 14 numeric digits
mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
sku
The product's SKU field concatenated with the variant's SkuSuffix field
The concatenated value is not empty
productID
The product's ProductID field
The product's ProductID field is greater than zero
image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
manufacturer/name
The Name field of the product's manufacturer in the requesting customer's locale
The manufacturer's Name field in the requesting customer's locale is not empty
manufacturer/url
The absolute URL for the product manufacturer's entity page
The product has a mapped manufacturer and the manufacturer's SEName field is not empty.
url
The absolute URL for the product's page
name
The product's Name field in the locale of the requesting customer
description
The product's Description field in the locale of the requesting customer
The product's Description field in the locale of the requesting customer is not empty
XmlPackages\product.SimpleProduct.xml.config
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
gtin8
The product's GTIN field
GTIN is 8 numeric digits
gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
gtin14
The product's GTIN field
GTIN is 14 numeric digits
mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
weight/value
The product's Weight field
The product's Weight field is a number
weight/unitText
The Localization.WeightUnits AppConfig
The product's Weight field is a number
itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
sku
The product's SKU field concatenated with the variant's SkuSuffix field
The concatenated value is not empty
productID
The product's ProductID field
The product's ProductID field is greater than zero
image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
manufacturer/name
The Name field of the product's manufacturer in the requesting customer's locale
The manufacturer's Name field in the requesting customer's locale is not empty
manufacturer/url
The absolute URL for the product manufacturer's entity page
The product has a mapped manufacturer and the manufacturer's SEName field is not empty.
url
The absolute URL for the product's page
name
The product's Name field in the locale of the requesting customer
offers/availability
The inventory logic in AppLogic.ProbablyOutOfStock()
The product's CustomerEntersPrice field is 0 and the inventory logic returns a non-empty string
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
offers/itemOffered/weight/value
The product's Weight field, rounded to two decimal places
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/weight/unitText
The Localization.WeightUnits AppConfig
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/sku
The product's SKU field concatenated with the variant's SkuSuffix field
The concatenated value is not empty
offers/itemOffered/productID
The product's ProductID field
The product's ProductID field is greater than zero
offers/itemOffered/name
The product's Name field for the requesting customer's locale concatenated with the variant's Name field for the requesting customer's locale, separated by a space.
Both the product's and variant's name fields for the requesting customer's locale are not empty
offers/itemOffered/mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
offers/itemOffered/itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
offers/itemOffered/image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
offers/itemOffered/gtin8
The product's GTIN field
GTIN is 8 numeric digits
offers/itemOffered/gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
offers/itemOffered/gtin14
The product's GTIN field
GTIN is 14 numeric digits
offers/itemOffered/width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/availability
The inventory logic in AppLogic.ProbablyOutOfStock()
Called with nonzero sProductID and sVariantID and the inventory logic returns a non-empty string
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
offers/itemOffered/weight/value
The product's Weight field, rounded to two decimal places
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/weight/unitText
The Localization.WeightUnits AppConfig
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/sku
The product's SKU field concatenated with the variant's SkuSuffix field
The concatenated value is not empty
offers/itemOffered/productID
The product's ProductID field
The product's ProductID field is greater than zero
offers/itemOffered/name
The product's Name field for the requesting customer's locale concatenated with the variant's Name field for the requesting customer's locale, separated by a space.
Both the product's and variant's name fields for the requesting customer's locale are not empty
offers/itemOffered/mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
offers/itemOffered/itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
offers/itemOffered/image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
offers/itemOffered/gtin8
The product's GTIN field
GTIN is 8 numeric digits
offers/itemOffered/gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
offers/itemOffered/gtin14
The product's GTIN field
GTIN is 14 numeric digits
offers/itemOffered/width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/availability
The inventory logic in AppLogic.ProbablyOutOfStock()
Called with nonzero sProductID and sVariantID and the inventory logic returns a non-empty string
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
offers/availability
The inventory logic in AppLogic.ProbablyOutOfStock()
Called with nonzero sProductID and sVariantID and the inventory logic returns a non-empty string
offers/itemOffered/weight/value
The product's Weight field, rounded to two decimal places
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/weight/unitText
The Localization.WeightUnits AppConfig
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/sku
The product's SKU field concatenated with the variant's SkuSuffix field
The concatenated value is not empty
offers/itemOffered/productID
The product's ProductID field
The product's ProductID field is greater than zero
offers/itemOffered/name
The product's Name field for the requesting customer's locale concatenated with the variant's Name field for the requesting customer's locale, separated by a space.
Both the product's and variant's name fields for the requesting customer's locale are not empty
offers/itemOffered/mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
offers/itemOffered/itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
offers/itemOffered/image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
offers/itemOffered/gtin8
The product's GTIN field
GTIN is 8 numeric digits
offers/itemOffered/gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
offers/itemOffered/gtin14
The product's GTIN field
GTIN is 14 numeric digits
offers/itemOffered/description
The variant's Description field in the requestion customer's locale
The variant's Description field in the requestion customer's locale is not empty
offers/itemOffered/width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
offers/availability
The inventory logic in AppLogic.ProbablyOutOfStock()
Called with nonzero sProductID and sVariantID and the inventory logic returns a non-empty string
offers/itemOffered/weight/value
The product's Weight field, rounded to two decimal places
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/weight/unitText
The Localization.WeightUnits AppConfig
The product's Weight field is a number and the Localization.WeightUnits AppConfig is not empty
offers/itemOffered/sku
The product's SKU field concatenated with the variant's SkuSuffix field
The concatenated value is not empty
offers/itemOffered/productID
The product's ProductID field
The product's ProductID field is greater than zero
offers/itemOffered/name
The product's Name field for the requesting customer's locale concatenated with the variant's Name field for the requesting customer's locale, separated by a space.
Both the product's and variant's name fields for the requesting customer's locale are not empty
offers/itemOffered/mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
offers/itemOffered/itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
offers/itemOffered/image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
offers/itemOffered/gtin8
The product's GTIN field
GTIN is 8 numeric digits
offers/itemOffered/gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
offers/itemOffered/gtin14
The product's GTIN field
GTIN is 14 numeric digits
offers/itemOffered/description
The variant's Description field in the requestion customer's locale
The variant's Description field in the requestion customer's locale is not empty
offers/itemOffered/width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
offers/itemOffered/depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
isSimilarTo/gtin8
The product's GTIN field
GTIN is 8 numeric digits
isSimilarTo/gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
isSimilarTo/gtin14
The product's GTIN field
GTIN is 14 numeric digits
isSimilarTo/mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
isSimilarTo/width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
isSimilarTo/width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
isSimilarTo/height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
isSimilarTo/height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
isSimilarTo/depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
isSimilarTo/depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
isSimilarTo/weight/value
The product's Weight field
The product's Weight field is a number
isSimilarTo/weight/unitText
The Localization.WeightUnits AppConfig
The product's Weight field is a number
isSimilarTo/itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
isSimilarTo/sku
The product's SKU field for the requesting customer's locale concatenated with the variant's SkuSuffix field
The concatenated value is not empty
isSimilarTo/productID
The product's ProductID field
The product's ProductID field is greater than zero
isSimilarTo/image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
isSimilarTo/manufacturer/name
The Name field of the product's manufacturer in the requesting customer's locale
The manufacturer's Name field in the requesting customer's locale is not empty
isSimilarTo/manufacturer/url
The absolute URL for the product manufacturer's entity page
The product has a mapped manufacturer and the manufacturer's SEName field is not empty.
isSimilarTo/name
The product's Name field in the locale of the requesting customer
The product's Name field in the locale of the requesting customer is not empty
isSimilarTo/description
The product's Description field in the locale of the requesting customer
The product's Description field in the locale of the requesting customer is not empty
isSimilarTo/url
The absolute URL for the product's page
XmlPackages\upsellproducts.xml.config
The three GTIN attributes are mutually exclusive; only none or one can be rendered.
Attribute
Source
Condition
isRelatedTo/gtin8
The product's GTIN field
GTIN is 8 numeric digits
isRelatedTo/gtin13
The product's GTIN field, prepended with a zero if the GTIN is only 12 digits
GTIN is 12 or 13 numeric digits
isRelatedTo/gtin14
The product's GTIN field
GTIN is 14 numeric digits
isRelatedTo/mpn
The product's ManufacturerPartNumber field concatenated with the variant's ManufacturerPartNumber field
The concatenated value is not empty
isRelatedTo/width/value
The first number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
isRelatedTo/width/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
isRelatedTo/height/value
The second number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
isRelatedTo/height/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
isRelatedTo/depth/value
The third number in the product's Dimensions field
The product's Dimensions field is in the format WxHxD
isRelatedTo/depth/unitText
The Localization.DimensionUnits AppConfig
The product's Dimensions field is in the format WxHxD
isRelatedTo/weight/value
The product's Weight field
The product's Weight field is a number
isRelatedTo/weight/unitText
The Localization.WeightUnits AppConfig
The product's Weight field is a number
isRelatedTo/itemCondition
The product's Condition field converted into NewCondition, UsedCondition, or RefurbishedCondition
The product's Condition field is a number
isRelatedTo/sku
The product's SKU field for the requesting customer's locale concatenated with the variant's SkuSuffix field
The concatenated value is not empty
isRelatedTo/productID
The product's ProductID field
The product's ProductID field is greater than zero
isRelatedTo/image
The absolute URL for the product's large image
The product has a large image correctly configured and the image file has an extension
isRelatedTo/manufacturer/name
The Name field of the product's manufacturer in the requesting customer's locale
The manufacturer's Name field in the requesting customer's locale is not empty
isRelatedTo/manufacturer/url
The absolute URL for the product manufacturer's entity page
The product has a mapped manufacturer and the manufacturer's SEName field is not empty.
isRelatedTo/name
The product's Name field in the locale of the requesting customer
The product's Name field in the locale of the requesting customer is not empty
isRelatedTo/description
The product's Description field in the locale of the requesting customer
The product's Description field in the locale of the requesting customer is not empty
isRelatedTo/url
The absolute URL for the product's page
Prices.GetUpsellVariantPrice()
Offering attributes are rendered when the method is called with the sHidePriceUntilCart parameter set to false and the calculated price is more than zero.
The calculated price is determined by the passed in sPrice, sSalePrice, and sExtPrice parameters; the passed in decUpSelldiscountPct parameter; VAT configuration and the passed in sTaxClassID parameter; and the requesting customer's customer level discount.
The currency is from .Net's RegionInfo.ISOCurrencySymbol, which is derived from the DefaultLocale AppConfig for the requesting store or, if the AppConfig is empty, the system.web/globalization/culture attribute in the web.config.
Attribute
Source
Condition
offers/price
Calculated price (see above)
offers/priceCurrency
Currency (see above)
offers/availability
The inventory logic in AppLogic.ProbablyOutOfStock()
Called with nonzero sProductID and sVariantID and the inventory logic returns a non-empty string
Ratings.Display()
Aggregate Ratings
Aggregate rating attributes are rendered if the reviewed product has one or more ratings in the requesting store (regardless of any store filtering configuration).
Attribute
Source
aggregateRating/ratingValue
The average of the Reviews table's Rating fields to three decimal places for the reviewed product in the requesting store
aggregateRating/reviewCount
The count of Reviews table rows for the reviewed product in the requesting store
aggregateRating/bestRating
Constant 5
aggregateRating/worstRating
Constant 1
Individual Ratings
Individual rating attributes are rendered for each Rating table row where the rating has a comment, is published, is not deleted, and it not flagged as "filthy".
Attribute
Source
review/datePublished
Rating table's CreatedOn field
review/itemReviewed
Product table's Name field for the reviewed product in the requesting customer's locale.
review/author
The Customer table's FirstName field for the customer who wrote the review, or the ratings.cs.14 string resource if FirstName is empty.
review/reviewRating/bestRating
Constant 5
review/reviewRating/worstRating
Constant 1
review/reviewRating/ratingValue
Rating table's Rating field
review/reviewBody
Rating table's Comments field
XSLTExtensionBase.GetVariantPrice()
The price attributes are rendered if none of the following are true:
sHidePriceUntilCart parameter is true
The WholesaleSiteOnly AppConfig is true and the requesting customer is either not assigned to a customer level or is assigned to the default customer level.
The calculated price is zero
The calculated price is determined by the passed in sPrice, sSalePrice, sExtPrice, and sChosenAttributesPriceDelta parameters; VAT configuration and the passed in sTaxClassID parameter; and the requesting customer's customer level discount.
The currency is from .Net's RegionInfo.ISOCurrencySymbol, which is derived from the DefaultLocale AppConfig for the requesting store or, if the AppConfig is empty, the system.web/globalization/culture attribute in the web.config.