最後更新:2026/10/15
麵粉漲價,烘焙材料行的兩百件商品都要調 5%;換季了,服飾店想把整個「春夏」分類一次改成 8 折;供應商換了,五十件商品的重量和貨號要重填。這些事如果一件一件點進商品頁改,一個下午就沒了,還很容易漏。
WooCommerce 有好幾種一次改很多商品的方法,從完全不用程式的後台操作到幾行程式碼都有。這篇按照「越簡單的先用」的順序介紹四種:批次編輯、快速編輯、CSV 匯出匯入、程式調價,每一種都說清楚適合什麼情況。
不想自己改?把這篇交給 AI
把這篇的網址(或全文)連同下面這段話貼給 AI:
我的網站是 WordPress,有裝 WooCommerce。我想照下面這篇文章,一次修改很多商品的價格或其他欄位。
請先問我:我要改哪些商品(全部還是某個分類)、改哪些欄位、改成什麼(固定金額還是百分比)、有沒有規格商品。
問清楚之後,告訴我用哪一種方法最適合、一步一步怎麼做;如果要用程式碼,告訴我貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼確認。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)
改之前先備份,密碼不要貼給 AI。
方法一:批次編輯(最常用)
到「商品 > 所有商品」,先用上方的篩選器把要改的商品篩出來,例如選一個分類、或用搜尋框,然後勾選左上角的全選框,在「批次操作」選「編輯」按「套用」。畫面會展開一個批次編輯區,裡面有價格、促銷、庫存、重量、尺寸、運送類別、可見度、精選商品等欄位,每一欄都是「無變更」,只動你要改的。
價格那一欄的選項最實用:「變更為」是把所有勾選的商品改成同一個價格;「既有價格的漲幅(固定的金額或百分比)」是在原價上加,填 5% 就是漲 5%,填 20 就是每件加 20 元;「降低售價依(固定金額或 %)」是反過來減。促銷價那一欄還多一個「將定價的降幅設為」,填 20% 就是把每件商品的特價設成原價的 8 折,換季促銷用這個一次搞定。
要注意兩件事。一是每頁預設只顯示 20 件商品,全選只會選到這一頁的;到右上角「顯示選項」把每頁顯示的數量調大,或分幾頁做。二是有規格的商品(例如有 S、M、L),批次編輯只會改主商品,規格各自的價格不會動,這種商品要用後面的 CSV 或程式。
方法二:快速編輯(改幾件就好)
同一個商品列表,滑鼠移到商品名稱下面會出現「快速編輯」,點了會在列表裡直接展開那一件的欄位:名稱、網址代稱、價格、促銷價、庫存、貨號、分類、標籤、可見度都在,改完按「更新」,不用進商品頁。改五件、十件,用這個比批次編輯順手,因為每一件可以改成不同的值。
方法三:CSV 匯出到試算表,改完再匯入
商品超過一百件、要改的欄位又不是批次編輯有的(例如商品說明、規格的價格、自訂欄位),用 CSV。「商品 > 所有商品」上方有「匯出」,可以選要匯出的欄位和分類,下載一個 CSV 檔,用 Excel 或 Google 試算表打開,像改表格一樣改,存回 CSV,再用「匯入」把它匯回去。匯入的第一步有一個「更新現有商品」的勾選框,一定要勾,WooCommerce 會用商品 ID 或貨號對回原本的商品,只更新你改過的欄位。
CSV 的好處是試算表能用公式:價格那一欄用 =原價*1.05 填滿整欄,或用篩選只改某個分類。壞處是 Excel 打開 CSV 常把中文弄成亂碼、把貨號前面的 0 吃掉,建議用 Google 試算表匯入,或在 Excel 用「資料 > 從文字/CSV」指定 UTF-8 編碼。匯入前先拿兩三件商品試一次,確定沒問題再匯全部。
方法四:程式調價(可以先預覽)
要調的規則比較複雜,例如「某個分類的所有商品和規格漲 5%,四捨五入到 10 元,特價也等比例調」,批次編輯做不到,CSV 又要手動算,就用一段程式碼跑一次。這段程式碼的設計是「先預覽再執行」:第一次打開只列出每件商品會從多少改成多少,確認沒錯再按一下真的改。
// 第 82 篇:程式批次調價(跑一次就好,跑完把程式碼拿掉)
// 到後台商品列表,網址後面加 &mimi_bulk=1(只有管理員能跑)
add_action('admin_init', function () {
if (empty($_GET['mimi_bulk']) || !current_user_can('manage_woocommerce')) {
return;
}
$percent = 5; // 漲 5%
$category = 'gift'; // 只動這個分類(代稱);要全部商品就改成 ''
$dry_run = empty($_GET['go']); // 沒加 &go=1 只列出會改哪些,不真的改
$ids = wc_get_products(['limit' => -1, 'return' => 'ids', 'status' => 'publish', 'category' => $category ? [$category] : []]);
$lines = [];
foreach ($ids as $id) {
$product = wc_get_product($id);
$targets = $product->is_type('variable') ? $product->get_children() : [$id];
foreach ($targets as $tid) {
$p = wc_get_product($tid);
$old = (float) $p->get_regular_price();
if ($old <= 0) {
continue;
}
$new = round($old * (100 + $percent) / 100 / 10) * 10; // 四捨五入到 10 元
$lines[] = sprintf('%s:%s → %s', $p->get_name(), $old, $new);
if (!$dry_run) {
$p->set_regular_price((string) $new);
if ($p->get_sale_price() !== '') {
$p->set_sale_price((string) (round((float) $p->get_sale_price() * (100 + $percent) / 100 / 10) * 10));
}
$p->save();
}
}
}
wp_die('<h2>' . ($dry_run ? '預覽(還沒改)' : '已更新') . ' ' . count($lines) . ' 筆</h2><pre>' . esc_html(implode("\n", $lines)) . '</pre>'
. ($dry_run ? '<p><a href="' . esc_url(add_query_arg('go', 1)) . '">確定執行</a></p>' : ''));
});
程式碼放在 Code Snippets 這類外掛或子主題,放法和備份方式見〈WooCommerce 結帳頁改成台灣習慣〉。
用法:把最上面三個設定改成你的(漲幅、分類代稱、要不要含特價),存檔後用管理員登入,到「商品 > 所有商品」,在網址最後面加上 &mimi_bulk=1 打開,畫面會列出「精油組合:980 → 1030」這樣的清單,標題寫「預覽(還沒改)」。看過沒問題,按「確定執行」,標題變成「已更新」,價格就改好了。跑完把這段程式碼停用或刪掉,免得之後誤按。
有規格的商品,程式會逐一處理每一個規格;只有主商品有價格的簡單商品就處理主商品。價格是 0 的商品(例如免費商品)會跳過。
測試結果
我們在本機測試站:
- 批次編輯:全選兩件商品、批次操作選編輯,展開的欄位有「價格:無變更/變更為/既有價格的漲幅(固定的金額或百分比)/降低售價依(固定金額或 %)」、「促銷:無變更/變更為/調升既有的折扣價/調降既有的折扣價/將定價的降幅設為」,還有重量、長寬高、運送類別、可見度、精選內容。
- 程式調價:預覽頁列出「精油組合:980 → 1030」「手工皂禮盒:450 → 470」共 2 筆;按確定執行後,兩件商品的一般價格分別變成 1,030 和 470(450 × 1.05 = 472.5,四捨五入到 10 元是 470)。
改價之前,三件事先做
第一,備份。批次編輯和程式都沒有「復原」,匯入 CSV 更沒有;改之前至少把商品匯出一份 CSV 留著,出錯可以匯回去。第二,先在測試站或少量商品試。第三,改完到前台隨機抽幾件商品看價格,再下一張測試單,確認購物車算的金額也是新的。價格快取有時候會讓前台慢半拍,清一次快取就好。
如果你的商品價格會固定跟著某個數字變(匯率、金價),可以不用每次手動批次改,看〈WooCommerce 價格跟著匯率、金價自動更新〉;要讓客人自己看到折扣而不是改原價,看〈WooCommerce 數量折扣、滿額折扣、會員價〉。
商品管理的時間,要花在刀口上
網店經營到後來,時間都花在「改東西」:改價格、改庫存、改說明。會用批次工具的店家一小時做完,不會用的做一天。這四種方法沒有哪一種最好,看改幾件、改什麼欄位、規則多複雜來挑。
如果你的網店商品很多,想把後台整理成好管理的樣子,或需要有人每個月幫你上架、調價、備份,可以先看〈IG 帳號不是你的資產〉想想網站要做到什麼。MIMI 專做客製化網頁設計,購物車電商網站也提供每月上架和修改的管理方案。MIMI 提供台灣網頁設計服務,全台灣的店家都可以用電話、Email 直接和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。
