The I/O 2026 Plot Twist: Your Buy Button Is Gated by native_commerce, Not Schema
Clearing up the confusion first
Since the May 19 I/O keynote, the most common question landing in my inbox runs like this: I filled out every Product schema field I could find, offers, aggregateRating, availability, the lot, so why is my product still missing that in-platform Buy button?
The honest answer is uncomfortable but important. The Buy button has nothing to do with the Product schema on your page. Eligibility is gated by a feed attribute in Google Merchant Center called native_commerce. You can write the most beautiful structured data on the planet, but if that attribute is off, your SKU has no seat inside Universal Cart.
This is easy to get wrong because the last few years trained everyone in the opposite direction. Classic rich results genuinely did read structured data off the page, feeding price, rating, and stock straight into the search listing. So a lot of people quietly inferred the chain: more schema equals more Google trust equals a better shot at the shopping entry point. That inference held up well enough before I/O 2026. After it, the chain snapped.
Let me get ahead of the overcorrection now, because someone always swings too far: schema is not dead, and you should not delete a single field. There is a whole section below on what it does today. This is a role change, not a deprecation.
What native_commerce is and where to set it
native_commerce is an attribute on your product feed inside Merchant Center. In plain terms, it is you telling Google: I authorize you to sell this SKU directly in-platform, and I will keep price and stock synced in real time. Switch it on and the SKU enters the Universal Cart candidate pool. Leave it off and Google treats the product as display-only, visible but not buyable on its surfaces.
You set it at the feed layer in Merchant Center, right alongside GTIN, price, and availability. It does not live on your website page at all. That is the counterintuitive part: the switch that decides whether a product can be bought sits in a place that schema cannot reach. You could rewrite your page markup a thousand times and never touch this attribute.
Making the attribute actually work is not trivial, either. The feed data has to be complete (GTIN, price, stock, variants), and availability has to be real-time. A once-a-day sync cadence will get you filtered out the moment Google’s agent finds your stock data is wrong. So native_commerce is not a checkbox you flip and forget; it sits on top of a real-time data pipeline.
Here is the short version of where each thing lives and what it governs:
| Thing | Where it lives | What it controls |
|---|---|---|
native_commerce attribute | Merchant Center feed | Universal Cart Buy-button eligibility |
| Product schema | Your website page | Rich results display + AI answer citations |
So what does schema still earn you
This is the part I most want to land, because too many people read the section above and immediately think schema is now optional. The opposite is true.
First, schema still drives rich results in classic Search. Those listings with star ratings, price, and availability badges? Most existing schema types still feed that display. Strip your schema out and your search result collapses from a rich card back to a bare blue link, and click-through takes the hit instantly.
Second, and this now matters as much as the first point, schema helps your products get cited in AI answers. In AI Overviews and AI Mode, when the model assembles a response and decides which product to reference, structured data is the input it reads most cleanly. If your material, size, use case, and return policy sit tidily in schema, your odds of being cited beat a competitor who buried that information in prose.
So schema’s role shifted from key-to-the-checkout to ticket-to-being-found-and-quoted. The key job moved to native_commerce after I/O 2026. But being seen, being trusted, and being pulled into an AI answer is still schema’s work. Neither one replaces the other.
Put another way: native_commerce decides whether you can be bought, and schema decides whether you get seen and recommended. One owns the conversion path, the other owns the discovery path. You need both.
What to do, and what to stop worrying about
Once the split is clear, the action list writes itself. Start with the work that matters:
1. Turn on native_commerce and complete the feed. This is the only path to Buy eligibility. Priority fields: GTIN, availability, price, shipping, return_policy. Availability has to be real-time, not a 24-hour sync.
2. Make stock sync genuinely real-time. This is what keeps native_commerce working. If your stock data is off, Google’s agent drops your SKU after a single bad read.
3. Keep all your schema and feed the AI-readable fields. Move material, size, use case, rating, and return policy out of prose and into structured fields. The goal is no longer to win the checkout slot; it is to raise your odds of being cited in AI answers.
Now the things you can stop sweating:
Stop expecting schema volume to win Buy eligibility. That road closed after I/O 2026. Spending a week adding obscure schema types to your pages does nothing for that in-platform Buy button. Its switch is in Merchant Center, not your markup.
Do not delete schema just because you heard the roles changed. This is the easiest reverse trap. Strip your schema and your rich results and AI citations both drop together. Not worth it.
| Do this | Do not bother |
|---|---|
| Turn on native_commerce + complete feed | Stacking schema to win Buy eligibility |
| Real-time stock sync | Adding obscure schema types for the checkout slot |
| Feed all AI-readable schema fields | Deleting schema because the roles changed |
One line to remember
I/O 2026 did not retire schema. It moved the power to decide whether a product can be bought in-platform from your page markup to a feed attribute in Merchant Center. native_commerce owns conversion eligibility, schema owns discovery and citation, and the two do not overlap.
If you keep only one thing: for the Buy button, go to Merchant Center, set the attribute, complete the feed, run real-time stock. To be seen and cited by AI, keep your schema clean. Treat those as two separate jobs and you will stop asking why a fully marked-up page has no Buy button.
Related Articles
Translate Listings for Free by Stacking DeepL and Google Translate APIs
Stack DeepL API Free's 500K characters with Google Translation's 500K to get nearly 1 million free characters a month. Covers getting both keys, a language-routing script, the privacy caveat, and when a polish pass is worth it.
Bulk-Generate Listings for Free with the Gemini API Free Tier
The real value of the free tier is not the chat box. It is the no-cost API key. Wire it to a dozen-line script, throttle it to roughly ten calls a minute, leave it running overnight, and you wake up to thousands of draft listings at zero cost. This covers the plumbing, not the copy.