No product data
Nothing a cart can read
The page sends no Product data before any script runs, so a shopping agent has nothing to buy from.
Shop Ready, on WordPress
7 product pages read, 6 with Product data, stating 5.5 of the 12 fields a cart reads on average. Read October 24, 2026.
Each field the store's products leave out, the most products first. One change to the store's product template fixes every product at once.
Some product pages send no Product data before any script runs, so a shopping agent has nothing to read. Write it into the product template.
State the price as a number, such as 68.00, never text with a symbol in it.
Give each product its barcode (GTIN), or at least its SKU, from the product itself.
Say each product is new, or how it is used or refurbished.
State what delivery costs, where it goes and how long it takes, once for the store or on each offer.
State the return policy: the window, the countries and who pays, once for the store.
State the currency as a three-letter code, such as USD.
Give each product a full image address, starting https://, not one starting //.
Give each product an offer: without one there is no price, currency or stock for a cart to read.
The fewest fields first. The price and stock on each listing are what its data states, not what the page shows.
Nothing a cart can read
The page sends no Product data before any script runs, so a shopping agent has nothing to buy from.
No price in the dataStock stated
See the product page| Name | Stated |
|---|---|
| Image | Missing |
| An offer | Wrong |
| Price | Missing |
| Currency | Missing |
| In stock or not | Stated |
| Brand | Stated |
| Product identifier | Missing |
| Description | Stated |
| Condition | Missing |
| Shipping | Missing |
| Returns | Missing |
No price in the dataStock stated
See the product page| Name | Stated |
|---|---|
| Image | Missing |
| An offer | Wrong |
| Price | Missing |
| Currency | Stated |
| In stock or not | Stated |
| Brand | Stated |
| Product identifier | Missing |
| Description | Stated |
| Condition | Missing |
| Shipping | Missing |
| Returns | Missing |
No price in the dataStock stated
See the product page| Name | Stated |
|---|---|
| Image | Stated |
| An offer | Stated |
| Price | Missing |
| Currency | Missing |
| In stock or not | Stated |
| Brand | Stated |
| Product identifier | Missing |
| Description | Stated |
| Condition | Missing |
| Shipping | Missing |
| Returns | Missing |
No price in the dataStock stated
See the product page| Name | Stated |
|---|---|
| Image | Stated |
| An offer | Stated |
| Price | Missing |
| Currency | Missing |
| In stock or not | Stated |
| Brand | Stated |
| Product identifier | Missing |
| Description | Stated |
| Condition | Missing |
| Shipping | Missing |
| Returns | Missing |
No price in the dataStock stated
See the product page| Name | Stated |
|---|---|
| Image | Stated |
| An offer | Stated |
| Price | Missing |
| Currency | Missing |
| In stock or not | Stated |
| Brand | Stated |
| Product identifier | Missing |
| Description | Stated |
| Condition | Missing |
| Shipping | Missing |
| Returns | Missing |
No price in the dataStock stated
See the product page| Name | Stated |
|---|---|
| Image | Stated |
| An offer | Stated |
| Price | Missing |
| Currency | Missing |
| In stock or not | Stated |
| Brand | Stated |
| Product identifier | Missing |
| Description | Stated |
| Condition | Missing |
| Shipping | Missing |
| Returns | Missing |
A count of fields says what a page's data states, read before any script runs. It does not decide eligibility: Merchant Center and Google's own review decide whether a product shows in merchant listings, Universal Cart or any other Google feature.
Every page of husseyseating.com against mttr's rulebook: 100 pages read.
The Shop Ready skill works in your store's own theme with Claude Code, Codex or Cursor, writes every field from the product's own data, and checks the live pages with mttr after. On Shopify, mttr can do it from the admin: that is in beta.