<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Search Engine Trends — English : news</title><link>https://searchenginetrends.com/en/news/</link><description>Shopify and Google announcements checked against primary sources, with practical reviews of checkout, product feeds and ecommerce integrations.</description><language>en-US</language><atom:link href="https://searchenginetrends.com/en/news/feed.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Sat, 03 Oct 2026 00:00:00 GMT</lastBuildDate><copyright>Search Engine Trends</copyright><item><title>Shopify WebMCP checkout: buyer approval and order state</title><link>https://searchenginetrends.com/en/articles/shopify-webmcp-checkout-validate-buyer-approval-order-state/</link><guid isPermaLink="true">https://searchenginetrends.com/en/articles/shopify-webmcp-checkout-validate-buyer-approval-order-state/</guid><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate><description>Review Shopify WebMCP checkout eligibility, browser compatibility and buyer approval. Use clear Q4 acceptance checks before claiming a confirmed order.</description><content:encoded>&lt;p&gt;&lt;img src=&quot;https://searchenginetrends.com/editorial-images/analysis.webp&quot; alt=&quot;Editorial illustration&quot;&gt;&lt;/p&gt;&lt;p&gt;Shopify announced checkout WebMCP support on September 28, 2026. The tools operate in the buyer’s browser session, with buyer approval still required to place an order. For an ecommerce team, the useful next step is to validate that contract against its own checkout. The announcement does not establish a gain in AI visibility or conversion. &lt;a href=&quot;https://shopify.dev/changelog/posts/webmcp-support-for-checkout&quot;&gt;Shopify announcement&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;separate-product-discovery-from-a-confirmed-order&quot;&gt;Separate product discovery from a confirmed order&lt;/h2&gt;&lt;p&gt;An assistant understanding a product, preparing a basket and recording an order are different outcomes. This proposed test begins with an agent already operating in the buyer’s browser. It does not establish that another assistant will discover the brand, recommend the product or send additional customers.&lt;/p&gt;
&lt;p&gt;Define the failure you intend to prevent: announcing a purchase before confirmation, keeping an old total or losing context after navigation. Q4 makes these failures particularly consequential because offers, stock and delivery options change. The acceptance goal is a correct, understandable interaction with a reliable approval boundary.&lt;/p&gt;
&lt;p&gt;Use one authorised development store, a fictional product and an appropriate test payment setup. The team should identify every action capable of changing checkout state. None of the examples below describes an order placed during this research.&lt;/p&gt;
&lt;h2 id=&quot;confirm-checkout-eligibility-first&quot;&gt;Confirm checkout eligibility first&lt;/h2&gt;&lt;p&gt;WebMCP is the browser interface; Checkout MCP is the server option. Documented exclusions include B2B, embedded/mobile SDK checkout, draft orders or edits, and standard three-page checkout without Shop Pay. &lt;a href=&quot;https://shopify.dev/docs/agents/carts-and-checkout&quot;&gt;Official scope&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Prepare a matrix covering checkout type, payment context, extensions and tools actually discovered. An absent tool is a reason to hand control back, rather than attempt to bypass the interface. The normal buyer journey remains the fallback.&lt;/p&gt;
&lt;p&gt;For US and UK use cases, repeat the check with the intended commercial context: currency, test address, delivery choices and store terms. The cited documentation does not establish universal country availability. Two local scenarios are not evidence of a worldwide rollout. Record the date, configuration and observable outcome so the next reviewer can reproduce the same conditions.&lt;/p&gt;
&lt;p&gt;No additional merchant configuration does not mean that the agent needs no authentication. Shopify requires Web Bot Auth: the agent generates an Ed25519 key, publishes its public-key directory, registers that directory with Shopify and signs browser requests with short-lived signatures. Without WBA, bot detection may deprioritise or block the requests. Signatures belong in browser request headers; private signing material must never become a tool argument. A verified agent identity still does not authorise an order on the buyer’s behalf. Include authentication readiness in the compatibility checklist before interpreting blocked requests as a checkout failure. &lt;a href=&quot;https://shopify.dev/docs/agents/carts-and-checkout/checkout-webmcp&quot;&gt;Agent authentication&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;isolate-a-versioned-browser-adapter&quot;&gt;Isolate a versioned browser adapter&lt;/h2&gt;&lt;p&gt;The browser API has a tool-discovery lifecycle. Refresh available tools on &lt;code&gt;toolchange&lt;/code&gt; and retain their origin identity. &lt;a href=&quot;https://developer.chrome.com/docs/ai/webmcp/imperative-api&quot;&gt;Chrome reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Keep this lifecycle inside an adapter separate from the assistant’s reasoning. Its input is an identified tool; its output is an interpreted result or an explicit unknown outcome. Record the browser version in every compatibility test, rather than treating an example copied from documentation as a permanent calling convention.&lt;/p&gt;
&lt;p&gt;Shopify documents JSON-string arguments for Chrome 153, while the Chrome reference also presents object arguments. These examples should not be assumed interchangeable across browser versions. &lt;a href=&quot;https://shopify.dev/docs/agents/carts-and-checkout/checkout-webmcp&quot;&gt;Shopify implementation instructions&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Before connecting to merchant tools, test the adapter with substitutes: an empty tool list, a changed origin, a changed schema and navigation during an outstanding call. The adapter should stop when it cannot interpret the result. It must not manufacture success from a partial response or select another tool merely because its name looks familiar.&lt;/p&gt;
&lt;h2 id=&quot;attach-approval-to-the-proposal-the-buyer-saw&quot;&gt;Attach approval to the proposal the buyer saw&lt;/h2&gt;&lt;p&gt;The statuses &lt;code&gt;ready_for_complete&lt;/code&gt; and &lt;code&gt;completed&lt;/code&gt; mean different things. Amounts use currency minor units. The buyer must approve the current order and total; technical readiness is not that approval. &lt;a href=&quot;https://shopify.dev/docs/agents/carts-and-checkout/checkout-webmcp&quot;&gt;Checkout contract&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Consider an &lt;strong&gt;illustrative fixture&lt;/strong&gt;, not a real transaction: an 80 USD item, 5 USD delivery and 6 USD in fictional taxes. The total is 91 USD, represented as 9100 cents. A separate UK fixture uses an 80 GBP item and 5 GBP delivery, totalling 85 GBP. It is neither a currency conversion nor a UK tax calculation.&lt;/p&gt;
&lt;p&gt;The review screen should identify the merchant, items, quantities, currency and total. If the US fixture changes to 94 USD after a delivery update, our proposed acceptance rule invalidates approval of the earlier 91 USD proposal. Present the changed proposal and request approval again.&lt;/p&gt;
&lt;p&gt;Implement that rule as an observable application condition. A boolean saying that approval happened at some point is insufficient: it needs to correspond to the proposal presented. Changed quantities or products should also require a renewed review in this protocol.&lt;/p&gt;
&lt;h2 id=&quot;design-for-uncertainty-and-human-intervention&quot;&gt;Design for uncertainty and human intervention&lt;/h2&gt;&lt;p&gt;After a timeout or unreadable response, the proposed rule is to pause further submission and inspect the available state. This avoids a second attempt while the first outcome remains unknown. Tell the buyer what is being checked instead of declaring either success or failure without evidence.&lt;/p&gt;
&lt;p&gt;Payment challenges and blocking interactions can return control to the buyer. &lt;a href=&quot;https://shopify.dev/changelog/posts/webmcp-support-for-checkout&quot;&gt;Announcement details&lt;/a&gt; Treat that handoff as part of the planned journey. Explain what the buyer needs to do and what the assistant currently knows.&lt;/p&gt;
&lt;p&gt;Merchant and third-party text should remain data rather than operational instructions. OWASP discusses indirect injection and observing actual tool effects. &lt;a href=&quot;https://cheatsheetseries.owasp.org/cheatsheets/LLM_Prompt_Injection_Prevention_Cheat_Sheet.html&quot;&gt;OWASP guidance&lt;/a&gt; For this assessment, place a harmless conflicting instruction in fictional product text and use simulated tools. Check that it cannot trigger an unauthorised change. This is a local defensive test, not a test against a public service.&lt;/p&gt;
&lt;h2 id=&quot;establish-observable-acceptance-checks&quot;&gt;Establish observable acceptance checks&lt;/h2&gt;&lt;p&gt;The following matrix is a proposed protocol. It does not report experiments already completed.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Test condition&lt;/th&gt;
&lt;th&gt;Expected result in this protocol&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;No recognised tool&lt;/td&gt;
&lt;td&gt;Human fallback; no purchase announcement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Total changes after approval&lt;/td&gt;
&lt;td&gt;New review before submission&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Approval missing&lt;/td&gt;
&lt;td&gt;No completion attempt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Navigation during a call&lt;/td&gt;
&lt;td&gt;Outcome treated as unknown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Buyer intervention required&lt;/td&gt;
&lt;td&gt;Wait, then inspect the current context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final confirmation observed&lt;/td&gt;
&lt;td&gt;Reconcile with the order identifier&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Save the fictional input, previous state, triggering event, attempted action and resulting state for each case. Keep personal information, payment details and secrets out of test logs. A reassuring conversational response cannot establish that no incorrect action occurred. The review must inspect attempted calls and state transitions as well.&lt;/p&gt;
&lt;p&gt;Decide who can release the integration and who can stop it. A clear owner matters when an acceptance check fails close to a promotion launch. A reversible handoff to the normal checkout is preferable to keeping a broken agent journey available while its state remains unclear.&lt;/p&gt;
&lt;h2 id=&quot;measure-the-integration-before-judging-commercial-value&quot;&gt;Measure the integration before judging commercial value&lt;/h2&gt;&lt;p&gt;Track tool availability, started journeys, approval requests, completion attempts and confirmed orders separately. Define denominators before reporting rates. Development fixtures must carry a test marker so they cannot be counted as actual sales or customer behaviour.&lt;/p&gt;
&lt;p&gt;For a Q4 release, use the acceptance matrix, a named correction owner and a usable fallback. An incorrect currency, submission without approval or unmanaged unknown outcome blocks the proposed release gate. Any apparent speed improvement comes after those invariants, not ahead of them.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://searchenginetrends.com/en/q4/&quot;&gt;Q4 dossier&lt;/a&gt; and &lt;a href=&quot;https://searchenginetrends.com/en/resources/&quot;&gt;free resource library&lt;/a&gt; can support preparation and record keeping. They do not establish improved ranking, AI citations or additional orders. A reliable checkout integration is an operational achievement; commercial outcomes require separate, authorised measurement.&lt;/p&gt;
&lt;p&gt;Published by Search Engine Trends. &lt;a href=&quot;https://searchenginetrends.com/en/articles/shopify-webmcp-checkout-validate-buyer-approval-order-state/&quot;&gt;Original article&lt;/a&gt;. &lt;a href=&quot;https://searchenginetrends.com/en/about/&quot;&gt;Team and commercial relationships&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>E-commerce</category><dc:creator>Search Engine Trends — editorial team</dc:creator><media:content url="https://searchenginetrends.com/editorial-images/analysis.webp" medium="image" type="image/webp"/></item><item><title>Google Merchant API migration: preserve offer identity</title><link>https://searchenginetrends.com/en/articles/google-merchant-api-migration-preserve-offer-source-q4/</link><guid isPermaLink="true">https://searchenginetrends.com/en/articles/google-merchant-api-migration-preserve-offer-source-q4/</guid><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate><description>Plan a Google Merchant API migration for Q4. Check legacy 410 errors, data-source ownership, encoded offer names and processed US/UK product facts.</description><content:encoded>&lt;p&gt;&lt;img src=&quot;https://searchenginetrends.com/editorial-images/operations.webp&quot; alt=&quot;Editorial illustration&quot;&gt;&lt;/p&gt;&lt;p&gt;A catalogue integration still using Content API for Shopping needs an immediate review before Q4. Google records sunset on August 18, 2026, intermittent 410 responses from September 1 without an active extension, and full decommissioning planned for early 2027 on a revisable schedule. That is not the same as every endpoint already being permanently unavailable. &lt;a href=&quot;https://developers.google.com/shopping-content/guides/deprecation-and-sunset&quot;&gt;Google timetable&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The useful migration task is to identify affected callers, preserve offer identity and verify processed products. A successful HTTP response does not prove listing eligibility, traffic or an additional order.&lt;/p&gt;
&lt;h2 id=&quot;establish-who-owns-each-integration&quot;&gt;Establish who owns each integration&lt;/h2&gt;&lt;p&gt;Start with an inventory of the ecommerce connector, feed app, internal scripts, scheduled jobs and manual operations. Record an owner, merchant account, authentication project, methods and data source for each route. Keep tokens and secrets outside that working document.&lt;/p&gt;
&lt;p&gt;Google distinguishes custom callers from third-party platforms whose partner manages migration. &lt;a href=&quot;https://developers.google.com/shopping-content/guides/deprecation-and-sunset&quot;&gt;Sunset scope&lt;/a&gt; A merchant using a managed connector should establish its compatibility status rather than introduce a second publishing route. A developer responsible for direct requests must examine that client.&lt;/p&gt;
&lt;p&gt;When investigating a 410, retain the status, timestamp and available non-sensitive metadata. Identify the actual endpoint. A legacy API error does not mean the customer-facing product page returns 410; those are different systems. Retries can temporarily obscure the migration problem and make the operational record harder to interpret.&lt;/p&gt;
&lt;h2 id=&quot;keep-submitted-input-separate-from-the-processed-product&quot;&gt;Keep submitted input separate from the processed product&lt;/h2&gt;&lt;p&gt;Merchant API separates submitted &lt;code&gt;ProductInput&lt;/code&gt; data from the processed &lt;code&gt;Product&lt;/code&gt;. Writes identify the relevant data source. &lt;a href=&quot;https://developers.google.com/merchant/api/guides/compatibility/products&quot;&gt;Product migration guide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Build two acceptance stages: validate the local transformation, then check the result available from Google. The first establishes what your program prepared. The second establishes what remains after processing and source rules. Combining them would turn request acceptance into an unsupported claim that the offer is ready for distribution.&lt;/p&gt;
&lt;p&gt;In an internal ledger, distinguish prepared, sent, technically accepted, processed result checked and destination status reviewed. These are proposed workflow labels, not additional official API statuses. They help the commercial team see which evidence is still missing before a promotion starts.&lt;/p&gt;
&lt;p&gt;Give each exception a clear next step. An accepted request awaiting readback should not share a success label with a reconciled offer. A rejected request needs a diagnosis before another attempt. This separation also makes a handover between developer and merchandising teams easier to review.&lt;/p&gt;
&lt;h2 id=&quot;map-data-sources-before-writing&quot;&gt;Map data sources before writing&lt;/h2&gt;&lt;p&gt;Merchant API uses explicit API data sources, with source identifiers that need to be found and mapped to the integration. &lt;a href=&quot;https://developers.google.com/merchant/api/guides/compatibility/data-sources&quot;&gt;Data-source migration&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The proposed procedure begins with an authorised inventory read. Build a ledger connecting an offer to its current source, relevant rules and operational owner. Review discrepancies before adding a replacement source.&lt;/p&gt;
&lt;p&gt;Google documents “offer stealing”: inserting an existing offer into another primary source can move it and change the rules applied to it. &lt;a href=&quot;https://developers.google.com/merchant/api/guides/compatibility/products&quot;&gt;Migration warning&lt;/a&gt; What looks like a duplicate publication test can therefore change the live offer.&lt;/p&gt;
&lt;p&gt;To compare transformations, first use a local mode without publishing. The candidate transformer produces a difference file; the established route remains the only writer until cutover is authorised. Detecting a difference does not require modifying the production catalogue.&lt;/p&gt;
&lt;h2 id=&quot;preserve-identities-across-us-and-uk-contexts&quot;&gt;Preserve identities across US and UK contexts&lt;/h2&gt;&lt;p&gt;The reference requires &lt;code&gt;offerId&lt;/code&gt;, &lt;code&gt;contentLanguage&lt;/code&gt; and &lt;code&gt;feedLabel&lt;/code&gt;. It also documents unpadded base64url names, recommended especially for special characters. &lt;a href=&quot;https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs&quot;&gt;ProductInput reference&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Avoid constructing a new URL with a simple colon replacement. Persist the resource names returned by the API, including encoded forms where necessary, and check that they resolve to the intended offer. Include a SKU containing a slash in your fixture set to reveal overly simple encoding assumptions.&lt;/p&gt;
&lt;p&gt;A shared English language does not imply one currency, delivery promise or source for US and UK buyers. Targeting also depends on source settings and product attributes; a feed label is not a shipping policy. &lt;a href=&quot;https://developers.google.com/merchant/api/guides/products/add-manage&quot;&gt;Product management and targeting&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Keep technical offer identity, served country and visible commercial facts distinct. A customer must find the selected price and promise on the landing page. The same check protects against confusing a technically valid identifier with a correct international offer.&lt;/p&gt;
&lt;h2 id=&quot;an-illustrative-q4-ledger-with-no-api-calls&quot;&gt;An illustrative Q4 ledger with no API calls&lt;/h2&gt;&lt;p&gt;The following offers are &lt;strong&gt;fictional&lt;/strong&gt;. Source aliases belong to an internal planning sheet; they are not identifiers ready to paste into a request.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Offer&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Feed label&lt;/th&gt;
&lt;th&gt;Expected price&lt;/th&gt;
&lt;th&gt;Validated source alias&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;KIT-Q4-01&lt;/td&gt;
&lt;td&gt;en&lt;/td&gt;
&lt;td&gt;US&lt;/td&gt;
&lt;td&gt;49.90 USD&lt;/td&gt;
&lt;td&gt;source-us&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KIT-Q4-01&lt;/td&gt;
&lt;td&gt;en&lt;/td&gt;
&lt;td&gt;GB&lt;/td&gt;
&lt;td&gt;39.00 GBP&lt;/td&gt;
&lt;td&gt;source-uk&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The acceptance scenario requires each row to retain its association with the verified real source. If the UK transformation reuses the USD price or US alias, the local test must fail before publishing. These prices are neither exchange-rate calculations nor actual catalogue prices.&lt;/p&gt;
&lt;p&gt;Then compare the visible title, product link, availability and currency. Add a commercial check for a promotional price that is not ready on the landing page. That additional check is our proposed quality gate; it is separate from any promise of Merchant Center approval.&lt;/p&gt;
&lt;h2 id=&quot;make-cutover-limited-and-observable&quot;&gt;Make cutover limited and observable&lt;/h2&gt;&lt;p&gt;The product-management guide limits these writes to API sources and separates processed-product retrieval. &lt;a href=&quot;https://developers.google.com/merchant/api/guides/products/add-manage&quot;&gt;Management guide&lt;/a&gt; Prepare a representative small set before handling the entire catalogue: a simple offer, a variant, a special-character identifier and an international context.&lt;/p&gt;
&lt;p&gt;Assign a cutover owner, an appropriate change window and a stopping rule. After each authorised operation, reconcile the expected offer, actual source and retrieved result. Processing delay remains a waiting condition, not an excuse to invent acceptance.&lt;/p&gt;
&lt;p&gt;The reference limits &lt;code&gt;versionNumber&lt;/code&gt; to insertions into primary sources; it is not a universal guard for PATCH. &lt;a href=&quot;https://developers.google.com/merchant/api/reference/rest/products_v1/accounts.productInputs&quot;&gt;Field scope&lt;/a&gt; Where several producers update offers, establish ownership and processing order first. An incorrectly applied field cannot repair uncontrolled concurrent writers.&lt;/p&gt;
&lt;p&gt;Suspending a defective writer is a more precise rollback decision than assuming the degraded legacy service will remain a reliable fallback. Preserve the last validated mapping and correction procedure so the team knows which operations it can safely stop.&lt;/p&gt;
&lt;h2 id=&quot;set-the-acceptance-evidence-before-launching-an-offer&quot;&gt;Set the acceptance evidence before launching an offer&lt;/h2&gt;&lt;p&gt;Our proposed review requires:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;an identified owner and recorded migration status for each connector;&lt;/li&gt;
&lt;li&gt;reconciled offer keys and sources without unintended movement;&lt;/li&gt;
&lt;li&gt;encoding cases checked against fixtures;&lt;/li&gt;
&lt;li&gt;matching processed prices, currencies and availability;&lt;/li&gt;
&lt;li&gt;destination diagnostics reviewed separately from HTTP responses;&lt;/li&gt;
&lt;li&gt;a documented way to pause the defective publishing route.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This research did not execute that matrix against a merchant account. It establishes no success rate or guaranteed processing time. Local fixtures can demonstrate transformation consistency, not eligibility of a real product.&lt;/p&gt;
&lt;p&gt;Track errors by method, unresolved offer age and source-to-product differences. The &lt;a href=&quot;https://searchenginetrends.com/en/resources/&quot;&gt;free campaign resources&lt;/a&gt; can help organise these tasks. The Q4 goal is trustworthy product information. Visibility, visits and orders remain separate outcomes requiring their own evidence.&lt;/p&gt;
&lt;p&gt;Published by Search Engine Trends. &lt;a href=&quot;https://searchenginetrends.com/en/articles/google-merchant-api-migration-preserve-offer-source-q4/&quot;&gt;Original article&lt;/a&gt;. &lt;a href=&quot;https://searchenginetrends.com/en/about/&quot;&gt;Team and commercial relationships&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>E-commerce</category><dc:creator>Search Engine Trends — editorial team</dc:creator><media:content url="https://searchenginetrends.com/editorial-images/operations.webp" medium="image" type="image/webp"/></item></channel></rss>
