iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
Modern Web

用 LINE OA 打造中小企業訂單系統:從零開始的 30 天實作紀錄系列 第 12

不再漏單!自動推播新訂單到管理者群組

  • 分享至 

  • xImage
  •  

昨天我們成功將訂單寫入 MongoDB,今天要進一步解決「通知店家」的問題。

顧客下單後,管理者不能每天盯著資料庫,因此需要透過 LINE Push API,自動將新訂單推播到指定的群組或帳號,確保店家第一時間收到提醒。

本文將帶你完成推播設定,並示範如何讓新訂單自動通知管理者群組。


為什麼需要自動推播?

  • 店家不可能隨時打開後台查看訂單。

  • 即時通知能降低漏單風險。

  • 讓 LINE 訂單系統真正符合中小企業日常使用習慣。


Push API 的概念

  • 與 Reply API 的差異:不需要使用者先講話,系統可主動發訊息。

  • 適合「新訂單提醒」「狀態更新通知」。

  • Push API 限制:需記錄目標群組 ID 或使用者 ID。


如何取得管理者群組 ID

  1. 將 Bot 拉進 LINE 群組。

小提醒!
要先將以下加入群組的權限打開喔
https://ithelp.ithome.com.tw/upload/images/20250926/20178868hOuOu7CeQO.png

  1. 在群組裡發言,Webhook event 中會帶有 groupId

  2. 在程式中 console.log(event),記下這個 groupId
    https://ithelp.ithome.com.tw/upload/images/20250926/20178868HFPRlpJTk9.png

  3. 建議存入 .env 或 MongoDB 設定集合,避免硬編在程式中。


資料流示意

https://ithelp.ithome.com.tw/upload/images/20250926/20178868HmM8hCqEkI.png


程式碼範例

建立通知工具

// utils/notify.js
async function notifyNewOrder(client, groupId, order) {
  const itemsText = order.items
    .map(it => `${it.productName} x ${it.quantity} ($${it.price})`)
    .join("\n");
    
  const total = order.items.reduce((sum, it) => sum + it.price * it.quantity, 0);

  const message = {
    type: "text",
    text: `🔔 新訂單通知\n顧客ID: ${order.userId}\n${itemsText}\n總金額: $${total}\n狀態: ${order.status}`,
  };

  await client.pushMessage(groupId, message);
}

module.exports = { notifyNewOrder };

在 API 呼叫通知

const { notifyNewOrder } = require("./utils/notify");

// 記得要建立 line client

// 在 /orders 建立訂單後
const order = await Order.create({ ... });
await notifyNewOrder(client, process.env.MANAGER_GROUP_ID, order);

推播訊息設計範例

  • 簡單文字版

    🔔 新訂單通知
    顧客ID: U12345
    商品: 紅茶拿鐵 x 2
    總金額: $120
    狀態: Pending
    
  • Flex Message 版(更美觀,未來可優化項目):

    • 商品列表 → Box 排版。

    • 狀態欄位加上顏色標記。

    • 適合訂單量多時的群組顯示。


成果

https://ithelp.ithome.com.tw/upload/images/20250926/20178868L50KQoq9ZS.png


未來擴充方向

  • 推播到多個角色(老闆、出貨員)。

  • 與訂單狀態變更整合(Day 13、Day 14)。

  • 結合 LINE Notify,提供更細緻的通知機制。


重點回顧

  • 理解 Push API 與 Reply API 的差異

  • 學會如何即時通知管理者群組,降低漏單風險。

  • 讓系統更接近實際營運場景,從「能下單」邁向「能即時管理」。

明天(Day 13),我們即將會對訂單的狀態做管理,讓功能更完整,也能配合 Push API 做到針對狀態變動推播給合適的人員。


上一篇
讓訂單真正落地:Express API 與 MongoDB 寫入
系列文
用 LINE OA 打造中小企業訂單系統:從零開始的 30 天實作紀錄12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言