tenantId column (defaulting to petstore-direct), so additional stores can be onboarded with no schema changes.productType string, enforced via foreign keys:/api/chat endpoint consumed across four channels: website widget (SSE streaming), Gorgias help-desk (plain text), voice/SMS (tool-json) and any external LLM orchestrator.session_id / ticket_id containing:detect → confirm → collect_email → collect_order → collect_phone → pre_handoff → execute → donePart 1 SummaryPetStore.Direct now has a single, authoritative platform that mirrors and enriches the entire Shopify catalog; exposes that intelligence through a managed taxonomy and a polished admin dashboard; drives a production-grade conversational assistant that cannot recommend a product that doesn't exist; handles orders, purchases and support hand-off end-to-end; and provides a full CRM, Campaigns and AI Agent Manager layer for scalable outbound operations — all ready for voice, SMS and additional tenants without further engineering.
<details>/<summary> structure with optional "View all" row and nested grandchild panels. Mobile renders the same tree as nested expandable sections. A small capture-phase click handler syncs aria-expanded on triggers..exodus-product-cards applies consistent grid spacing, card chrome, typography, price, badge, hover and rating styles anywhere it is present — across collection pages, featured collections, search results and related products.product.metafields.custom.subtitle with theme-editor help text. Block order updated: title → price → subtitle → vendor → variant picker → quantity → buy buttons. Subtitle styling applies to both legacy and new CSS classes for consistent typography.