E-commerce
August 19, 2026
This page aligns eighteen cards under one sentence: look up and compare prices between brands for the same product. This is not a ranking. This is not eighteen price comparators. Rufus compares in Amazon. Sparky in Walmart. Phia promises more than 40,000 sites: a line on a profile, not an audit. Amazon Buy for Me is in the filter, but its card labels search and checkout tunnel, not price comparison. A Klarna installment payment is not a price. No gross merchandise value (GMV), no accuracy rate, no GTIN matching rate. This article is no exception. It classifies what is needed for a price to be comparable, not logos.
Google Search Central documents Product markup: price, availability, reviews, shipping can appear in Search, Images, Lens results. Two families of markup (snippets and merchant listings). Google recommends on-page markup and a Merchant Center feed: some experiences mix both. A Knowledge shopping panel aligns sellers via product identifiers. Google Merchant Center specifies the price attribute as a mandatory field: amount plus ISO 4217 currency, example 15.00 USD, identical to the landing page and the checkout tunnel. Forbidden: "See price in cart", price changing based on IP address, shipping costs pasted into [price]. An agent that "compares" two CSVs that lie is comparing two lies. Pasting all eighteen into an "AI comparator" indicator means budgeting for Phia which you do not have, or a feed you already have.
If the idea of a software buyer is new: what agentic commerce is. The 2026 calendar: what has been delivered. The four filters: buying agents by task. The official totals remain human buying journeys: 2026 e-commerce statistics.
Summary
Comparing is four fields, not eighteen applications
Comparing a price isn't about opening eighteen applications. It's about aligning four fields. Without this, the filter is just theater.
Field | What Google requires on the merchant side | Without this field, the agent |
|---|---|---|
Identifier | Knowledge panel: list of sellers via product identifiers | Compares two SKUs that are not the same item |
Price and currency | [price]: number plus ISO 4217, parity between product page and checkout funnel | Adds up euros and dollars, or a defunct strikethrough price |
Availability | Availability in the markup and the feed | "Wins" with an out-of-stock item |
Shipping excluded | Do not include shipping in [price]; shipping attribute | Compares an ex-works price with a landed cost |
Speaking of brands in the plural makes sense. A price only exists in relation to another. Reading eighteen agents as eighteen multi-brand graphs, no. Rufus doesn't leave Amazon. Sparky doesn't leave Walmart. Shop primarily compares a Shopify universe. Daydream is an affiliate fashion graph. Four walled gardens. One word: "comparison".
"more than 40,000" (Phia), "more than 30,000" (Honey), "more than 10,000" (Daydream): boilerplate phrases. Amazon, Walmart, Revolve, Madewell, Target, Zara: directory examples, not sourced partnerships here.
A merchant who "chooses a comparison agent" like a health insurance comparison site has read the headline, not the maps. You don't install this page. You maintain a price, a currency, an identifier, a freshness. The agents then read it, or they don't.
Neighboring categories steal the word price: bargain hunting (coupons, Direct Offers), checkout funnel (where you pay), product search (specifications). A Honey code is not [price]. A checkout tunnel of the UCP is not a GTIN match.

Convert over 2,000 customers on average per month with Qstomy.
The world’s 1st Shopify AI dedicated to customer conversion



