Product Catalog

Teach your agent about your products.

How the agent learns your catalog

Your agent stores every product in a full-text searchable index inside its workspace. When a customer asks "do you have something warm for winter?", the agent searches semantically — not just by exact keyword match.

The catalog is stored locally in the agent's Durable Object, meaning product lookups happen in <50ms with no external API calls during conversation.

Sync methods

Shopify (automatic): If you installed via the Shopify App Store, your catalog is already synced. Products update in real-time via webhooks. No manual action needed.

CSV upload (manual): Export your products from Shopify Admin (Products → Export → CSV) and drag the file into the Catalog section of your dashboard.

JSON upload: If you have a custom product feed, upload a JSON array of products matching the Shopify product schema.

API (programmatic): Use the 11px] px-1.5 py-0.5 rounded bg-white/[0.06] text-amber-300 font-mono">sync-catalog RPC endpoint to push products programmatically. See [API Reference.

What gets indexed

  • -Title (full-text searchable)
  • -Description (full-text searchable, HTML stripped)
  • -Price and compare-at price
  • -Variants (size, color, material — each with own price/SKU/stock)
  • -Tags (full-text searchable)
  • -Category / product type
  • -Vendor / brand
  • -Images (URLs stored for product cards)
  • -Inventory (quantity + in-stock status)
  • -Metafields (care instructions, materials, etc.)

Shopify CSV format (example)

csv
Handle,Title,Body (HTML),Vendor,Type,Tags,Variant Price,Variant SKU,Option1 Name,Option1 Value,Variant Inventory Qty,Image Src,Status
riviera-dress,Riviera Dress,"<p>Elegant silk dress</p>",Maison,Dresses,"silk,summer,elegant",189.00,RD-S,Size,S,12,https://cdn.example.com/riviera.jpg,active
riviera-dress,,,,,,189.00,RD-M,Size,M,8,,active
riviera-dress,,,,,,189.00,RD-L,Size,L,3,,active
Large catalogs (1000+ products): The agent handles stores with up to 100K products. Initial sync uses Shopify's Bulk Operations API for efficiency. The agent becomes functional with the first batch and progressively improves as more products index.

Keeping the catalog fresh

If using Shopify webhooks, updates happen automatically within ~5 seconds.

For manual uploads, re-upload the CSV whenever your catalog changes significantly. The parser uses upsert — existing products are updated, new ones are added, and nothing is deleted unless you explicitly remove it.

The agent knows when a product is out of stock and will proactively suggest alternatives instead of recommending unavailable items.