Dashboard
Signed in as admin
Preview Mode — Data shown is sample data. Connect Supabase + Stripe to see live data.
Revenue (June)
S$1,482
16 orders · Taxes incl.
↑ 18% vs May
Orders (June)
16
3 pending fulfilment
↑ 4 vs May
Avg. Order Value
S$92.6
Per transaction
↑ S$8.2
New Customers
11
5 returning
↑ 3 vs May
Revenue — Last 7 Months
Recent Orders
OrderCustomerProductsTotalPaymentFulfilmentActions
Low Stock Alert: Embun de Forêt 10ml — only 3 units remaining.
Order IDDateCustomerItemsTotalPaymentFulfilmentActions
1 item below reorder threshold — Embun de Forêt 10ml (3 units remaining)
Changes save to Supabase on Next.js build
ProductVariantSKUPriceStockLevelReorder AtStatusActions
Customer Accounts: Guest checkout enabled by default. Customers can optionally create accounts to save shipping info and view order history.
16 total customers
CustomerEmailPhoneOrdersTotal SpentLast OrderAccountActions
Create Discount Code
Active Discount Codes
CodeTypeValueMin. OrderUses LeftExpiresNoteActions
Total Leads
6
From QR scans
Vials Claimed
6
All at booth
Coupons Used
2
S$176 orders placed
Roadshow Lead Capture — Customers scan the QR code → fill name/email/phone on the promo page → get a unique 10% coupon + free 10ml vial. Leads appear here instantly. In the Next.js build, this syncs live from Supabase.
NameEmailPhoneScent ChoiceCoupon CodeRef #DateCoupon Used
Best Seller
Autumn Whisper
50ml — 7 units this month
Highest AOV
S$88
50ml full bottle
Coupons Redeemed
4
S$58 discount given
Repeat Rate
31%
5 returning customers
Units Sold by Product
Product10ml30ml50mlTotal UnitsRevenue
Autumn Whisper42713S$796
Coastal Embrace3148S$494
Embun de Forêt6129S$390
Discovery Kit (3ml×3)n/a9 kitsS$162
Total1341339 + 9 kitsS$1,842
Site Reference — Simply Yours
Complete overview of all features built and roadmap ahead. Last updated June 2026.
17
Pages Built
6
Admin Tabs
8
localStorage Keys
5
Pending for Go-Live

📄 Pages & Their Purpose

🏠 index.html — Homepage Live
  • Gold announcement bar (free shipping notice, dismissible)
  • Sticky nav: CSS grid 1fr/auto/1fr, account button, cart count, mobile hamburger
  • Hero with perfume image + CTA → catalog
  • Featured product grid (4 cards → product pages)
  • Brand story teaser + pillars section
  • Gifting banner with full-bleed image
  • Find Your Fragrance two-column section (new ✦)
  •   → Scent Quiz: 3 questions → maps to AW / CE / EF / Discovery Kit   → Bespoke Creation: 3-step form (who + occasion → notes multi-select → contact + size)
  • Bespoke requests save silently to sy_bespoke_v1 → visible in admin
  • Customer login modal: pre-filled Serene demo credentials, OAuth buttons
  • Newsletter sign-up section
  • Footer with all policy links + Staff login at 12% opacity
🛍️ catalog.html — Shop All Live
  • Filter bar: All / Woody / Floral / Fresh / Bestseller
  • 4-product grid with hover image swap + price display
  • Each card links to its dedicated product page
  • Mobile hamburger nav (opens fullscreen overlay)
  • Announcement bar + sticky nav
🧴 Product Pages (4 total) Live
  • Autumn Whisper · Coastal Embrace · Embun de Forêt · Discovery Kit
  • Thumbnail gallery with local Resources/ images (CDN refs removed)
  • Size selector (3ml / 8ml / 30ml / 50ml) with dynamic pricing
  • "Add to Bag" → writes to sy_cart_v1
  • Scent notes: Top / Heart / Base accordion
  • Notify Me (saves to sy_notify_v1)
  • Wishlist heart (saves to sy_wishlist)
  • Customer Reviews section with star display + write review form
  • Review submission saves to sy_reviews_v1 → visible in admin
  • Mobile hamburger nav
