新型號到貨那天,我自己就把它上架了。
沒有寄信給工程師,沒有等三天,沒有先做一份 PDF 再請人貼上去。
我拍完照、填完規格、按下發布,官網上就有了。
AMAX 產品目錄官網 | CATALOG SITE
示意圖
- 大分類
- 群組
- 型式
- 型號規格欄位
這件事以前要走四步。
我做一份 PDF
打開去年的型錄檔,複製一頁,改型號、改規格、改照片。存成新的 PDF。
我寄信給工程師
「麻煩幫我上這個新型號,規格如附件,照片在雲端連結裡,謝謝。」
我等
三天。有時候一週。中間業務問我三次「官網好了沒」。
我再寄一次信
因為某一欄的規格值打錯了。
四步裡有三步是在等別人。
現在我是這樣做的:上架一個新型號
這一段是我實際的操作順序。不是簡化過的版本,就是這幾步。
我先登入後台
後台網址是官網加 /admin。用我的公司信箱登入,同事各有各的帳號,誰改了什麼有紀錄。沒登入的人打不開,也搜尋不到。
示意圖
用我的公司信箱登入
同事各有各的帳號
誰改了什麼有紀錄
沒登入的人打不開,也搜尋不到
我找到它該待的那一層
產品目錄是四層。我點進「大分類 → 群組 → 型式」,走到最後一層才是型號本身。走錯層的話會發現這一層下面根本沒有「新增型號」的按鈕 —— 系統不讓我把型號掛在錯的地方。
示意圖
- 大分類
- 群組
- 型式
- 型號
系統不讓我把型號掛在錯的地方
我填規格
規格欄位是一格一格的欄位,不是一個備註欄。我填完,它就是可以被篩選、被排序、被搜尋的資料,而不是一段文字。
- 欄位 placeholder
- 例:規格 A / 例:介面型式 / 例:數值
- 必填錯誤訊息
- 這一欄還沒填。型號、所屬層級是必填的,其他欄位可以之後補。
示意圖
一個備註欄一段文字
一格一格的欄位
可以被篩選可以被排序可以被搜尋
我上傳照片
照片直接從我的電腦傳到圖庫,不經過官網主機,所以大檔也不會卡。傳完會自動記一筆「這張圖被哪個型號用了」。
- 上傳中
- 上傳中… 這一步是直接傳到圖庫,關掉這頁會中斷。
- tooltip(圖庫的「掃描未使用檔案」按鈕)
- 列出目前沒有被任何一筆內容引用的檔案。掃描只是列出來,不會刪。
示意圖
我的電腦
圖庫不經過官網主機
記一筆「這張圖被哪個型號用了」
我按發布
發布後官網那一頁就存在了,網址是用型號自動生出來的固定網址。我不需要知道什麼是網址結構。
示意圖
在後台按發布
官網那一頁就存在了網址是用型號自動生出來的固定網址
從登入到發布,中間沒有任何一步需要別人。
那如果不是一個型號,是一整個系列呢?
這是我第二常做的事:整個系列改版、整個系列調順序、整個系列下架。我先講清楚哪些能一次做完、哪些不能 —— 因為這件事被講得太滿的話,你買回去第一週就會發現。
B-1|可以一次做完:調整整個系列的顯示順序
產品列表的順序是可以直接拖的,拖完存檔就是官網上的順序。不用一筆一筆改「排序」欄位填數字。
B-2|可以一次做完:刪掉一整層,而且刪之前先告訴我會波及誰
我要下架一整個型式時,系統會先算給我看:「這個動作會一併移除底下的 {n} 筆型號」——{n} 是真的去數過的那個數字,不是估的。我看清楚再按確認。
這不是嚇唬人的警語,是真的先去數過了才顯示的數字。
- 級聯刪除確認框標題
- 確認要移除這一層嗎?
- 級聯刪除確認框內文
- 這個動作會一併移除底下的 {n} 筆內容。移除後無法從後台復原。
- 確認按鈕
- 我知道,移除這 {n} 筆
- 取消按鈕
- 先不要
B-3|可以一次做完:圖庫批次清理
圖庫可以掃出「沒有任何一筆內容在用」的檔案,勾選後一次刪掉。這是唯一一個我會定期做的維護工作,一季一次,五分鐘。
B-4|做不到,我直接說
後台目前沒有「一次改掉整層型號的某個規格值」的按鈕。
會一次動到很多筆的是刪除和排序,規格值仍然是逐筆改。
如果你的實際情況是「每季要一次改掉幾百筆的價格或交期」,那要另外做匯入功能,這是一筆額外的開發,不是現成的。我們寧可在你買之前講,也不要在你上線之後才講。
判斷方式很簡單:如果你的改動是「結構」(誰在誰底下、誰排前面、誰不要了),後台一次做完。
如果你的改動是「數值」(幾百筆的價格、交期、庫存),那需要匯入,先跟我們講。
老闆說要出海,官網要有英文版。
這一段我要分兩件事講,因為它們的成熟度不一樣,混在一起講會騙到你。
C-1|網址與版面:已經上線在跑
一個網站要有兩種語言,最麻煩的不是翻譯,是網址、語言標記、搜尋引擎的對應關係,還有「使用者切語言時,會不會被丟回首頁」。
這一整套我們已經在自家另一個已上線的站上做完並跑在正式環境:兩種語言各自有自己的網址、各自的語言標記與搜尋引擎對應標籤、切換語言時停在原本的段落不會跳回最上面,而且在完全沒有 JavaScript 的情況下也能切。
示意圖
同一頁內容
語言一
自己的網址語言標記搜尋引擎對應標籤
語言二
自己的網址語言標記搜尋引擎對應標籤
切換語言時停在原本的段落;沒有 JavaScript 也能切
C-2|產品資料本身的雙語:schema 已經有,但要看你的資料
產品分類的名稱本身要能一份資料兩種顯示,這是資料庫層的事 —— 分類的「識別碼」與「顯示名稱」要拆開存,識別碼不隨語言變,顯示名稱一種語言一份。
這個結構我們在另一個產品的分類系統裡已經實作並上線。搬到你的型錄上是設定工作,不是研發工作。
C-3|誠實那一段
目前這個型錄官網已上線的客戶案,線上跑的是單一語言版本。
多語的路由層與資料層我們都有已上線的實作,但不是在同一個站上。
所以正確的講法是:「多語是我們做過、而且現在還在跑的東西,但你的站要開雙語,是一次要排進去的工作,不是打開開關。」
如果哪個廠商告訴你「勾一個選項就有英文版」,請他打開後台當場加一個語言給你看。
技術說明 · 以下改用第三人稱
四層分類,為什麼不是「多開三張表」
製造業的型錄幾乎都是四層以上:大分類 → 群組 → 型式 → 型號。多數 CMS 只給兩層,於是導入時常見的做法是硬開三張表,一層一張。這個做法在第一年可以動,第二年客戶說「我要多一層」的時候整個崩掉。
資料模型
這套系統的產品目錄由四張階層表構成:分類 → 群組 → 型式 → 型號,每一層都帶自己的排序欄位與網址片段,最底層掛規格欄位。
關鍵不在「剛好四層」,而在每一層的關係是泛型的 parent / child + sortable:層與層之間是同一種關係,所以要加第五層、或把某一層拿掉,是資料遷移的問題,不是重寫的問題。
示意圖
- 分類排序欄位網址片段
- 群組排序欄位網址片段
- 型式排序欄位網址片段
- 型號排序欄位網址片段規格欄位
層與層之間是同一種關係:parent / child + sortable
規格欄位怎麼跨產業
最底層的規格欄位在既有的上線案裡是強型別欄位(因為那是一個光通訊元件的站,欄位是產業專有的)。換到別的產業時,規格欄位改成 JSONB 存放,前台用欄位定義表決定顯示順序與單位。
這是本產品唯一需要逐案調整的地方,也是報價會依產業不同的原因。
階層操作的三個 API
| 能力 | 它實際做的事 |
|---|---|
| 排序 | 更新同一層節點的排序值,一次寫入,前台順序即為後台順序 |
| 級聯影響預覽 | 刪除前先向下遞迴計數,回傳「會一併移除 N 筆」給確認框顯示 |
| 網址片段路由 | 每層一個網址片段,組合成產品頁的固定網址;改層級名稱不影響既有網址 |
自動分類:刻意不打 LLM
系統裡有一支自動分類器,用途是把新進的品項落到正確的分類。它是純記憶體的關鍵字字典比對,刻意不呼叫任何模型:
- 多個分類同時命中 → 取排序值最小的那個,並標記
ambiguous交由人判斷 - 零命中 → 落入
uncategorized,不編造分類
選擇不打模型的理由有三個:分類結果要能被解釋(客戶會問「為什麼它跑到這一類」)、不能有 API 帳單、以及同樣的輸入永遠要得到同樣的結果。
這一段是本產品全頁唯一與「AI」沾邊的地方,而它的內容是「我們刻意不用」。
附帶的工程細節(技術方會追問的)
| 主題 | 做法 | 已知限制 |
|---|---|---|
| 圖檔上傳 | 前端向後端要一組限時憑證,檔案直傳物件儲存,不經應用主機;傳完回呼記帳 | — |
| 孤兒檔回收 | 掃描沒有任何內容引用的檔案 → 列出 → 人工確認 → 批次刪除;另有獨立清理腳本 | 掃描是列出不是自動刪,這是刻意的 |
| 表單防濫用 | 訂閱表單限流每小時 5 次 | 限流是單機記憶體實作,多台機器部署時要換成外部限流服務。這一點程式檔內已註明,不是「企業級防護」 |
| 表單流向 | 送出 → 限流 → 寄送通知信 → 落到後台成為工單(狀態:新進 → 已聯繫 → 已結案) | — |
| 搜尋引擎 | 自動產生 sitemap 與 robots、結構化資料標記、部落格與案例支援靜態產生 | — |
| 改版驗證 | 有自動化截圖流程,改版前後逐頁對照 | 目前截圖路徑是寫死的,產品化時要抽成設定檔 |
—— 技術說明結束。以下回到我。
在你問報價之前,我想先講誰不該買這個。
這套東西是為你做的
- 你有一份型錄,而且它的分類天生就有三層以上。
- 你的產品規格是可以列表的(尺寸、材質、規格值),不是一段一段的描述文。
- 你公司裡有一個人 —— 通常是業務助理或行銷 —— 願意當那個「負責更新的人」。這一點最重要,沒有這個人,最好的後台也會長草。
- 你希望詢價信有個地方可以追,而不是躺在誰的信箱裡。
- 你打算三年內不換官網。
這套東西不適合你
- 你要的是購物車與線上刷卡。這頁講的是目錄,不是電商;要交易功能是另一個題目。
- 你的產品只有 20 個,而且一年不改。那你需要的是一個五頁的靜態官網,比這個便宜很多。
- 你每季要一次匯入幾百筆價格。可以做,但那是額外的開發項目,不在標準範圍內。
- 你想要「AI 自動幫我把 PDF 變成產品頁」。那是另一個產品(/catalog-ai),這一頁沒有那個能力,兩者可以接在一起,但不是同一件事。
- 你需要一套自己能改程式碼的系統。我們交付的是可運作的網站與後台,不是一套授權你二次開發的框架。
這五條「不適合」裡只要中兩條,先別問報價,先跟我們講你的情況。
下一次新型號到貨,換你自己上架。
給我們一份你現在的型錄(PDF 或紙本都可以)和你官網的網址,我們會回你三件事:你的分類要幾層、哪些規格欄位要改成通用欄位、以及這樣一個站的範圍與時程。
本頁描述的是網站與內容管理系統。它不包含任何 AI 或模型判讀功能 —— 這是刻意的設計選擇,理由寫在區塊 6。