Fictional example
A sample Shopify storefront check
Northstar Outdoor and every observation in this report are invented. This example shows how product comparisons, shopping-journey evidence and a correction plan are presented.
Illustrative report date: 6 September 2026, the delivery date in the engagement record below. Every other date in the example belongs to the same invented engagement. This page itself was last revised on 2 October 2026.
What to fix first
- Priority: Correct two product-data mismatches before sending more agent traffic to the store.
- Evidence: The remote catalog quotes the blue Trail Bottle at 31,90 EUR against 29,90 EUR on the storefront, and the M size of the Merino Base Layer is sellable on every surface except the Agentic Catalog preview.
- Why it matters: An agent may quote the wrong price or leave the sellable size out.
- Owner: Shopify Markets, product data and Agentic storefront settings, on the merchant's side.
- Acceptance: The same variant returns the same price, currency and availability on the storefront, in the WebMCP read, in the Storefront Catalog MCP read and in a remote UCP cart, and the M variant reads as sellable in the Agentic Catalog preview in the agreed market.
- Test limits: Three products, one market, one anonymous session on 2026-09-05. Nothing was paid, ordered or signed in, and no customer detail was entered.
Two of the three tested products need attention. The remote catalog shows one price 2 EUR higher than the storefront. The Agentic preview marks one variant unavailable even though the storefront sells it.
The browser cart worked in the agreed anonymous session, and the checkout handoff reached the right store. No customer details were entered, no payment was submitted and no order was created.
Contents
- What to fix first
- The agreed work
- The three interfaces
- Product information compared
- The shopping journey
- What to change, C1 to C3
- Changes not needed in this test
- Scope and unresolved items
- Checking the corrections
- Scope limits
- About this sample
The agreed work
| Field | Value |
|---|---|
| Merchant | Northstar Outdoor, invented D2C outdoor equipment store on Shopify |
| Storefront | northstar-outdoor.example, the .myshopify.com domain redacted in this sample |
| Market, language, currency | Finland, fi-FI, EUR |
| Products in scope | Trail Bottle 750 ml, blue. Merino Base Layer, size M. Camp Mug, green |
| Buyer searches in scope | Five, listed under the buyer journey |
| Preflight | 2026-09-04, public read-only. An observable agent commerce surface was found, so the check was sold |
| Written kickoff | 2026-09-05 at 09:00 EEST, after preflight, payment and settings evidence |
| Test session | 2026-09-05, one clean supported Chromium session, one anonymous shopper |
| Package delivered | 2026-09-06 at 15:40 EEST, 30 hours and 40 minutes after the kickoff |
| Retest window | Until 2026-09-20, up to two corrected items |
| Access used | Public storefront surfaces and redacted settings screenshots from the merchant. No Admin login, no credentials, no customer data |
The three interfaces
The table shows what could be checked on each interface, using the same products in the same session.
- Present: the interface responded and was tested within scope.
- Restricted: it responded but refused part of the test.
- Unavailable: it did not respond.
- Not tested: the agreed scope stopped before that step.
| Surface | Status | What was verified | What was not |
|---|---|---|---|
| Browser WebMCP, in the shopper's live storefront tab | Present | Ten tools registered on navigator.modelContext: browse_store, search_catalog, get_product, show_variant, update_cart, get_cart, cancel_cart, proceed_to_checkout, search_shop_policies_and_faqs and manage_orders. Eight were called within scope. One anonymous cart built and emptied. | manage_orders and browse_store were not called, and proceed_to_checkout was called once for the permitted navigation only. No customer account was opened. |
| Shopify-hosted Storefront Catalog MCP and Cart MCP on /api/ucp/mcp, and the Policy and FAQs tool on /api/mcp | Present | Catalog search and product read answered at protocol level on /api/ucp/mcp. On /api/mcp, the Policy and FAQs tool answered. The check created one remote cart with the blue Trail Bottle through the Cart MCP tool create_cart and cancelled it with cancel_cart, without a buyer identity. | Checkout MCP was not reached, by scope. |
| Shopify Catalog and Agentic storefront channels | Present | Catalog access on, auto-enrolment of new products on, one channel active, read from the merchant's redacted settings evidence. Catalog search preview run for the three products. | Channel ranking or sales were not measured. Settings were not changed. |
These labels describe the test session, not a certification, an endorsement or a security claim.
Product information compared
The table compares the product, variant, price, currency, availability and policy facts in the same market, language, currency and test window. A difference was reproduced before being marked Mismatch.
| Product and variant | Storefront page | Browser WebMCP | Storefront Catalog MCP | Agentic Catalog preview | Result |
|---|---|---|---|---|---|
| Trail Bottle 750 ml, blue | 29,90 EUR, in stock | 29,90 EUR, in stock | 31,90 EUR, in stock | 29,90 EUR, in stock | Mismatch, remote price |
| Merino Base Layer, M | 79,00 EUR, in stock | 79,00 EUR, in stock | 79,00 EUR, in stock | 79,00 EUR, unavailable | Mismatch, variant eligibility |
| Camp Mug, green | 18,50 EUR, in stock | 18,50 EUR, in stock | 18,50 EUR, in stock | 18,50 EUR, in stock | Aligned |
Each row compares one variant. The three tool interfaces returned the same product title and the same variant ID for it, and the catalog preview showed the same title and option:
| Product and variant | Variant ID | Title returned |
|---|---|---|
| Trail Bottle 750 ml, blue | gid://shopify/ProductVariant/100000000001 | Trail Bottle 750 ml |
| Merino Base Layer, M | gid://shopify/ProductVariant/100000000002 | Merino Base Layer |
| Camp Mug, green | gid://shopify/ProductVariant/100000000003 | Camp Mug |
The 30-day return window, free shipping above 80 EUR and the delivery estimate of two to four working days matched across the storefront, the WebMCP policy tool and the remote Policy and FAQs tool on /api/mcp. The Agentic Catalog preview has no policy fields, so their absence is not a mismatch.
The price difference was reproduced at 11:20 and 14:05 EEST. The merchant's redacted settings screenshot shows the M variant's Agentic eligibility switched off. According to the merchant's written note at the kickoff, every product in scope was meant to be sellable in that channel. No settings were changed during the test.
The shopping journey
Each row records the tool, the input, the result and the cart state for the five buyer searches and the cart test, with the remote reads and the catalog preview between them. It also shows exactly where testing stopped.
| Step | Tool and input | Observed result | Cart state | Status |
|---|---|---|---|---|
| Search 1, "light bottle for a day hike" | WebMCP search_catalog, fi-FI | Trail Bottle 750 ml returned first, blue variant listed with price and stock | Empty | Aligned |
| Search 2, "merino base layer size M" | WebMCP search_catalog | Merino Base Layer returned, M variant listed as in stock | Empty | Aligned |
| Search 3, "camp mug green" | WebMCP search_catalog | Camp Mug returned, green variant listed | Empty | Aligned |
| Search 4, "waterproof jacket" | WebMCP search_catalog | Two jackets returned, both outside the scope, no claim recorded | Empty | Observed |
| Search 5, "return and shipping policy" | WebMCP search_shop_policies_and_faqs | 30-day return window, free shipping above 80 EUR and a delivery estimate of two to four working days returned, matching the storefront policy page | Empty | Aligned |
| Remote catalog search | Storefront Catalog MCP search_catalog on /api/ucp/mcp, "trail bottle", Finland EUR | Trail Bottle 750 ml returned first, blue variant at 31,90 EUR, in stock | Empty | Mismatch, remote price |
| Remote product read | Storefront Catalog MCP get_product, Trail Bottle, blue variant | Same title and variant ID as the storefront, 31,90 EUR | Empty | Mismatch, remote price |
| Remote policy read | Policy and FAQs tool search_shop_policies_and_faqs on /api/mcp, "return and shipping policy" | 30-day return window, free shipping above 80 EUR and a delivery estimate of two to four working days, matching the storefront policy page | Empty | Aligned |
| Remote product read, Merino Base Layer M | Storefront Catalog MCP get_product, M variant | Same title and variant ID as the storefront, 79,00 EUR, in stock | Empty | Aligned |
| Remote product read, Camp Mug green | Storefront Catalog MCP get_product, green variant | Same title and variant ID as the storefront, 18,50 EUR, in stock | Empty | Aligned |
| Agentic Catalog preview | Catalog search preview for the three products, from the merchant's redacted screenshots | Trail Bottle and Camp Mug sellable, Merino Base Layer M unavailable | Empty | Mismatch, variant eligibility |
| Product detail | WebMCP get_product and show_variant, Trail Bottle blue | Material, volume, price 29,90 EUR and stock matched the storefront page | Empty | Aligned |
| Add to cart | WebMCP update_cart, one blue Trail Bottle | Cart line created, quantity 1, line price 29,90 EUR | One line, 29,90 EUR | Aligned |
| Cart read | WebMCP get_cart | One line, 29,90 EUR, matches the visible storefront cart drawer | One line, 29,90 EUR | Aligned |
| Checkout handoff | WebMCP proceed_to_checkout, the one permitted navigation | Landed on the store's own checkout page, correct store, correct line | One line, 29,90 EUR | Observed |
| Payment and order | None | No form filled, no payment method entered, no order created. This is the stop | One line, 29,90 EUR | Not tested |
| Remote UCP cart | Cart MCP create_cart, one blue Trail Bottle, quantity 1, fi-FI Finland EUR | Remote cart created with a 31,90 EUR line price and a 31,90 EUR subtotal, the same 31,90 EUR the remote catalog returned in the comparison above | Separate remote cart, one line | Mismatch, same price difference as the remote catalog, cause not confirmed |
| Cleanup | WebMCP cancel_cart. Cart MCP cancel_cart | Browser cart empty, storefront drawer empty, remote cart cancelled | Empty | Aligned |
The checkout handoff was one navigation to the checkout page. It was not a payment or an order. The remote cart was a separate test. It returned the same 31,90 EUR as the remote catalog, and the session did not establish that the two share a cause. C1 checks the Finland market price list assignment first, as the explanation to confirm or rule out.
What to change
This plan contains three changes, ordered by their effect on the buyer. Each has an owner and a check the merchant can repeat. The plan carries up to five.
C1. Align the remote catalog with the Finnish price list
What was found. The blue Trail Bottle is 31,90 EUR in the remote catalog and in the remote cart, compared with 29,90 EUR on the storefront and in the browser tools. The session recorded the same difference on both remote surfaces and did not establish why. The market price list assignment in the change below is the explanation to check first.
Who makes the change. The merchant's Shopify Markets and product-data owner.
What to change. Check that the Finland market price list is published to the remote catalog, then republish it. If the remote interface uses the default list, correct the market assignment rather than changing the product price. If the Finland list is already published and assigned, the difference has another cause, and C1 stays open until it is found.
How to check. Within one hour, the same variant must return 29,90 EUR on the storefront, in the WebMCP product response and in the Storefront Catalog MCP response, using the fi-FI Finland EUR context. A remote cart is then created with Cart MCP create_cart for the same variant, quantity 1, in the same market and currency. Its unit price and its line subtotal must both read 29,90 EUR, which the cart returns as 2990 in minor units. The cart is cancelled with cancel_cart and kept apart from the browser cart, and the check stops before Checkout MCP. C1 stays open while the cart price differs. If the cart cannot be created, its reading is Unknown and C1 does not close on the other three readings.
C2. Make the M variant available in the Agentic Catalog
What was found. The Merino Base Layer in size M is available on the other tested interfaces but marked unavailable in the Agentic Catalog preview. An AI channel using that catalog may omit it. The settings screenshot shows the variant's eligibility switched off, and the kickoff note says no product in scope was meant to be left out, so the change below restores the intended setting.
Who makes the change. The merchant's Agentic settings and catalog-mapping owner.
What to change. Update the variant's eligibility and republish the mapping.
How to check. After the propagation time stated in the settings page, the M variant reads as sellable in the Agentic Catalog preview, in the same market, language and currency as the comparison table. A public agent answer is not part of this check: an AI channel can keep an older copy of the catalog, and this report does not promise when it refreshes.
C3. Repeat the comparison after catalog changes
Why this matters. Later price-list, market or theme changes may introduce new differences. A repeat check can help the team detect them.
Who makes the change. The merchant's e-commerce operations team.
What to change. Keep these three products as test cases. Compare them across the three interfaces after each relevant publication, using the tool calls recorded above.
How to check. For each product, compare its identity, variant, price in minor units, currency and availability across every interface that provides those fields.
Changes not needed in this test
Beyond C1 to C3, no theme, app or product-data changes were identified for the three products in scope. The WebMCP inventory matched the ten platform-provided tools, so no missing tool was recorded.
Scope and unresolved items
- The result covers the three named products, the Finland market, EUR, the three interfaces and the test window on 2026-09-05.
- Other products and markets were not checked. The two jackets returned by Search 4 were outside scope and were not investigated.
- No customer account, order history or order-management tool was opened.
- No address, payment or order was submitted.
- Shopify Admin was not accessed, and settings evidence came from redacted screenshots.
- Ranking and sales through external AI channels were not measured or promised.
Checking the corrections
The retest is pending. C1 and C2 are the two items selected for it, and it is due by 2026-09-20, fourteen days after the first package was delivered on 2026-09-06. A further retest is bought as a new check. It is checked once, using the same tools, market, language and currency as the session above.
| Retest item | What is checked | Test date | Result |
|---|---|---|---|
| C1 | The blue Trail Bottle returns 29,90 EUR on the storefront, in the WebMCP product response and in the Storefront Catalog MCP response, and a remote UCP cart for the same variant, quantity 1, Finland market and EUR reads a 29,90 EUR unit price and subtotal before it is cancelled | Pending | Pending |
| C2 | The Merino Base Layer in size M reads as sellable in the Agentic Catalog preview | Pending | Pending |
Each item is then marked Aligned, Mismatch or Unknown. If an interface cannot be read, the result is Unknown. The product comparison above shows the original session on its own until the retest has been run, and the retest result is printed beside it once there is one.
Scope limits
This is not a Shopify certification, an endorsement by Shopify, a penetration test or a promise of sales through any AI channel. A browser observation is not a remote MCP interface, and a navigation to the checkout page is not a payment or an order. The check reads what an AI shopper receives from one store in one session and records it.
About this sample
The store, products, prices and results are fictional. The interface names, status labels and report format show what the service delivers.
A real report includes timestamped tool calls and the merchant's redacted settings evidence.
The check is described on its product page. To start one, email info@turva.dev with the storefront URL, the .myshopify.com domain, the primary market and up to three priority products. The agent-readiness audit has its own sample report.