Does dawn's product schema involve "Free delivery" or "free shipping" to be shown in rich snippets?

Topic summary

A user asked whether Dawn theme’s default schema code displays “free delivery” information in Google rich snippets. The preview suggested it doesn’t.

Current State:

  • Dawn theme (and most Shopify themes) do not include ShippingDetails or free delivery info in their default JSON-LD schema markup by default.

Solution Provided:
A Shopify expert confirmed the absence and provided a code solution:

  • Manually add structured data to the product template (main-product.liquid for Dawn 7.0+, or product-template.liquid for older versions)
  • Insert a JSON-LD schema block that includes:
    • shippingDetails object with OfferShippingDetails type
    • Shipping rate set to “0.00” to indicate free delivery
    • Destination country specification (example shows “AU”)
    • Delivery time estimates (handling and transit times)

Additional Options:
The expert offered to help customize the code to show free shipping conditionally (only for eligible products or specific countries).

Summarized with AI on October 29. AI used: claude-sonnet-4-5-20250929.

Hi,

Wondering if dawn theme’s default schema code shows displays that you have free delivery.

From the preview it doesn’t show so I’m guessing it doesn’t at this point. Does anyone know what code to add to enable this?

Thanks and regards.

Hey @environmentalPa ,

You’re right—Shopify’s Dawn theme (and most other themes) do not include ShippingDetails or any “free delivery” info in their default JSON-LD schema markup, which is what Google uses for rich search results.

To show that you offer free delivery, you can manually add structured data to your theme’s product.liquid or main-product.liquid template (depending on Dawn version).

Here’s how to add the shipping schema (with Free Delivery):

Add the following inside block that already exists in your product template, or create a new one:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "{{ product.title | escape }}",
  "image": [
    "{{ product.featured_image | image_url: width: 800 }}"
  ],
  "description": "{{ product.description | strip_html | escape }}",
  "sku": "{{ product.selected_or_first_available_variant.sku }}",
  "offers": {
    "@type": "Offer",
    "priceCurrency": "{{ cart.currency.iso_code }}",
    "price": "{{ product.selected_or_first_available_variant.price | money_without_currency | replace: ',', '' }}",
    "availability": "https://schema.org/{% if product.available %}InStock{% else %}OutOfStock{% endif %}",
    "url": "{{ shop.url }}{{ product.url }}",
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingRate": {
        "@type": "MonetaryAmount",
        "value": "0.00",
        "currency": "{{ cart.currency.iso_code }}"
      },
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "AU"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "handlingTime": {
          "@type": "QuantitativeValue",
          "minValue": 0,
          "maxValue": 1,
          "unitCode": "d"
        },
        "transitTime": {
          "@type": "QuantitativeValue",
          "minValue": 2,
          "maxValue": 5,
          "unitCode": "d"
        }
      }
    }
  }
}

Where to place it in Dawn:

  • Dawn 7.0+: Go to main-product.liquid inside sections/.

  • Older Dawn (v4 or below): Use product-template.liquid.

Let me know if you’d like this to appear conditionally (only if the product has free shipping), or for specific countries, and I can help tweak it!

Best,

Rajat

Shopify Expert

https://rajatweb.dev/