版本更新記錄
查看 租借服務 by anlander 網站的所有版本更新、新功能及改進內容。
版本差異對比
| 功能 | v1.0.0 | v2.0.0 | v2.0.1 | v2.1.0 | v2.2.0 | v2.3.0 | v2.3.3 | v2.4.0 |
|---|---|---|---|---|---|---|---|---|
| 產品展示 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Stripe 付款 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| SEO 優化 | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 中文品牌名稱 | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 首頁轉換率優化 | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ |
| WhatsApp 客服按鈕 | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ |
| 現貨數量顯示 | - | - | - | - | ✓ | ✓ | ✓ | ✓ |
| URL 篩選持久化 | - | - | - | - | - | ✓ | ✓ | ✓ |
| 租期快速選擇 | - | - | - | - | - | ✓ | ✓ | ✓ |
| 出貨電郵通知 | - | - | - | - | - | ✓ | ✓ | ✓ |
| D-1 歸還提醒 | - | - | - | - | - | ✓ | ✓ | ✓ |
| 帳號登記/登入 | - | - | - | - | - | - | ✓ | ✓ |
| 表單式登入(無需 Google) | - | - | - | - | - | - | - | ✓ |
v2.4.0
功能更新2026-03-04以表單登記取代 Google OAuth 登入
完全棄用 Google OAuth,改為簡單「姓名 + 電郵 + 電話」表單登記/登入,解決 CSP 問題及 OAuth redirect 導致 state 遺失的問題。
新功能
- 新增表單式登記/登入(姓名、電郵、電話),無需 Google 帳號
- 重複電郵自動識別為登入(更新資料),新電郵自動建立帳號
- 新增 API endpoint POST /api/auth/register
改進
- 移除 Google OAuth、reCAPTCHA 依賴,簡化 CSP 政策
- 登入流程更穩定,無 OAuth redirect state 遺失問題
技術細節
- rental-api/src/routes/auth.ts - 新增 POST /register endpoint(email+name+phone,JWT cookie)
- rental-customer/src/lib/api.ts - 新增 registerUser() 方法
- rental-customer/src/lib/auth.ts - 新增 register action 至 Zustand store
- rental-customer/src/components/auth/SignInModal.tsx - 完全重寫為表單 UI
- rental-customer/src/components/Providers.tsx - 移除 GoogleOAuthProvider + GoogleReCaptchaProvider
- rental-customer/next.config.js - 簡化 CSP,移除 Google OAuth 相關域名
v2.3.3
修補更新2026-03-03修復「登入並預訂」按鈕
實作 Google OAuth 登入彈窗 UI,修復未登入用戶無法觸發登入流程的問題。同時修復 CSP 政策阻擋 Google OAuth 腳本載入的問題。
修復
- 新增 Google 登入彈窗(SignInModal),點擊「登入並預訂」即彈出 Google 帳號選擇器
- 登入成功後自動繼續預訂流程,直接跳轉至結帳頁
- 修復 CSP 政策阻擋 accounts.google.com 腳本載入,導致登入按鈕無法顯示
- 整合 reCAPTCHA v3 token 至登入請求
技術細節
- rental-customer/package.json - 新增 @react-oauth/google 依賴
- rental-customer/src/components/Providers.tsx - 加入 GoogleOAuthProvider + GoogleReCaptchaProvider
- rental-customer/src/components/auth/SignInModal.tsx - 新建 Google 登入彈窗組件
- rental-customer/src/app/products/[id]/page.tsx - handleBooking 改為顯示彈窗;新增 handleSignInSuccess
- rental-customer/next.config.js - CSP 加入 accounts.google.com(script/style/connect/frame-src)
v2.3.2
修補更新2026-03-03月租日期計算改為 30天制
月租日期計算由曆法月份改為 30天制:天數 ÷ 30,不足 30天當 1個月計,與快速租期按鈕保持一致。
修復
- 月租日期計算改為 30天制(1個月 = 30天),不足 30天當 1個月計
- 與快速租期預設按鈕(1月=30天、3月=90天、6月=180天)完全一致
技術細節
- rental-customer/src/app/products/[id]/page.tsx - calculateMonths 改為 30天制
v2.3.1
修補更新2026-03-03移除原價劃線顯示
移除首頁、產品列表及產品詳情頁的劃線原價顯示,因所有產品只有單一售價。
改進
- 移除首頁產品卡片的劃線原價顯示
- 移除產品列表頁的劃線原價顯示
- 移除產品詳情頁的劃線原價顯示
技術細節
- rental-customer/src/app/page.tsx - 刪除 original_price 劃線 span
- rental-customer/src/app/products/page.tsx - 刪除 original_price 劃線 span
- rental-customer/src/app/products/[id]/page.tsx - 刪除 original_price 劃線 span
v2.3.0
功能更新2026-03-02URL 篩選持久化、租期快選、批量訂單操作、出貨電郵通知
全面優化 UX 體驗:產品篩選條件持久化至 URL、租借頁面新增快速租期按鈕、結帳錯誤訊息更精確。後台新增批量訂單操作。API 新增出貨電郵通知及 D-1 歸還提醒。
新功能
- 租借詳情頁新增快速租期選擇按鈕(日租:3天/1週/2週;週租:1週/2週/4週;月租:1月/3月/6月)
- 出貨時系統自動發送電郵通知客戶(包含訂單號、順豐單號、到期日)
- D-1 歸還提醒:租約到期前一日自動發送 SMS + Email
- Admin 訂單列表新增批量選擇及批量狀態更新功能
改進
- 產品篩選條件(分類、租期、搜尋、排序)持久化至 URL 參數
- 書籤或分享頁面後,篩選狀態完整還原
- 結帳頁面顯示具體錯誤原因(無可用設備、日期衝突等)而非通用提示
技術細節
- rental-customer/src/app/products/page.tsx - 使用 useSearchParams 持久化篩選
- rental-customer/src/app/products/[id]/page.tsx - 新增快速租期預設按鈕
- rental-customer/src/app/checkout/page.tsx - 改善錯誤解析邏輯
- rental-admin/src/pages/Orders.tsx - 新增多選 + 批量操作
- rental-api/src/config/brevo.ts - 新增 shippingEmail, returnReminderEmail 模板
- rental-api/src/routes/admin.ts - ship endpoint 新增電郵通知
- rental-api/src/routes/cron.ts - 新增 /return-reminder-d1 endpoint
v2.2.0
功能更新2026-02-21QR Code 圖片下載、產品現貨數量顯示
Admin 後台新增 QR Code 圖片下載功能,方便管理員列印 QR Code 貼喺實體設備上。客戶網站產品列表改為顯示實際現貨數量,令用戶更清楚了解庫存情況。
新功能
- Admin 後台設備列表新增 QR Code 圖片下載按鈕
- 點擊即時生成 256×256 高解析度 QR Code PNG 圖片
- 下載檔案自動以設備編號命名(QR-{設備編號}.png)
- 使用 High 錯誤修正等級,即使部分遮蔽仍可掃描
改進
- 產品列表頁面現貨標籤改為顯示實際數量(例如「現貨 5 部」)
- 首頁精選產品同步顯示實際現貨數量
- 之前 3 部以上只顯示「有貨」,現在統一顯示「現貨 X 部」
- 缺貨時維持顯示「已租罄」紅色標籤
技術細節
- rental-admin/src/pages/Devices.tsx - 新增 downloadQRCode function + Download 按鈕
- rental-admin/package.json - 新增 qrcode.react 依賴
- rental-customer/src/app/products/page.tsx - 修改現貨數量顯示邏輯
- rental-customer/src/app/page.tsx - 首頁同步修改現貨數量顯示
v2.1.0
功能更新2026-02-01首頁內容大改版 - 轉換率優化
全面重新設計首頁內容,新增多個 Section 以提升用戶體驗及轉換率。包括租借流程說明、使用場景、客戶評價、FAQ 常見問題等。
新功能
- 新增頂部促銷 Banner(新客戶首租 9 折優惠碼 FIRST10)
- 新增「如何租借」4 步驟流程說明
- 新增「適合什麼場景」Section(旅遊、商務、活動、家用)含精美圖片
- 新增「客戶評價」Section(4.8/5 星,500+ 評價)
- 新增「常見問題 FAQ」Section(6 個常見問題及答案)
- 新增 CTA 行動呼籲 Section
- 新增浮動 WhatsApp 按鈕(右下角)
- 新增 WhatsApp 客服連結(6112 4469)
改進
- Hero 區域新增評分顯示(4.8/5 星)
- Hero 區域新增服務亮點清單(免運費、按金全退、24小時客服)
- 產品卡片新增「按金全退」綠色標籤
- Footer 擴充為 4 欄,新增營業時間、快速連結
- 「為何選擇我們」改為 6 個特色(新增品質保證、彈性租期)
技術細節
- page.tsx - 完全重寫首頁,新增 FAQ、評論、場景等數據
- 使用 Unsplash 免費圖片作為場景示意圖
- FAQ Section 使用可展開/收合的手風琴式設計
- 新增 WhatsApp SVG icon 及浮動按鈕
v2.0.1
修補更新2026-02-01網站品牌名稱更新
將網站名稱從 "Rental by anlander" 更改為 "租借服務 by anlander",統一使用中文品牌名稱,提升本地用戶體驗。
改進
- 網站標題更改為「租借服務 by anlander」
- PWA manifest.json 名稱更新為中文
- 所有頁面 header 及 footer 品牌名稱統一
- OpenGraph 及 Twitter Card 標題更新
- JSON-LD 結構化數據中的品牌名稱更新
技術細節
- layout.tsx - 更新 metadata 及 JSON-LD
- page.tsx - 更新頁面標題及 footer
- products/page.tsx - 更新 header/footer
- products/[id]/page.tsx - 更新 header/footer
- products/layout.tsx - 更新 OpenGraph 標題
- products/[id]/layout.tsx - 更新動態 metadata
- public/manifest.json - 更新 PWA 名稱
- changelog/page.tsx - 更新 header 品牌名稱
v2.0.0
重大更新2026-02-01SEO 及 AI 爬蟲優化版本
全面提升網站的搜尋引擎優化 (SEO) 及 AI 爬蟲可讀性,確保網站能被 Google、Bing 及各大 AI 助手 (ChatGPT、Claude、Perplexity) 正確索引及理解。
新功能
- 新增 robots.txt 檔案,明確允許所有搜尋引擎及 AI 爬蟲存取
- 新增動態 sitemap.xml,自動生成所有頁面的網站地圖
- 新增 JSON-LD 結構化數據 (Schema.org),包含 Organization、WebSite、LocalBusiness、ItemList 資訊
- 新增 /changelog 頁面,記錄所有版本更新
- 新增版本號顯示於網站 Footer
改進
- 改進各頁面 metadata(標題、描述、關鍵字)
- 新增 OpenGraph 標籤,優化 Facebook、LinkedIn 等社交平台分享預覽
- 新增 Twitter Card 標籤,優化 X (Twitter) 分享預覽
- 新增產品頁面動態 metadata,每個產品都有獨立的 SEO 設定
- 新增 canonical URL,避免重複內容問題
- 新增語言標籤 (zh-HK, zh-TW),支援多語言搜尋
安全
- 禁止搜尋引擎索引 /checkout 及 /orders 敏感頁面
技術細節
- robots.txt - 允許 GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Anthropic-AI, Cohere-AI
- sitemap.ts - 使用 Next.js MetadataRoute 自動生成
- layout.tsx - 添加完整 JSON-LD 結構化數據
- products/layout.tsx - 產品列表頁 metadata
- products/[id]/layout.tsx - 產品詳情頁動態 metadata (generateMetadata)
v1.0.0
重大更新2026-01-31初始版本
網站正式上線,提供完整的設備租賃服務。
新功能
- 產品展示頁面(WiFi Router、充電寶)
- 產品詳情頁面,含租期選擇及價格顯示
- 購物車及結帳流程
- Stripe 安全支付整合
- reCAPTCHA v3 防機器人保護
- 響應式設計,支援手機及桌面裝置
- 產品圖片自動從 anlander.com 同步
安全
- HTTPS 加密傳輸
- Stripe 付款安全處理
- reCAPTCHA v3 驗證
技術細節
- Next.js 14 App Router
- React 18 + TypeScript
- Tailwind CSS 樣式框架
- Zustand 狀態管理
- Cloud Run 部署
- Cloud Firestore 資料庫