Solid Commerce in Gemini
Value. Plug Solid Commerce into Gemini so Google-stack merchants can ask Gemini directly about their listings, orders, and ad performance.
Choose this when your operation runs on Workspace / Gmail / Sheets and Gemini is your everyday assistant.
Connect
- In Gemini, open Extensions and find Solid Commerce.
- Enable it and authorize when prompted.
- The Solid Commerce consent screen lists requested scopes in plain English, with a company picker if you belong to more than one company.
Your Google account identifies you; the Solid Commerce access token is issued
by Solid Commerce (no Google SSO into your Solid Commerce account). The OAuth
callback returns to https://vertexaisearch.cloud.google.com/oauth-redirect.
Try it — just ask
- "What did my Walmart sales look like this week?"
- "Which products are running low across warehouses?"
- "Reprice listing li_1234 to $19.99." (Gemini confirms before writing.)
Reads run immediately; writes ask for confirmation first.
Under the hood (for builders)
The extension calls the same canonical Solid Commerce API:
1. List today's orders
A read-only call — safe to run the moment you connect.
import { SolidCommerceClient } from '@solidcommerce/sdk';
const client = new SolidCommerceClient({
baseUrl: 'https://api.solidcommerce.com',
auth: { kind: 'bearer', token: process.env.SC_TOKEN! },
});
const since = new Date(Date.now() - 86_400_000).toISOString();
const { data } = await client.raw.GET('/v1/orders/orders', {
params: { query: { created_after: since, limit: 50 } },
});
console.log(`${data?.data.length ?? 0} orders in the last 24h`);2. Reprice a listing
A write — the audited reason is captured even if you forget to mention it. In a conversational host this surfaces a confirmation prompt first (every write tool is annotated destructiveHint).
await client.raw.PATCH('/v1/listings/list-items/{listItemId}/automation', {
params: { path: { listItemId: 'li_1234' } },
body: { list_price: 19.99, metadata: { price_change_reason: 'competitor match' } },
});3. Check inventory across warehouses
Another read — see stock for every warehouse in one call.
const { data } = await client.raw.GET('/v1/inventory/warehouses');
for (const wh of data?.data ?? []) {
console.log(wh.name, wh.available_units);
}Availability
Our Gemini extension-directory listing is in submission; the hosted endpoint is live and ready for it. Today, Gemini CLI connects with an API key in two minutes. Review our Privacy Policy and Terms.