如何在 LINE 查詢 WooCommerce 訂單資訊


Neuron AI 是市面上少數以 PHP 為主的 AI 框架,整合 WordPress 後可以透過自然語言管理網站或是讓顧客直接在 LINE 進行下單、預約、填寫表單,這篇文章分享我利用它做了一支名為「 WP 網站助手」的外掛,成功實現了查詢文章以及查詢訂單這兩個功能。

前陣子 OrderNotify 訂單推播外掛的更新中加入了 LINE 多官方帳號來接收訂單通知的功能,我自己也開始這樣用了之後發現,當訂單進來時我是傳送後台的訂單連結去查看詳細資訊,但在手機上看不太方便,就想說如果可以直接在 LINE 裡面問不就更快?

於是思考了這樣的解決方案:

  1. 使用 WooCommerce MCP server 取得訂單資料
  2. 使用 n8n 的 MCP node 作為 client 來呼叫 WooCommerce MCP server
  3. 透過 n8n 的 API 作為 webhook 提供給 LINE Messaging API 呼叫

這樣的解法理論上應該是可行,但查詢的速度想必不會快到哪裡去,中間卡一層 n8n 主機才能跟網站 API 溝通,萬一這主機不夠力或是剛好遇到網站主機變慢的情況,這使用體驗一定不會太好。但秉持著實驗精神還是實際走了一次,結論是:MCP server 根本跑不動 > <

Github 上面的 WooCommerce MCP server 完全不知道該怎麼用,載回來後 build 就噴錯,叫 AI 修一下雖然搞定,但要透過 npx 就能執行又是另外一回事,矇著眼叫 AI 改,丟上 n8n 還是不行,於是改用 Cursor、Claude 來呼叫一樣抓不到。

在一整個早上持續把錯誤訊息餵給 AI 的過程中,我看不懂半行它寫的程式碼,雖然它每次修改都解釋的頭頭是道,但我實際使用就是不行,透過 AI 解決問題的過程就是不停的點點點,有一種在玩吃角子老虎機的感覺,解決了就是運氣好,沒解決只能一直投幣進去賭它下一回合會解決…

最後我放棄這條路,想說自幹 MCP server,但官方沒出 PHP SDK,社群版本有但需要另外自己弄語言模型的整合,光想想就覺得工程浩大,幸好老天爺幫了一把,讓我找到 Neuron AI 這款開源的 AI 框架。

LINE 查詢文章與訂單內容

Neuron AI 是一家專門做 AI 服務監控軟體的廠商 Inspector 所釋出的開源框架,重點是這個框架採用 PHP 撰寫,在這 AI 爆發世代卻被忽視的 PHP 有了一絲曙光 🥳,裡面整合了現在熱門的 AI 技術,像是 Tool、Function call、RAG、MCP Server 等等,更能搭配他們的監控服務來查看 AI 應用的使用狀況。

有了這框架後我的解決方案變成這樣:

  1. 弄一支 WordPress 外掛叫做 WP 網站助手
  2. 開好 API 提供給 LINE Messaging API 呼叫

這方案比起 n8n 單純了許多,基本上就是直接從網站主機提供語言模型的回答結果,實作後覺得速度還算 OK,最終完成的功能有兩個,第一個是根據文章 ID 回答文章內容,我拿「Vibe coding 入門:開發 WordPress 外掛」這篇來測試,結果如下:

第二個是根據訂單 ID 取得訂單內容:

Neuron AI 的基本邏輯

Agent 類別是實現所有語言模型互動的基礎,裡面可以設定模型供應商、提示詞以及要呼叫的工具,Agent 建立好之後能使用 chat 方法傳入要問的問題,就能取得模型的回答結果,安裝的部分透過 composer 即可:

composer require inspector-apm/neuron-ai

建立 Agent 以及設定提示詞,我是用 OpenAI API,帶入 API Key 跟要使用的模型即可:

Tool 的部分就是跟網站互動的環節,首先是根據文章 ID 取得內容:

這邊會使用 Tool 類別的 make 方法來製作工具,裡面的參數就是要給語言模型看的提示詞,接下來告訴語言模型需要什麼資料才能跟網站互動,這邊用的是文章 ID,有四個參數要指定,分別是資料名稱、型別、描述以及是否必填。

因為我們是要用文章 ID 來作為傳送的資料,因此這邊用的是 article_id,在接下來的 setCallable 方法中就能把 article_id 當做參數傳入函式裡面,剩下的就可以用我們熟悉的 get_post 帶入 post_id 來取得文章內容後回傳,語言模型拿到資料後就可以進行回答。

第二個部分是查詢 WooCommerce 的訂單資料:

基本上跟用文章 ID 取得內容一樣,只是這次換成用訂單 ID 取得訂單內容,這邊遇到一個小問題是我本來是直接用 order 物件回傳,但發現到有太多沒必要的資料,覺得訂單格式能應該精簡一點會比較好。

懶得自己整理的我於是想到了 WC REST API,我去翻它取得訂單資料的 API,格式整齊多了,於是就把程式碼貼過來用,上面的 get_order_data 方法就是取得訂單資料的部分,將來要新增或刪減回傳的訂單資料都可以再自行處理。

而且我覺得 AI 很聰明的地方在於我一律都是回傳完整的遞單資料,而它會根據我的問題進行精準的回答,像是我問訂單狀態,它只會回「處理中」,問訂單金額只會回答「1,000 元」,這在使用感受上很不錯,不會有多餘的廢話。

搞定 Agent 後接下來就是要實作如何呼叫它,由於我這邊是使用 LINE Messaging API 進行串接,之後要換成其他聊天軟體都行,實作如下:

參數 $question 是 LINE Messaging API 接收到的問題,然後使用 Agent 的 chat 方法傳入一個陣列,裡面是 UserMessage 物件,帶有一個使用者問題的參數,最後就能用 getContent 取得語言模型回答的內容,只要把問題丟進去,Agent 就會自動從 Tool 尋找對應的資料。

Neuron AI 技術文件:https://docs.neuron-ai.dev/

各種有潛力的應用場景

透過 Neuron AI 我覺得最棒的地方就是 Tool 裡面的呼叫方式、回傳格式全部都可以由開發者自行設計,再也不會受限於既有的自動化工具或是別人寫好的 MCP server 來取得,只要你會使用 WordPress API 就能在 LINE 裡面做到網站的基本操作:

  • 新增/更新文章
  • 新增/刪除訂單
  • 啟用/停用外掛
  • 安裝佈景主題

比較進階的話還可以用 WP CLI 去操作更底層的行為,最無敵的應用我覺得是配合各種外掛,像是:

  • 搭配預約外掛完成預約流程
  • 搭配 WooCommerce 瀏覽商品&下單
  • 搭配表單外掛填寫報名資料
  • 搭配網站分析外掛詢問網站瀏覽狀況

繼續寫我可以寫上三天三夜都寫不完XD,雖然在實作上一定還會遇到不少問題,但重點它是 PHP 啊,自己能看得懂的程式碼一定都有辦法改,不想再叫 AI 去寫自己不會的程式語言了,連要怎麼問都不知道…

WP 網站助手的下一步

首先要做身份認證的機制,不然不小心加入這個官方帳號的陌生人也都能查看訂單資訊,目前的想法是後台先弄個 LINE 登入來取得 user ID,之後可以用 LIFF 在 LINE 裡面做會員註冊,註冊後再檢查他的會員權限可以請求哪些 Agent Tool。

其次是記憶上下文的功能,這部分 Neuron AI 已有內建,只要修改一下把對話紀錄儲存起來,就能針對同一張訂單繼續問下去。我應該會先把 WooCommerce 的部分整合完成,尤其是分析那一塊,希望能做到用問的查詢上個月的業績、最熱賣的商品是什麼等這些報表資訊。

