WooCommerce 是 WordPress 生態中最重要的電商外掛之一。它把 WordPress 從內容管理系統擴充為線上商店,提供商品、購物車、結帳、訂單、金流、物流、折價券、稅務與報表等功能。若你要用 WordPress 建立電商網站,WooCommerce 通常是第一個需要深入理解的選項。

本附錄學習目標

理解 WooCommerce 的資料模型、商店設定、商品類型、結帳流程、訂單管理與客製化開發重點,能評估一個 WordPress 網站是否適合使用 WooCommerce 建置電商功能。

B.1 WooCommerce 是什麼

WooCommerce 是一套開源電商外掛,由 Automattic 相關團隊維護。安裝後,WordPress 會新增商品、訂單、顧客、折價券、商店設定與報表等功能。它的核心優勢是與 WordPress 內容系統整合良好,並有龐大的主題與擴充外掛生態。

WooCommerce 適合以下情境:

  • 品牌官網需要加入商品銷售功能。
  • 小型到中型商店需要自行掌握網站與資料。
  • 需要高度客製商品頁、內容行銷與 SEO。
  • 需要串接特定金流、物流、會員、發票或 ERP 系統。

若網站需要極大量商品、極高交易量或複雜多倉儲流程,仍可使用 WooCommerce,但必須更重視主機、快取、資料庫效能與系統架構。

B.2 安裝後的核心頁面與設定

WooCommerce 安裝後通常會建立或指定幾個核心頁面:商店、購物車、結帳、我的帳號。這些頁面是結帳流程的骨架,不能隨意刪除。

基本商店設定

  • 商店地址:影響稅務、運送區域與預設幣別。
  • 幣別:決定前台價格顯示與付款金額。
  • 商品單位:重量與尺寸會影響物流計算。
  • 帳號與隱私:設定是否允許訪客結帳、是否自動建立帳號。
  • 電子郵件:訂單通知、顧客通知與商店管理者通知。

商店上線前檢查

  1. 確認商店頁、購物車頁、結帳頁與我的帳號頁都存在。
  2. 設定正確幣別、稅務與運送地區。
  3. 測試至少一筆完整訂單。
  4. 確認顧客與管理者都能收到 email。
  5. 確認隱私權政策、退換貨政策與付款說明。

B.3 商品類型與商品資料

WooCommerce 的商品不只是文章標題與內容,它還包含價格、庫存、運送、屬性、變化、圖片、分類、標籤與交叉銷售資料。

常見商品類型

  • 簡單商品:最常見商品,例如一本書、一件衣服、一個課程名額。
  • 可變商品:有尺寸、顏色等變化,例如同一件衣服有 S/M/L。
  • 虛擬商品:不需要物流,例如線上諮詢、課程服務。
  • 可下載商品:購買後可下載檔案,例如電子書、素材包。
  • 群組商品:把多個商品組合展示。
  • 外部/聯盟商品:商品頁在本站展示,但購買導向外部網站。

商品屬性與變化

屬性是商品的規格,例如尺寸、顏色、材質。當屬性用於可變商品時,每個變化都可以有自己的價格、庫存、SKU 與圖片。設計商品資料時,要避免把「分類」與「屬性」混在一起。

例如服飾商品可這樣設計:

  • 商品分類:上衣、褲子、外套。
  • 商品屬性:尺寸、顏色、材質。
  • 商品標籤:夏季、熱賣、限量。

B.4 購物車與結帳流程

WooCommerce 的核心流程是:瀏覽商品 → 加入購物車 → 填寫結帳資料 → 選擇付款與運送方式 → 建立訂單 → 完成付款 → 訂單狀態更新。

結帳欄位

結帳欄位包含帳單資訊、運送資訊、訂單備註與付款方式。不同國家、物流與金流需求會影響欄位設計。若要修改欄位,應優先使用可靠的結帳欄位外掛或 WooCommerce hooks,而不是直接改核心檔案。

常見訂單狀態

  • Pending payment:等待付款。
  • Processing:已付款,等待出貨或處理。
  • Completed:訂單完成。
  • On hold:保留中,常見於人工確認付款。
  • Cancelled:已取消。
  • Refunded:已退款。
  • Failed:付款失敗。

B.5 金流、物流與稅務

金流

WooCommerce 本身提供付款方式架構,實際付款通常透過金流外掛串接,例如信用卡、PayPal、Stripe、銀行轉帳、貨到付款或各地區第三方金流。金流外掛必須特別注意安全性、維護狀態與測試模式。

物流

物流設定通常包含運送區域、運送方式與運費規則。基本方式有固定運費、免運費與到店取貨。若要串接超商取貨、宅配 API 或即時計算運費,通常需要地區性物流外掛。

稅務

稅務設定與商店所在國家、銷售地區、商品類型有關。課程網站可先理解稅率、含稅/未稅價格顯示與發票需求;正式商店則應依當地法規與會計建議設定。

B.6 WooCommerce 的資料與開發模型

WooCommerce 使用 WordPress 的 CPT 與 metadata 架構管理商品與訂單,同時也有自己的資料表與 CRUD API。開發時應優先使用 WooCommerce 提供的函式與物件,不要直接依賴資料表細節。

取得商品資料

$product = wc_get_product($product_id);

if ($product) {
    echo esc_html($product->get_name());
    echo esc_html($product->get_price());
}

判斷 WooCommerce 是否啟用

if (class_exists('WooCommerce')) {
    // WooCommerce 已啟用,可以執行相關功能
}

常見 Hook 情境

  • 在商品頁加入額外資訊。
  • 在加入購物車前檢查條件。
  • 在結帳後把訂單資料送到外部系統。
  • 在 email 中加入自訂訊息。
  • 在後台訂單頁顯示額外欄位。
add_action('woocommerce_single_product_summary', 'wp2026_product_note', 25);
function wp2026_product_note() {
    echo '<p class="product-note">' . esc_html('購買前請確認商品規格。') . '</p>';
}

B.7 實務維運與效能注意事項

  • 備份:電商網站訂單變動頻繁,備份頻率應高於一般內容網站。
  • 測試站:更新 WooCommerce、金流或物流外掛前,先在 staging 測試完整購買流程。
  • 快取:購物車、結帳、我的帳號頁通常不應被整頁快取。
  • Email:使用 SMTP 或交易型郵件服務,避免訂單信漏寄。
  • 安全:強制 HTTPS,管理員使用強密碼與雙因素驗證。
  • 紀錄:保留付款、物流與錯誤紀錄,方便追查訂單問題。

B.8 參考資料