WooCommerce 是 WordPress 生態中最重要的電商外掛之一。它把 WordPress 從內容管理系統擴充為線上商店,提供商品、購物車、結帳、訂單、金流、物流、折價券、稅務與報表等功能。若你要用 WordPress 建立電商網站,WooCommerce 通常是第一個需要深入理解的選項。
理解 WooCommerce 的資料模型、商店設定、商品類型、結帳流程、訂單管理與客製化開發重點,能評估一個 WordPress 網站是否適合使用 WooCommerce 建置電商功能。
B.1 WooCommerce 是什麼
WooCommerce 是一套開源電商外掛,由 Automattic 相關團隊維護。安裝後,WordPress 會新增商品、訂單、顧客、折價券、商店設定與報表等功能。它的核心優勢是與 WordPress 內容系統整合良好,並有龐大的主題與擴充外掛生態。
WooCommerce 適合以下情境:
- 品牌官網需要加入商品銷售功能。
- 小型到中型商店需要自行掌握網站與資料。
- 需要高度客製商品頁、內容行銷與 SEO。
- 需要串接特定金流、物流、會員、發票或 ERP 系統。
若網站需要極大量商品、極高交易量或複雜多倉儲流程,仍可使用 WooCommerce,但必須更重視主機、快取、資料庫效能與系統架構。
B.2 安裝後的核心頁面與設定
WooCommerce 安裝後通常會建立或指定幾個核心頁面:商店、購物車、結帳、我的帳號。這些頁面是結帳流程的骨架,不能隨意刪除。
基本商店設定
- 商店地址:影響稅務、運送區域與預設幣別。
- 幣別:決定前台價格顯示與付款金額。
- 商品單位:重量與尺寸會影響物流計算。
- 帳號與隱私:設定是否允許訪客結帳、是否自動建立帳號。
- 電子郵件:訂單通知、顧客通知與商店管理者通知。
商店上線前檢查
- 確認商店頁、購物車頁、結帳頁與我的帳號頁都存在。
- 設定正確幣別、稅務與運送地區。
- 測試至少一筆完整訂單。
- 確認顧客與管理者都能收到 email。
- 確認隱私權政策、退換貨政策與付款說明。
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,管理員使用強密碼與雙因素驗證。
- 紀錄:保留付款、物流與錯誤紀錄,方便追查訂單問題。