🛒 cart.html — Cart Live
  • Reads sy_cart_v1 from localStorage — persists across all pages
  • Qty +/− controls per item, remove button
  • Subtotal + shipping (free above S$80)
  • Gift wrap add-on (+S$4.90)
  • Promo codes: WELCOME10 (10%) · SYOPENING (15%)
  • "You might also love" upsell row (products not in cart)
  • Empty cart state with CTA
💳 checkout.html — Checkout Live
  • 3-step breadcrumb: Bag → Checkout → Confirmed
  • Contact info, full SG shipping address form
  • Delivery: Standard (S$5.90) / Express (S$12) / Free (auto above S$80)
  • Gift wrap + personalised card message field
  • Payment mock: card form + PayNow / Apple Pay / Google Pay / GrabPay buttons
  • Live order summary sidebar from localStorage
  • On confirm: generates SY-XXXX order number → saves to sy_last_order → redirect
  • Mobile: checkout steps hidden, logo + secure badge only
order-confirmation.html Live
  • Reads sy_last_order from localStorage
  • Order number, date, items summary, delivery estimate, total paid
  • 4-step delivery timeline (Placed → Processing → Dispatched → Delivered)
  • Referral invite (share for 10% off friend's first order)
  • Clears sy_cart_v1 on arrival
👤 account.html — Customer Portal Live
  • Prototype bypass: auto signs in as Serene Joseph (simplyyours.serene@gmail.com)
  • Dashboard: orders list, wishlist, addresses, account settings
  • Wishlist reads sy_wishlist from localStorage
  • Orders tab shows sy_last_order history
  • Sign out clears sy_customer_v1
  • At go-live: wire to Supabase Auth + real order history
📞 contact.html Live
  • Contact form: name, email, order #, subject dropdown, message
  • WhatsApp button (wa.me link)
  • Response hours table (Mon–Sat, SGT)
  • Social links: Instagram, TikTok, Facebook
  • Form shows success state (backend wire pending)
🚚 shipping.html Live
  • Free shipping hero banner (S$80+)
  • Singapore table: Standard S$5.90 / Express S$12 / Free
  • International table: Malaysia, AU/NZ, US, UK/EU, Other
  • Grid: Processing time, Packaging, Air freight, Lost order policy
  • 5-question FAQ accordion
🎁 gifting.html Live
  • Hero: "A scent that says exactly what you mean"
  • 3 feature cards: Wooden Box · Wax Seal · Personalised Card
  • Product showcase grid with Add to Cart (writes to localStorage)
  • Corporate gifting: custom branding, bulk orders, multi-delivery
  • Corporate enquiry → contact.html
📖 our-story.html Live
  • Full-bleed hero with perfume background
  • 3 story chapters: Origin · Philosophy · Craft
  • Founders section with brand values
  • Fade-up scroll animations, closing CTA → catalog
🔒 admin.html — Staff Portal Live
  • Login gate (BYPASS_FOR_PROTOTYPE=true — any credentials)
  • Dashboard: KPI cards, recent orders, low-stock alert, activity feed
  • Orders: table with status badges + detail modal
  • Inventory: stock levels + low-stock alerts
  • Customers: table with LTV + order count
  • Finance, Marketing, Products, Reports tabs
  • Reviews: manage customer reviews, approve/reject, reward codes
  • Bespoke Requests: live feed from website form, NEW badge, reply + mark read (new ✦)
  • QR Leads: roadshow pop-up lead list
  • Site Reference: this page
🎯 promo.html — Roadshow QR Landing Live
  • 3-question scent quiz → recommended product
  • Lead capture form: name, email, phone
  • For QR code display at events / pop-ups
  • Leads stored in localStorage → visible in admin QR Leads tab
404.html — Not Found Live
  • On-brand 404 with outlined gold numerals
  • CTAs: Return Home + Shop Collection
  • Quick links: Story, Gifting, Shipping, Contact, Cart
  • Mobile hamburger nav
📜 Policy Pages (3) Live
  • privacy-policy.html — PDPA section, OAuth data disclosure per provider, DPO contact
  • refund-policy.html — return window, conditions, process
  • terms-of-service.html — T&Cs with table of contents anchor nav
  • All 3 have mobile hamburger nav added

⚙️ Technical Systems Built

localStorage Keys (all prototype data)
sy_cart_v1Active cart items
sy_last_orderLast placed order
sy_wishlistSaved wishlist items
sy_customer_v1Logged-in customer
sy_admin_v1Admin session
sy_reviews_v1Customer product reviews
sy_notify_v1Notify-me email signups
sy_bespoke_v1Bespoke fragrance requests
Design System (CSS Variables)
--bg#090c07 — page background
--bg2 / --bg3#0f1309 / #141a0e — elevated surfaces
--gold#c49a5a — primary accent
--gold-light#e8c98a — hover / headings
--cream#f0ebe0 — primary text
--cream-dimrgba(240,235,224,0.6) — body text
--borderrgba(196,154,90,0.22) — dividers
--serifCormorant Garamond 300/400/500
--sansDM Sans 300/400/500
Nav & Mobile Pattern
  • Desktop: CSS grid 1fr auto 1fr, 70px height
  • Logo: 32px Cormorant Garamond, padding-top:4px, centered
  • Hamburger (≤768px): 3-line button → fullscreen overlay menu
  • Mobile menu: fixed overlay, dark bg, 32px serif links, ✕ close
  • Cart badge: live count from sy_cart_v1 on every page
  • Announcement bar: dismissible, updates nav top via JS
  • Staff link in all page footers at 10% opacity
  • All 17 pages have mobile-responsive nav ✓
Find Your Fragrance (Homepage)
  • Two-column section between gifting banner and newsletter
  • Scent Quiz (left): 3 questions → maps to one of 4 products using real catalog taglines and notes. Uses step dots + pill selection + addEventListener (not inline onclick)
  • Bespoke Creation (right): 3 steps
  •   Step 1: Who (3 choices) + Occasion (3 choices) on one page   Step 2: Fragrance notes multi-select (10 options) + free text   Step 3: Name, Email, Size preference → submit
  • Submit saves silently to localStorage — no email popup for customer
  • Admin receives request under Bespoke Requests tab with NEW badge
Customer Auth (Prototype Bypass)
  • Homepage login modal: pre-filled as Serene Joseph / simplyyours.serene@gmail.com
  • Any email accepted — sets sy_customer_v1 in localStorage
  • OAuth buttons present (Google, Apple, Facebook) — UI only for now
  • PDPA consent shown below forms
  • Go-live action: replace with supabase.auth.signInWithOAuth()
Admin Auth (Prototype Bypass)
  • Login gate active — BYPASS_FOR_PROTOTYPE = true accepts any credentials
  • Session stored in sy_admin_v1
  • Go-live actions: set flag to false, add Mathew & Serene's emails as admin users in Supabase Auth, consider TOTP MFA
Supabase Schema (SQL ready)
  • File: supabase-schema.sql — ready to paste into Supabase SQL editor
  • Tables: customers, customer_addresses, products, product_variants, product_images, inventory, orders, order_items, discounts, leads, admin_users, bespoke_requests, reviews
  • RLS (Row Level Security) enabled on all tables
  • Auto order number: SY-YYYY-XXXXXX
  • Seed data: all 4 products + variants + inventory levels
Product Images (Local)
  • All CDN references (simplyyours.co/cdn/…) removed ✓
  • Images served from Resources/ and assets/products/
  • AW: perfume_AW.png + orchid, gradient_bg, fabric thumbnails
  • CE: perfume_CE.png + mirror, glossy_white thumbnails
  • EF: orchid, gradient_bg, pastel_purple, mirror thumbnails
  • Background / hero: perfume_pastel_purple.png used for gifting banner

🚀 Go-Live Checklist

ItemStatusAction Required
Stripe payment integrationNot startedWire Stripe.js to checkout.html. Enable card, PayNow, GrabPay, Apple/Google Pay.
Supabase Auth — real credentialsNot startedSet BYPASS_FOR_PROTOTYPE = false. Add Mathew & Serene as admin users. Wire OAuth providers.
Resend transactional emailNot startedOrder confirmed, dispatch notification, contact form. Replace console.log placeholders.
Bespoke requests → Supabase + ResendNot startedReplace localStorage.setItem('sy_bespoke_v1') with Supabase insert + Resend email to Serene.
Real inventory in product pagesNot startedConnect product pages to Supabase. Disable "Add to Bag" when stock = 0.
Deploy to Cloudflare PagesNot startedPort HTML prototypes to Next.js. Connect to Supabase backend. Set domain to simplyyours.co.
Contact form backendPendingCurrently shows success UI only. Wire to Supabase leads table + Resend notification.
Admin KPIs — live dataPendingReplace mock KPI numbers with live Supabase queries. Wire revenue charts.

💡 Future Features Roadmap

🟡 Next Up (Post-Launch Phase 1)
📦
Monthly Vial SubscriptionS$18/month for a rotating 10ml discovery vial. Stripe recurring billing. Subscriber dashboard in account.html.Ready to design
🔍
Site SearchLive search bar in nav. Fuzzy-match on product names, scent notes, fragrance family.Medium effort
📊
Live Admin AnalyticsReplace mock KPI data with real Supabase queries. Revenue by date range, top products, repeat rate.Needed at launch
📱
WhatsApp Order UpdatesAuto-send status updates via WhatsApp Business API when order status changes in admin.High customer impact
🎀
Personalised Gift CardsDigital gift card (S$25 / S$50 / S$100). Purchasable online. Redeemable at checkout.Revenue opportunity
⚪ Phase 2 & Beyond
🎫
Simply Club LoyaltyPoints per purchase. Silver / Gold / Platinum tiers. Redeem for discounts or free samples.High retention value
🤝
Influencer Affiliate PortalUnique discount codes tracked per creator. Commission dashboard in admin. Auto payout.Growth channel
🇲🇾
Multilingual (EN / BM)Language toggle. Target Malaysian market. Malay copy for all product pages + checkout.Market expansion
📲
Progressive Web AppAdd to Home Screen. Offline cart persistence. Push notifications for order updates.Mobile experience
🌏
Regional ExpansionMulti-currency (MYR, AUD, USD). Localised shipping rates. Separate regional landing pages.Long-term growth
Revenue Breakdown
Line ItemAmount
By Payment Status
StatusOrdersValue
By Fulfilment Status
StatusOrdersValue
Discount Code Usage
CodeOrders UsingTotal RevenueEst. Discount Given
Gift & Special Orders
🏷 Discount Codes
CodeNoteValueUsageExpiresStatus
🛒 Buy More Save More
RuleTriggerDiscountActive
🎁 Gift with Purchase (GWP)
GWP rules automatically add the free gift to qualifying carts at checkout.
RuleMin SpendFree GiftActive
🤝 Purchase with Purchase (PWP)
PWP shows a discounted add-on offer to customers whose cart qualifies.
RuleQualifying TriggerAdd-on ItemDiscounted PriceActive
📣 Announcement Bar
Instant preview below. Wires to live site via Supabase config.
✦ Free standard shipping on orders S$80 and above · Use code ROADSHOW10 for 10% off ✦
Product Catalogue
Customer Reviews
DateCustomerProductStars ReviewReward CodeStatusActions
✦ Bespoke Fragrance Requests