XooCode(){

DeliveryChargeSpecification

DeliveryChargeSpecification is a PriceSpecification subtype for shipping-fee rules. It lets you answer "how much does it cost to ship this, via which method, to which region, for which order subtotal?" entirely in structured data.

It adds 2 direct properties: appliesToDeliveryMethod (a DeliveryMethod enumeration value such as ParcelService, DeliveryModeDirectDownload, or OnSitePickup) and areaServed (GeoShape, AdministrativeArea, or Place). It inherits the full PriceSpecification property set: price, priceCurrency, minPrice, maxPrice, eligibleTransactionVolume (order-subtotal threshold), and valueAddedTaxIncluded.

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

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

Highlight legend:Required by GoogleRecommendedOptional
schema.org/DeliveryChargeSpecification
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Offer",
  "itemOffered": { "@type": "Product", "name": "XooTee Classic" },
  "price": 22.00,
  "priceCurrency": "USD",
  "shippingDetails": [
    {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "DeliveryChargeSpecification",
        "price": 4.99,
        "priceCurrency": "USD",
        "appliesToDeliveryMethod": "https://schema.org/ParcelService",
        "areaServed": { "@type": "Country", "name": "United States", "identifier": "US" }
      }
    },
    {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "DeliveryChargeSpecification",
        "price": 0.00,
        "priceCurrency": "USD",
        "appliesToDeliveryMethod": "https://schema.org/ParcelService",
        "areaServed": { "@type": "Country", "name": "United States", "identifier": "US" },
        "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": 50, "priceCurrency": "USD" }
      }
    },
    {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "DeliveryChargeSpecification",
        "price": 14.99,
        "priceCurrency": "USD",
        "appliesToDeliveryMethod": "https://schema.org/ParcelService",
        "areaServed": { "@type": "Country", "name": "United States", "identifier": "US" }
      }
    }
  ]
}
</script>

Typical rule set

Most stores publish three or four DeliveryChargeSpecification blocks per Offer: one for domestic standard shipping, one for expedited, one for free-shipping-over-threshold (eligibleTransactionVolume.minPrice), one for international. Each block is its own specification, and each carries its own areaServed and appliesToDeliveryMethod.

Minimal valid version

The smallest markup that still produces a valid DeliveryChargeSpecification 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/DeliveryChargeSpecification (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "DeliveryChargeSpecification",
  "price": 4.99,
  "priceCurrency": "USD",
  "appliesToDeliveryMethod": "https://schema.org/ParcelService",
  "areaServed": { "@type": "Country", "name": "United States" }
}
</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 DeliveryChargeSpecification 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

    areaServed as plain text

    Wrong
    "areaServed": "United States"
    Right
    areaServed as a Country / AdministrativeArea / GeoShape node

    Google's shipping rich result parses structured areaServed. A string is accepted but not indexed as a shipping zone.

  2. 02

    appliesToDeliveryMethod as free text

    Wrong
    "appliesToDeliveryMethod": "standard"
    Right
    A DeliveryMethod enumeration URL such as https://schema.org/ParcelService

    The property is enumeration-valued; free text will not match Google's shipping rules.

  3. 03

    Free-shipping threshold as a single price

    Wrong
    DeliveryChargeSpecification with price 0 for every order
    Right
    Use eligibleTransactionVolume with minPrice to scope the free-shipping rule to orders over a threshold

    eligibleTransactionVolume is the mechanism that says 'this rule only applies over $X'.

Also mentioned in 2 other examples

DeliveryChargeSpecification also appears in DeliveryMethod, and ShippingRateSettings. See the full DeliveryChargeSpecification schema page for every reference.

About the example data

XooTee Classic shipping rules: $4.99 US standard parcel shipping, free US standard shipping over $50, $14.99 US expedited.

Comments

Loading comments...

Leave a comment