Work AI / agentic
Storefront AI assistant
A shopper-facing chat agent on Claude and MCP — catalogue search, cart building and order status, in Ukrainian and Russian.
- Client
- Informatica
- My role
- Sole developer · employee
- Period
- 2025 — present
| Model | Claude Haiku 4.5 | |
|---|---|---|
| Tools | MCP (Storefront + Customer) + web search | |
| Languages | Ukrainian / Russian | |
Problem
Shoppers on an electronics store ask compatibility questions — will this adapter fit that laptop — that a search box answers badly and that otherwise need a person.
Constraints
Anything a shopper acts on — price, stock, what's in the cart — has to be read live, never generated. The store is Ukrainian and Russian-speaking, so the assistant has to be too.
Hard part
Keeping answers tied to the real catalogue and the real cart rather than a plausible-sounding guess.
Stack
- Claude Haiku 4.5
- Model Context Protocol
- Remix
- Prisma
- Theme app extension
- Fly.io
Links
How it stays grounded
The assistant doesn’t answer from the model’s own idea of the catalogue. It loads its tools at runtime from two MCP servers — Shopify’s Storefront MCP for search, cart and policies, and the Customer Account MCP for order status — and every product, price and cart state in an answer comes back from one of those calls. Add-to-cart writes to the shopper’s real storefront cart, so what the assistant says is in the cart and what’s actually there stay the same thing.
Built on the template
It started from Shopify’s shop-chat-agent template and kept the good bones:
streamed responses over SSE, tool calling, transparent OAuth for the customer
account. The local work is what the store needed on top — multilingual system
prompts, a past-conversations view in the admin, a fulfilment webhook, and a
launcher redesigned as a fan-out button that behaves on mobile. Claude runs as
Haiku 4.5, with Anthropic’s web search added for the occasional question the
catalogue can’t answer.
What I wouldn’t trust it with
Checkout. The assistant can build a cart and hand off, but the payment step stays on Shopify’s own checkout where it belongs. The rule is the same as everywhere else in this work: the model drafts, a system of record decides.