Skip to content

Recent Storefront & Admin Changes

Changelog-style index for implemented work (2025–2026). Use the linked docs for full detail.


ChangeDoc / code
Shopify App Pricing (plan handles free, appifire-ai-chat-plan-1)Shopify App Pricing
Upgrade via top-level plan picker (window.top.location) — fixes iframe “refused to connect”app/routes/app.billing.jsx
Paid detection by plan handle / Partner API (not “any active subscription”)app/lib/billing-plans.server.js, app/lib/partner-api.server.js
Buy credits gated on paid plan handleapp/routes/app.billing.buy-credits.jsx

ChangeDoc / code
Dashboard 5-step setup checklist (theme editor, appearance, sync, knowledge, chats)Dashboard plan §2.5 — app/routes/app._index.jsx, app/lib/setup-checklist-storage.js
Chats empty state simplified (no Knowledge Hub / Dashboard button row)AI chats / logsapp/routes/app.chat-logs.jsx
Timezone: browser auto-detect; OAuth no longer sets Shopify store TZTimezone planapi.settings-timezone.jsx, app/shopify.server.js
Settings default: email alert on min balance on, threshold 1prisma/schema.prisma, app/routes/app.settings.jsx
Shop lookup: normalized domain, case-insensitive, offline session cross-refapp/lib/shop-for-session.server.js
Custom chatbot avatar upload (512×512 WebP, preset custom)Appearance & custom avatarapp/lib/chat-avatar.server.js, app/routes/app.appearance.avatar.jsx
Knowledge Hub: FAQ tab (~50 Q&A), sanitizer strips placeholders, policy lines need full URLsWebsite knowledgewebsite-knowledge.server.js, app.knowledge.jsx
Knowledge save via FormData from React state (avoids huge hidden inputs truncating TEXT)app/routes/app.knowledge.jsx
Welcome email BCC on new install (REGISTRATION_NOTIFY_BCC)Welcome email & install notifications
App Store review — side nav, dashboard CTA, 3-day auto modal with snooze / “Already Placed Review”App Store review promptapp.jsx, app.review.jsx, app.review-prompt.jsx, app-store-review.server.js

ChangeDoc / code
CSS/DOM prefix apfcappifire-ai-chat (IDs, classes, localStorage keys); API field appifireAiChatUserId (legacy apfcUserId still accepted)extensions/appifire-chat/assets/chat-widget.js
Product cards under bot replies (slider, image, price, buttons)Storefront product cards
View Product → PDP; Get More Info → quoted title + focusProductextensions/appifire-chat/assets/chat-widget.js
Reply cleanup when cards show: keep name/price; drop tags & product URLscleanReplyForProductCards in product-cards.server.js
Product cards: reply text only (strict full-title match; no RAG chunk / shared-prefix matching)app/lib/product-cards.server.jsresolveProductCardsForChat
Multi-product prompt contract — fixed title / Price: / description blocks for reliable card parsingapp/lib/prompt-builder.server.js, extractProductTitlesFromReply
Industry education in chat — comparisons and category guidance when relevant to store niche (from Store Context)app/lib/prompt-builder.server.js
products.image_url from sync for thumbnailsProduct sync
Store currency on product cards and in replies (e.g. PKR 25,000)Store currency
Widget header uses avatarUrl from API (custom WebP + cache-bust)Appearance & custom avatar
Powered by AppiFire branding commented out (optional re-enable)chat-widget.js
Chat API returns products[]; GET /api/product-cardapi.chat.jsx, api.product-card.jsx

ChangeDoc / code
focusProduct + pageProduct in chat pipelineRAG & chat API, Vector call stack
Prompt: quoted product names, focus product, name+price-only when cards belowapp/lib/prompt-builder.server.js
Prompt + chunks: store currency (no hardcoded $)Store currency
Published products only in RAG/cards (status:active, published_status:published, published_at)RAG retrievalproduct-storefront.server.js, vector-search.server.js
RAG search uses recent chat history (CHAT_RAG_HISTORY_MESSAGES=8) + link follow-up boostRAG retrievalrag-search-query.server.js, rag.server.js
shops.currency_code synced from Shopify on product syncapp/lib/store-currency.server.js, migration 20260523130000_add_shop_currency_code
Sessions table snake_case column mappingprisma/schema.prisma, migration 20260519120000_session_snake_case_columns

Terminal window
npx prisma migrate deploy # website_faq, currency_code, chatbot_avatar_updated_at, product published_at, app_store_review_*, …
npm install # sharp (custom avatar)
# Re-sync products after currency_code / image_url migrations
shopify app deploy # theme extension + app

Env (optional): REGISTRATION_NOTIFY_BCC, WEBSITE_KNOWLEDGE_MAX_TOKENS, WEBSITE_FAQ_MAX_TOKENS, CHAT_RAG_HISTORY_MESSAGES (default 8; RAG retrieval only — see RAG retrieval doc), CHAT_HISTORY_MESSAGES (LLM reply context) — see .env.sample.