XooCode(){

ShippingRateSettings

ShippingRateSettings publishes a named, reusable shipping-rate specification. Instead of embedding a MonetaryAmount or DeliveryChargeSpecification under every Offer, a merchant publishes one ShippingRateSettings block per carrier / service / region combination and references it by label from each Offer's OfferShippingDetails.

Full example of schema.org/ShippingRateSettings json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/ShippingRateSettings
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ShippingRateSettings",
  "@id": "https://xootee.example/shipping/us-standard",
  "shippingRate": {
    "@type": "MonetaryAmount",
    "value": 4.99,
    "currency": "USD"
  },
  "shippingDestination": {
    "@type": "DefinedRegion",
    "addressCountry": "US"
  },
  "freeShippingThreshold": {
    "@type": "DeliveryChargeSpecification",
    "price": 0,
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": 50.00,
      "priceCurrency": "USD"
    }
  },
  "isUnlabelledFallback": true
}
</script>

Direct properties (7)

  • shippingRate: flat MonetaryAmount fee, or a nested ShippingRateSettings (for tiered rates).
  • freeShippingThreshold: a DeliveryChargeSpecification or MonetaryAmount; the order subtotal at or above which shipping is free.
  • shippingDestination: one or more DefinedRegion targets.
  • doesNotShip: Boolean flag (destination excluded).
  • orderPercentage: shipping charged as a fraction of order value (0.10 = 10%).
  • weightPercentage: shipping charged proportional to weight.
  • isUnlabelledFallback: Boolean; this block is the fallback when no other ShippingRateSettings matches.

Free-shipping threshold

freeShippingThreshold is how Google reads "free shipping over $50". Supply a DeliveryChargeSpecification with eligibleTransactionVolume.minPrice (the subtotal gate) and a zero shippingRate. Order-percentage and weight-percentage rates combine additively inside a single ShippingRateSettings block.

Minimal valid version

The smallest markup that still produces a valid ShippingRateSettings entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/ShippingRateSettings (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ShippingRateSettings",
  "shippingRate": { "@type": "MonetaryAmount", "value": 4.99, "currency": "USD" },
  "shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

Common ShippingRateSettings mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    freeShippingThreshold as a number

    Wrong
    "freeShippingThreshold": 50
    Right
    DeliveryChargeSpecification (or MonetaryAmount) object

    Google expects the structured shape; a scalar is discarded.

  2. 02

    Multiple fallback blocks

    Wrong
    Two ShippingRateSettings both with isUnlabelledFallback: true
    Right
    Exactly one fallback per region + service combination

    Ambiguity causes Google to pick one arbitrarily or suppress all of them.

  3. 03

    orderPercentage as a percentage number

    Wrong
    "orderPercentage": 10
    Right
    "orderPercentage": 0.10

    Fraction, not percent. 10 means 1000%.

About the example data

XooTee merchandise shop: a single reusable US standard shipping rate — $4.99 flat, free over $50, 10% of order value above $500.

Comments

Loading comments...

Leave a comment