你對於這個技術有什麼想法嗎?有任何好點子歡迎加 LINE 跟我一起腦力激盪吧,我們下週見~

WordPress 開發日常

Read more from WordPress 開發日常

原本努力了一個半月的新產品眼看就要正式釋出了,但在請了幾位客戶幫忙測試後,毅然決然暫停開發,主因是新產品有一些致命且短期無法解決的問題,再加上收入模式不明確,繼續開發下去會把自己推入險境中。 反而是請客戶試用的過程中,收到不少新功能的建議,考量到要顧好既有客戶以及營收狀況,還是決定先以既有產品的擴充功能為主,把營收站穩後再來另開戰場。 工作佔比 五月份總工作時數為 66.98 小時,比四月增加了 1.34 小時。各類工作佔比如下: 行銷:14% 產品更新:38% 產品研發:48% 這個月從下半月開始,全面採用 Vibe Coding 模式開發,在離開電腦前下好指令,回來後再驗收成果,一開始覺得很爽快,有一種人不在電腦前還是有進度的錯覺,尤其是在寫新外掛的雛形時很快就能獲得一些成果。 但如果寫流程比較多的功能,在驗收時就會開始感受到混亂,像是引用錯參考資料或是沒有遵循設計模式,一個檔案超過 500 行是家常便飯,事後反而要花時間在釐清甚至重新整理它的寫法,這部分我覺得應該可以透過提示詞來慢慢跟它磨合,就像以前跟朋友一起合作開發一樣,需要把相關的事項溝通清楚。 行銷 內容行銷...

最近常用 AI 產生程式碼,結果一堆程式自己都看不懂,只有錯誤發生時才會回頭研究到底寫了什麼。想說乾脆寫篇文章記錄一下,當作學習筆記。本篇主題是 OpenAI API 與 WordPress 的整合,讓 AI 能直接操作 WordPress。 初探工具請求(Function calling) 像 GPT 這類自然語言模型是靠訓練資料回應問題,但資料若過時,或想取得即時資訊,模型本身無法處理。這時可以透過「工具請求(Function calling)」來解決。 原理是:先告訴 AI 有哪些工具可用,當對話中出現相關需求,AI 就能自動判斷是否要使用某個工具。這些工具可以是 WordPress 的函式(如 WP_Query 查文章),也可以是外部 API(例如 Google 搜尋),執行後把結果再交給 AI 處理並產出回應,自然語言化地回答使用者。 適用場景 1. 整合客服機器人 如果你想設計聊天介面給其他人使用,像是客服機器人外掛,就很適合採用這個技術來取得網站內的資訊,像是讓客人查詢商品、訂單相關資訊、搜尋產品使用說明文件,或是讓管理員查詢營業額、網站瀏覽數據。...

過去我一直覺得,接收管理員通知用 Email 就夠了。如果訂單量不大,靠主機或第三方發信服務,其實也能運作得很順利。但後來與客戶訪談時發現,很多老闆根本不會用 Email,就算有,也常被廣告信和雜訊淹沒。 我自己試過很多收信軟體,試圖藉由工具來過濾重要訊息,但過不了多久,「重要信件」又變得滿天飛。雖然我會每天安排時間檢查,但有些緊急事件,例如新訂單通知,我希望能即時知道。 手機上的 App 通常只能根據「有新郵件」來推播,還找不到能針對「特定寄件者」推播的服務。因此我預設會把 App 的通知功能關掉,避免不緊急的訊息干擾我。 用 LINE 收通知也一樣,目前沒辦法只針對特定對象推播,只能全開或全關。這讓我想過是不是該換個沒那麼常用的通訊軟體來接收通知,但又懶得裝新 App,只好……自己開發一個外掛來解決了(?) 實機展示 要能在手機上接收到訂單通知,有三個關鍵技術:Web Push、Service Worker,以及 Progressive Web App,這邊先跳過他們,如果你也想在手機上收到訂單通知可以參考以下步驟: 1. 下載 DWP 網站助理...