Serhii NezhyhaiShopify developer

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
Outcome
ModelClaude Haiku 4.5
ToolsMCP (Storefront + Customer) + web search
LanguagesUkrainian / 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

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.