
Salesforce UCP checkout on Google is live. Audit what your checkout does before Gemini sells for you
Salesforce's October 2026 B2C Commerce release makes Universal Commerce Protocol checkout on Google live, so shoppers can buy from Gemini and AI Mode in Search while you stay merchant of record. The catch for CRM and service teams is that your storefront checkout code doesn't run. Here's the audit I'd do first.
Salesforce published its October 2026 B2C Commerce release yesterday, and the first item isn't a merchandising feature. It's a new place to sell. Integration with the Universal Commerce Protocol (UCP) is now live, so merchants can turn on UCP-powered checkout on Google. Shoppers can find and buy products directly in the Gemini app and Google Search, including AI Mode, while the brand stays the merchant of record.
Salesforce announced support for Google's protocol back in January. What's new is that it's generally available, and the developer guide spells out how it actually behaves. Reading that guide, the part I'd focus on as an architect isn't the buy button. It's the line in the Technical Audit saying that your storefront controllers don't run in this flow.
So my view is simple. Before Gemini sells for you, list everything your current checkout does after the customer clicks "Place order". Then decide where each of those things will happen when there's no storefront in the middle.
What went live
From the Salesforce developer guide:
- UCP is GA in B2C Commerce 26.9 and later. Google is the first live platform.
- It's limited to en-US sites for now.
- You pay through Salesforce Payments (Adyen or Stripe with Google Pay switched on) or your own payment provider. Google still expects Google Pay today.
- You join Google's UCP waitlist first, set the
native_commerceattribute on products in your Merchant Center feed, and create a SLAS private client with thedev.ucp.shopping.checkout:managescope. - Testing runs from sandbox to staging to production, and Google has to allowlist your testers in each environment.
Google's side is also clear about who does what. During checkout, an agent can help the shopper fill the cart. When the shopper decides to pay, control passes to a Google screen where they enter delivery and payment details, and Google's guide says the agent is not involved in that part. Your system receives the line items first, with only city, state and ZIP code. The full name, email, phone number and address arrive when the shopper clicks "Pay with GPay".
Why this is a CRM problem, not just a commerce one
The Technical Audit page puts it plainly. A UCP checkout session is a headless view of a standard Commerce Cloud basket, and completing it creates an order. SFRA and SiteGenesis controllers don't run. Neither do the hooks you attached to the Shopper Baskets and Shopper Orders APIs.
What does run are the standard basket and order hooks: dw.order.calculate, calculateTax, calculateShipping, validateBasket and createOrderNo. If your pricing, tax and shipping logic lives there, it carries over. If it lives in a controller, it doesn't. The guide also notes that none of the UCP-specific hooks run unless the "Salesforce Commerce API Hook Execution" toggle is on in Business Manager.
Salesforce lists the side effects that can quietly go missing:
- The order confirmation email, if a controller sends it today.
- The export to your order management system, if a controller does it.
- Store pickup options, which you may need to filter.
- Handoffs back to your site for things like age checks or complex promotions. Without a storefront plugin, the guide warns the buyer can land with an empty cart.
In my experience, the controller is also where the CRM-facing extras live. That's things like loyalty IDs, consent capture, custom order fields and the flag that tells a service rep where an order came from. None of that is in Salesforce's list, because it's specific to each build. That's exactly why you have to go and look.
The service side: Gemini keeps its own copy of the order
This is the part I'd brief the service team on. The guide on order post-processing events says the agent platform keeps its own current copy of each order and shows it to the shopper. B2C Commerce has to send it a full, signed snapshot every time the order is shipped, cancelled or returned.
If you run Salesforce Order Management, that happens automatically. If you use a third-party OMS, your OMS must post every event, including cancellations and returns started by a service rep. Salesforce says the cancel or return hook on its own does not notify the agent platform. Miss that, and the customer sees one status in Gemini while your agent sees another in the console.
The release has two helpful pieces for this. Profile updates in B2C Commerce now sync to connected Person Accounts in near real time. And the Event Framework is now GA, with an sf.cc.order.placed event you can send to other systems without polling. I'd use that event as the clean way to get Gemini orders into the rest of your stack. I'd also check whether your reports can tell these orders apart before you trust any channel numbers.
What I'd do before switching it on
- List every after-order step. Walk your current checkout and note what runs in controllers or SCAPI resource hooks.
- Move logic into the hooks that run. Put tax, shipping, validation and loyalty into the standard basket and order hooks, or the UCP hooks.
- Turn on hook execution and test with a UCP session. A normal basket test doesn't prove the UCP path works.
- Rebuild confirmation emails and OMS export. Use the documented hooks or a job, not a controller.
- Tag the channel on the order. Service and RevOps need to filter Gemini orders from day one.
- Prove returns flow back. Cancel and refund a test order from the console and check the update reaches the platform.
- Agree the handoff rules. Decide which products need a Continue URL to your site, and test that the cart survives.

The takeaway for CRM and RevOps teams
UCP checkout on Google is a real new channel, and Salesforce has done the heavy lifting on the protocol. But an order placed in Gemini skips the storefront code where many teams keep their emails, exports, loyalty and tracking. Treat it like any new integration: list what the old path did, prove each step on the new one, and make sure service can see and fix these orders before peak season does the testing for you.
Sources
- Salesforce Blog: Peak-Ready Precision: The October 2026 B2C Commerce Release (26 Oct 2026)
- Salesforce Developers: Universal Commerce Protocol (UCP) Integration, B2C Commerce
- Salesforce Developers: UCP Technical Audit
- Salesforce Developers: Order Post-Processing Events in the UCP Order Lifecycle
- Google for Developers: UCP native checkout REST API implementation
- Salesforce News: Salesforce Announces Support for Google's Universal Commerce Protocol (14 Jan 2026)