← All checks
shipping_machine

Machine-readable shipping information

Why it matters Filters like “free shipping” or “arrives tomorrow” read this field; if it’s empty the store doesn’t appear in them.

Category
Policies and trust
Weight
4 of 100 points
Critical blocker
No. If it fails, it only costs its own weight.
Applies to
Online stores
Effort
2-4 hours · developer
Score model
v2.4

How we measure it

We look for machine-readable shipping details (OfferShippingDetails or ShippingService) in the offer or at Organization level and count four fields: shipping cost (shippingRate), delivery region (shippingDestination), handling time (handlingTime) and transit time (transitTime); the times may sit under deliveryTime or shippingConditions. All four pass; a definition with missing fields is a partial pass (one missing 0.75, two 0.6, more 0.5 points); no definition fails.

What the result page says

These are the sentences in the test result; “…” is replaced by what we found on your site.

  • PassedShipping cost, delivery region, handling and transit times are defined in structured data (on the offer or the organization).
  • PartialShipping information is in structured data but incomplete: …. An agent can’t work out the total cost or the delivery date.
  • FailedShipping time and cost aren’t in structured data, so agents can’t compare your delivery terms.

How to fix it

Target: Shipping rate, handling and transit times are defined with OfferShippingDetails.

Example code

"shippingDetails": {
  "@type": "OfferShippingDetails",
  "shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "USD" },
  "shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" },
  "deliveryTime": {
    "@type": "ShippingDeliveryTime",
    "handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
    "transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY" }
  }
}

Example values (example.com, product name, price) are placeholders; replace them with your own.

How to verify it yourself

The Rich Results Test should show shipping details. Note: Merchant Center shipping settings may take precedence on Google.

Fix it with an AI coding agent

Paste this into Claude Code, Cursor or another coding agent working on your store’s code. Review the change before you deploy it.

You are working on my online store. Specoria’s agent readiness test checks the item below. Fix it so AI shopping agents can read the store and act on it.

## 1. Machine-readable shipping information (shipping_machine)
Target: Shipping rate, handling and transit times are defined with OfferShippingDetails.
Example fix (adapt it to this codebase and platform; example values are placeholders):
```
"shippingDetails": {
  "@type": "OfferShippingDetails",
  "shippingRate": { "@type": "MonetaryAmount", "value": "0", "currency": "USD" },
  "shippingDestination": { "@type": "DefinedRegion", "addressCountry": "US" },
  "deliveryTime": {
    "@type": "ShippingDeliveryTime",
    "handlingTime": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 1, "unitCode": "DAY" },
    "transitTime": { "@type": "QuantitativeValue", "minValue": 1, "maxValue": 3, "unitCode": "DAY" }
  }
}
```
Reference: https://specoria.com/method/checks/shipping-machine/

## Rules
- First look through the codebase and tell me which files or templates you will change, before editing anything.
- Change only what these checks need, and keep the visible page and the structured data saying the same thing.
- Never invent prices, stock, shipping or return terms, reviews or product identifiers (GTIN): take them from the store’s real data or ask me.
- Don’t block or slow down real visitors and don’t add tracking.
- After deploying, run the free test again at https://specoria.com/ to verify the fix.

Specifications and guidance

The check is based on these open sources; links go to the publisher’s own pages.

Where it sits in the 196-criteria framework

The result of this check counts as evidence for these items of the readiness framework:

  • 2.4 OfferShippingDetails is machine-readable

The framework and its source →

Run the free test See the sample report →