A

Policy

LOW

OfferShippingDetails deliveryTime is a valid ShippingDeliveryTime

When present, `deliveryTime` is a ShippingDeliveryTime with handlingTime and/or transitTime populated. Without populated handling/transit times, agents can't quote a delivery window in shopping cards.

What this check looks for

We require `deliveryTime` to be an object with at least one of `handlingTime` or `transitTime` populated as a QuantitativeValue (any of `value`, `minValue`, `maxValue` parseable as a finite number). The legacy v1 SD-014 check required BOTH; v2 softens this to either, matching Google's actual rich-result behavior.

Which AI surfaces it affects

  • Google AI Mode (UCP)90
  • Microsoft Copilot60
  • Meta AI50
  • ChatGPT (ACP)40
  • Perplexity30

Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.

How to fix it

Emit a ShippingDeliveryTime with handlingTime and/or transitTime populated

Shopify

Developer
  1. Settings → Shipping and delivery → Processing time: set handling time per location.
  2. Emit `handlingTime.maxValue` from this setting and `transitTime` from your carrier API in your theme's product JSON-LD.

BigCommerce

Developer
  1. Edit your product template to emit ShippingDeliveryTime with handlingTime and/or transitTime as QuantitativeValue blocks.

WooCommerce

Developer
  1. Yoast/AIOSEO's merchant-listings add-on emits ShippingDeliveryTime from your WooCommerce shipping-method config.
  2. If using a custom snippet, hook `woocommerce_structured_data_product`.

Custom / headless

Developer
  1. Emit ShippingDeliveryTime with at least one populated sub-time.
"deliveryTime": {
  "@type": "ShippingDeliveryTime",
  "handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
  "transitTime": { "@type": "QuantitativeValue", "minValue": 2, "maxValue": 5, "unitCode": "DAY" }
}

The spec it's pinned to

  • Google shipping-policy SD — deliveryTime as ShippingDeliveryTime

    Google's shipping-policy SD recognizes deliveryTime as a ShippingDeliveryTime object with handlingTime and/or transitTime populated. Either is enough; both is preferred.

schema.org/ShippingDeliveryTime

Does your store pass this check?

Run the full audit — 82 checks across five AI shopping surfaces. Most tools only check whether you get mentioned; we check whether an agent can buy from you.

Related policy checks

← All 82 checks