AI 賦能電商:WooCommerce 內容自動化引擎
告別手寫文案地獄!電商資深工程師教你用 WordPress Hooks 與 GPT-4o 打造 WooCommerce 自動化內容生成系統。這套架構不僅能規模化上架速度,還能確保產品描述具備高轉換率與標準化 SEO 標籤。立即實作,讓 AI 成為您的專屬頂尖文案!
拒絕手寫地獄!WooCommerce 串接 OpenAI 自動生成「高轉換」產品描述與 SEO 標籤實戰
嗨,我是 Eric,浪花科技的資深工程師。如果你跟我一樣,曾經對著 Excel 裡那幾百個只有「產品名稱」和「SKU」的空洞欄位發呆,手裡握著冷掉的咖啡,心想:「這世界上難道沒有比手寫 500 個螺絲起子的產品描述更具生產力的事情嗎?」那麼,這篇文章就是為你寫的。
在電商經營中,產品描述(Product Description)與SEO 標籤(Meta Tags)是獲取自然流量的靈魂。但現實是,大部分的中小企業電商,要嘛是直接複製原廠那枯燥乏味的規格表,要嘛就是一片空白,這在 Google 眼裡基本上等於「重複內容」或是「低品質頁面」。
今天,我們要來點硬核的技術實戰。我們要利用 WordPress 的 Hook 機制,結合 OpenAI API(GPT-4o 或 GPT-4-turbo),在後台儲存產品的那一瞬間,自動讓 AI 幫我們寫出具備銷售說服力的產品描述,甚至連 Yoast SEO 或 RankMath 的 Meta Description 都一併生成。這不是科幻小說,這是 2025 年電商工程師的基本修養。
為什麼你需要 AI 介入電商內容生成?
除了「懶」這個工程師的最大美德之外,引入 AI 自動化生成還有以下幾個關鍵戰略意義:
- 消除重複內容(Duplicate Content): 如果你賣的是經銷商品,大家的敘述都一樣。AI 可以根據規格,用不同的語氣重寫內容,讓 Google 認為你的頁面是獨一無二的。
- 標準化 SEO 結構: 人工撰寫容易遺漏關鍵字,或是 Meta Description 字數超標。透過程式控制 Prompt,我們可以確保產出的內容嚴格遵守 SEO 規範。
- 規模化速度(Scalability): 上架 1 個商品和上架 1000 個商品,對 AI 來說只是迴圈跑幾次的差別。
技術架構:WordPress Hooks 與 OpenAI API 的華爾滋
我們要實作的邏輯其實很直觀,但魔鬼藏在細節裡。我們不能在每次「更新」時都觸發 AI,不然你的 API 帳單會爆炸,而且原本修好的精美文案會被覆蓋。我們需要設計一個機制:只在內容為空,或是手動觸發時才執行。
核心流程圖
- 監聽 Hook: 使用
save_post_product或woocommerce_process_product_meta。 - 條件判斷: 檢查是否為自動儲存(Autosave)、是否已有內容、或者是否有特定的 Checkbox 被勾選(例如:「強制 AI 重寫」)。
- 組裝 Prompt: 抓取產品標題、屬性(Attributes)、分類,組裝成給 AI 的指令。
- 呼叫 API: 發送請求給 OpenAI。
- 寫回資料庫: 更新
post_content以及 SEO 外掛對應的post_meta。
實戰程式碼:打造 AI 文案生成器
以下程式碼可以直接放入你的佈景主題的 functions.php 或是一個客製化的外掛中。為了方便示範,這裡使用經典的 WordPress HTTP API (wp_remote_post) 來處理請求。
1. 定義 OpenAI 連線與生成邏輯
首先,我們需要一個函數來負責跟 OpenAI 溝通。記得要將你的 API Key 妥善保管,建議放在 wp-config.php 定義常數,不要直接寫死在程式碼裡。
// 在 wp-config.php 中定義: define('OPENAI_API_KEY', 'sk-proj-你的金鑰...');
function roamer_generate_ai_content($product_title, $attributes) {
$api_url = 'https://api.openai.com/v1/chat/completions';
$api_key = OPENAI_API_KEY;
// 構建 Prompt:這裡是靈魂所在
$prompt = "你是一位專業的 SEO 文案寫手。請根據以下產品資訊,撰寫一段吸引人的繁體中文產品描述(約 300 字),需包含 HTML 標籤(如 <p>, <ul>)。同時,請在最後回傳一段適合 SEO 的 Meta Description(150 字以內),兩者請用 '|||' 分隔。\n\n";
$prompt .= "產品名稱:" . $product_title . "\n";
$prompt .= "產品規格特點:" . $attributes . "\n";
$body = [
'model' => 'gpt-4o', // 或 gpt-3.5-turbo
'messages' => [
['role' => 'system', 'content' => '你是一個專業的電商文案助理。'],
['role' => 'user', 'content' => $prompt]
],
'temperature' => 0.7,
];
$response = wp_remote_post($api_url, [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key,
],
'body' => json_encode($body),
'timeout' => 30 // AI 需要思考,時間設長一點
]);
if (is_wp_error($response)) {
error_log('OpenAI API Error: ' . $response->get_error_message());
return false;
}
$body = json_decode(wp_remote_retrieve_body($response), true);
if (isset($body['choices'][0]['message']['content'])) {
return $body['choices'][0]['message']['content'];
}
return false;
}
2. 掛載到 WooCommerce 儲存動作
接下來,我們要將這個功能掛載到產品儲存的流程中。這裡 Eric 特別加了一個防呆機制:如果產品描述已經有內容了,我們就跳過,除非你真的很想覆蓋它。
add_action('save_post_product', 'roamer_auto_generate_product_desc', 20, 3);
function roamer_auto_generate_product_desc($post_id, $post, $update) {
// 1. 基本檢查:避免 Autosave、Revision 或非產品類型
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (wp_is_post_revision($post_id)) return;
if ('product' !== $post->post_type) return;
// 2. 檢查是否已經有內容 (避免重複生成覆蓋手寫內容)
// 如果你想強制重寫,可以在後台加一個 Checkbox meta field 來判斷,這裡示範最簡單的「空內容才生成」
if (!empty($post->post_content)) {
return;
}
// 3. 獲取產品資訊
$product = wc_get_product($post_id);
$title = $product->get_name();
// 獲取屬性作為參考素材
$attributes_text = '';
foreach ($product->get_attributes() as $attribute) {
$attributes_text .= $attribute->get_name() . ': ' . implode(', ', $attribute->get_options()) . '; ';
}
// 4. 呼叫 AI
$ai_result = roamer_generate_ai_content($title, $attributes_text);
if ($ai_result) {
// 分割內容與 Meta Description (根據我們 Prompt 裡的 ||| 分隔符)
$parts = explode('|||', $ai_result);
$main_content = trim($parts[0]);
$meta_desc = isset($parts[1]) ? trim($parts[1]) : '';
// 5. 更新資料庫
// 解除 Hook 避免無限迴圈
remove_action('save_post_product', 'roamer_auto_generate_product_desc', 20);
// 更新主內容
wp_update_post([
'ID' => $post_id,
'post_content' => $main_content
]);
// 更新 SEO Meta (這裡示範 Yoast SEO 和 RankMath 的 Key)
if (!empty($meta_desc)) {
// Yoast SEO
update_post_meta($post_id, '_yoast_wpseo_metadesc', $meta_desc);
// RankMath
update_post_meta($post_id, 'rank_math_description', $meta_desc);
}
// 加回 Hook
add_action('save_post_product', 'roamer_auto_generate_product_desc', 20, 3);
}
}
Prompt Engineering:決定轉換率的關鍵
程式碼只是載體,真正決定轉換率的是你的 Prompt(提示詞)。在上面的範例中,我使用了一個非常基礎的 Prompt。在實際的商業場景中,Eric 建議你根據不同的產品分類動態調整 Prompt。
例如,如果你賣的是「服飾」,你的 Prompt 應該包含:「請強調材質的親膚性、穿搭場合建議,語氣要時尚且活潑。」如果你賣的是「3C 配件」,Prompt 則應該是:「請條列式呈現技術規格,強調相容性與耐用度,語氣專業且精簡。」
進階技巧:SEO 關鍵字植入
你甚至可以先透過 API 獲取該產品的焦點關鍵字(Focus Keyword),然後強制 AI:「請在文章第一段以及 Meta Description 中自然地包含關鍵字:{focus_keyword}。」這才是真正的 AI 賦能 SEO。
SEO 標籤自動化:Yoast 與 RankMath 的整合
很多工程師只記得更新 post_content,卻忘了 SEO 外掛的欄位是獨立儲存在 post_meta 表格中的。在上面的程式碼中,我們示範了如何同時更新 Yoast SEO (_yoast_wpseo_metadesc) 和 RankMath (rank_math_description) 的欄位。
這一步至關重要。因為 Meta Description 直接影響搜尋結果頁(SERP)的點擊率(CTR)。讓 AI 根據內文總結出 150 字以內的精華,通常比直接擷取內文前 150 字來得更有吸引力。
結語:工具是死的,策略是活的
這套自動化系統能幫你解決 80% 的基礎工作,但剩下的 20%——也就是品牌的溫度與獨特觀點,還是需要人類的審核。建議在實作這套系統時,先將生成的產品狀態設為 draft(草稿)或 pending(待審閱),讓人確認過沒問題後再發布,這才符合 Google E-E-A-T 的高品質內容原則。
如果你對這樣的自動化架構感興趣,但不想自己碰程式碼,或者需要更複雜的邏輯(例如結合 n8n 進行多平台發布),歡迎隨時來找我們聊聊。
常見問題 (FAQ)
Q1: 使用 OpenAI API 生成內容會很貴嗎?
A: 目前 GPT-4o-mini 的價格非常親民,生成一篇 300 字的產品描述成本通常不到台幣 0.1 元。相比人工撰寫的時間成本,這幾乎可以忽略不計。但若是大量批次處理(例如一次上架萬筆商品),建議留意 API 的 Rate Limit 與總預算控制。
Q2: AI 寫的內容會不會被 Google 懲罰?
A: Google 已經明確表示,他們關注的是「內容的品質」而非「內容是如何產生的」。只要內容對使用者有價值、資訊正確且不只是關鍵字堆砌,AI 輔助生成的內容是可以獲得良好排名的。關鍵在於人工的審核與潤飾。
Q3: 這段程式碼可以直接用在正式網站嗎?
A: 程式碼原則上是可運行的,但每個 WordPress 環境的設定(PHP 版本、外掛衝突)不同。建議先在 Staging(測試環境)進行測試,確認 Hook 觸發時機正確,且不會造成網站卡頓(因為 API 呼叫需要時間,建議配合 Background Processing 或 WP-Cron 進行非同步處理會更完美)。