Empowering 200+ e-commerce merchants
The filter is not the label
Read the card labels, not just the filter. Buy for Me is on this page. Its card says all merchants, checkout, search. Not price comparison. It is an agent that checks out on your site after an Amazon checkout page, not a comparison engine.
Klarna carries the price label. It is a payment schedule. The Klarna "price" is a breakdown, not an offer. Honey and Karma carry price plus coupon: they apply a discount to your checkout, they do not build a seller Knowledge panel. Do not merge the three into a "comparison" cost per acquisition.
The "18" counter on the page-by-task is a filter. It will move. It does not tell you how many of your customers are actually comparing, nor on which identifier. A Verified listing does not buy a badge.
ChatGPT and Gemini carry the label. An all-merchant LLM compares what it extracts: markup, feed, or HTML. Three qualities. One word "price". Vocabulary (offer, identifier, feed): glossary of agentic commerce.
Product markup and Knowledge panel: the comparison that Google names
Google Search Central separates two markup roles. Product snippets: pages where people don't necessarily buy (reviews, pros and cons). Merchant listings: pages where people buy from you (size, shipping, returns). Providing merchant listing properties often makes you eligible for snippets. Both have their enhancements. It is not an agent. It is the pipeline that several Google agents (and others that index) read.
The documented experiences: snippets with ratings, price, availability; popular products; Knowledge panel with a list of sellers; annotated Images. A non-exhaustive list, says Google, and it changes. So: provide as much rich information as possible, without aiming for a specific badge. For a merchant, the Knowledge panel is the comparison of brands that Google knows how to name. Without an identifier, you don't get in. A Phia agent without a GTIN doesn't either, or else it invents the matching.
Enhancements: ratings, shipping (especially free) for the total cost, availability, returns. "Price drop": Google calculates this by observing changes over time. It is not guaranteed. You don't check a "price dropped" tag for an agent to shout it. You maintain a real [price] history.
Providing both (JSON-LD on the page and Merchant Center feed) maximizes eligibility and helps Google verify. Some experiences combine sources. Cited example: a snippet can take the price from the feed if it is missing from the markup. So an up-to-date feed and an outdated product sheet, or vice versa, is not "a small SEO gap". It is two prices for two readers. The detail of the fields: what a machine needs to compare.
The markup lives on the product page. A storefront that only displays the price in a script loses the customer who does not execute the JavaScript, agent or crawler: a Shopify storefront readable by an LLM. The three platform changes (catalog, robots, checkout): what platforms need to change.
The [price] attribute: parity, currency, what is prohibited
The [price] attribute is required for each product. Type: number plus ISO 4217 currency. Non-repeated field. Schema: Offer.priceSpecification. Example text: 15.00 USD. If the price per kilo matters, Google also points to unit_pricing_measure.
The golden rule, repeated: feed price = landing page = checkout funnel, visible target country currency. Otherwise, Merchant Center disapproval. An agent reading the feed and a human seeing the product page must find the same amount. If it's not true for Google, it's not true for Phia, Gemini, or Honey.
See price in cart: forbidden in the cited policies. A price that only exists in the cart is not comparable. An agent cannot align it with a neighbor.
Price based on IP address: forbidden. This also breaks the crawler. A cloud agent sees one rate, the French buyer another. Two comparisons, zero truth.
Coupons in [price]: only if the discount is available to everyone and clearly displayed on the product page. Otherwise: promotions, not the price field. Honey is not [price].
Member price: not in [price] or [sale_price]. loyalty_program attribute. An agent comparing the club rate and the public rate is comparing two offers.
Shipping: not in [price]. shipping attribute or Merchant Center settings. Service or handling fees: in shipping, not in the product price. State taxes: neither, according to the text.
Keep prices up to date. Google offers automatic updates via Schema.org on the landing page, upon indexing, in addition to regularly resubmitting the feed. This is not real-time. A one-hour flash sale with a daily feed is a scheduled lie. [sale_price] is used for scheduled promotions. Auctions and live exchange rates: do not submit.
More than two decimal places: automatic rounding (1.0234 to 1.02). Implementation detail. Useful if your PIM outputs four decimal places and the agent saw 1.02.
Enclosed garden against all trades
Four gardens under the same filter.
Rufus and Amazon: comparison in the Amazon catalog. You have to maintain the Seller Central listing, not a Magento JSON-LD. Waiting for Phia on a platform you don't control is the wrong target.
Sparky and Walmart: same, Walmart garden, including as an extension in other chats according to the directory. Your Walmart price is not your product sheet.
Shop and Shopify: Shopify universal cart. Comparing in Shop is not comparing the open web.
All merchants (Phia, Claude, Gemini, Genspark…): promise to break out of silos. Without an identifier and without parity, it is HTML indexing. Invented matching, real after-sales service.
Daydream in this category is fashion discovery plus a price tag. A style graph is not an ISO 4217 offer table. Amazon Buy for Me compares even less: it buys. Take it out of the "comparison engine" budget.
A pitch like "we will put you in AI comparison engines" can sell a GTIN, a Merchant Center feed, Offer markup, a theme, or a directory listing. Five deliverables. One word: "price".
After the comparison, the buyer clicks or delegates. The price may have changed. The dispute is yours. The breakdowns: where agentic commerce still breaks down.
What amount the agent read
The only financial question: what amount the agent read, and if it included shipping. The badge doesn't say.
Source read | Risk | What you align |
|---|---|---|
Merchant Center Feed | Disapproval if the amount differs from the product page or the checkout flow | [price], currency, freshness, no shipping included |
JSON-LD Product or Offer | Snippet that takes the feed if the markup is empty | Parity between markup, feed, and rendered page |
HTML, JPEG, or banner | Absent for a machine | Nothing. It is not a price |
Coupon, member, or IP | Outside [price] unless strict rules apply | loyalty_program, promotions, not a public offer |
Google calculates drops by observing history. An agent shouting "cheaper than last week" without this history is making things up. You can log your own changes. That is the only history you hold.
A comparator between sites without typed currency eliminates or mixes them up. ISO 4217 is not a Google Ads luxury. It is the condition so that 15 and 15 are not 15 USD and 15 EUR. The Merchant Center currency conversion displays a converted price in the ad, according to the help documentation, without requiring it on the product page. A third-party agent does not necessarily have this module. Do not assume they convert correctly.
If you judge "AI comparison" at the last click, Phia and a Google Knowledge Panel do not have the same pixel. Decide attribution before crying over margin theft.
What this page does not measure
This page does not measure anything that counts for a price.
Matching accuracy: two "same" products without GTIN. No public rate.
Freshness: delay between the feed and the flash sale. Google says to keep it updated, not every minute.
Landed cost: how many agents actually add shipping before deciding. Markup allows it. Directory maps do not.
Coverage: eighteen listings is not the market. It is a filter at a specific date.
Do not budget this list as a channel with a known cost per acquisition. We do not publish one.
Price comparison, on maps that have it, is a usage label. It is not a parity certificate. It is not a Knowledge panel. We do not recycle the word as an indicator.
Instacart or DoorDash badges on Operator describe grocery tasks. This is not your fashion reference. Do not read them as an addressable comparison market.
Three steps, not eighteen forms
This week, by field, not by logo.
Parity: feed, JSON-LD, product page, checkout: same amount, same currency. Five header references are enough to spot the lie.
Identifier: stable GTIN or SKU. Without this, no serious comparison engine, Google or Phia.
Shipping apart: shipping in its attribute. Naked product price. Test what an agent actually adds up.
The single test: would this work still be useful if Phia closed tomorrow? A real [price] and a GTIN, yes. An exclusive connector "for the comparison filter", no.
Name the owners: merchandising or PIM for the identifier and freshness, technical SEO for markup, Merchant Center for the feed, checkout for shopping cart parity. A single "AI comparison owner" stops at the first divergent CSV.
If you only have one hour: open Merchant Center, a product page, the JSON-LD, the checkout. Note the four amounts. If they diverge, stop reading the eighteen sheets.
You do not enable comparison agents
You don't turn on "comparison agents" like a module. Buyers open Phia, Rufus, Gemini, Honey. You hold an offer. The cards on this page are not buttons.
If a seller promises to place you "in AI comparison engines," ask for: GTIN, feeds, Offer markup, checkout parity, or directory listing. Five deliverables. One word.
Merchant Center and JSON-LD are done now. A checkout tunnel rail is chosen late. Postponing the UCP is not postponing a price that lies. Honey will remain a coupon, not a [price].
After the click, it's your after-sales service if the price has moved. The directory did not pocket the difference. Do not attribute a commercial gesture to it that you will make to appease the buyer.
The product directory, if you want the grid by logo: AI shopping agents.
A price readers' index, not a ranking
Comparison is fragmenting. Google did not "kill" Phia. A Knowledge panel did not "replace" Rufus. This page is an index of poorly labeled price readers under a single word. The only card you hold: parity, identifier, currency, port aside.
Treat it as a starting point: which garden (Amazon, Walmart, open web), which source (feed, markup, HTML), what amount the agent adds up. Three questions. Not a leaderboard of comparison sites.
You can ignore Phia and still hold Merchant Center. You can refuse Honey and still expose [sale_price]. You can be off Amazon and off Walmart. The directory does not decide. Your four fields, however, do.
Then open two profiles, not eighteen. A garden where you already sell (Rufus or Sparky). An all-merchant agent (Phia or Gemini). Ask each time: which catalog, which identifier, which price read.
Frequently Asked Questions
What is the best price comparison agent in 2026?
This page does not say. No public matching, freshness, or landed cost data says so either. Eighteen cards, several gardens. A ranking would be an invention.
Rufus and Phia, is it the same comparison?
No. Rufus compares within Amazon. Phia promises a cross-site graph (product sheet figure). Without the same identifier, neither compares "the same product". Google's Knowledge panel, on the other hand, relies on identifiers.
Why is Buy for Me on this list?
Because the page filter included it. Its card is not labeled price comparison. It is an Amazon agentic checkout funnel, not a comparison engine. Do not budget for it here.
Is a Honey coupon a price?
For the buyer, sometimes. For Merchant Center, a coupon only enters [price] if it is free for everyone and visible on the product sheet. Otherwise, it is a promotion. Separate it from bargain hunting and public [price].
Is markup, feed, or both required?
Google recommends both. Experiences can mix sources. A snippet may take the price from the feed if the markup is empty. Parity of both with the product sheet and checkout funnel is not optional if you want to remain approved.
What to do this week?
Align [price] (feed, JSON-LD, product sheet, checkout funnel) for five references. Verify currency and GTIN. Standardize the product price port. Stop reading the eighteen logos as long as they diverge.
Are Phia's 40,000 sites a market?
It is a product sheet phrase. Not an audit. Not your addressable market. Same for 30,000 (Honey) and 10,000 (Daydream). We do not turn them into facts.
Sources

Enzo
August 19, 2026


