商品 CSV 匯入與匯出工具
使用 WooCommerce 的 CSV 匯入與匯出工具是簡化線上商店商品與客戶資料管理的強大功能。此工具讓商店經營者能輕鬆使用 CSV 檔案批次匯入大量商品,包含商品屬性、分類與圖片,直接匯入 WooCommerce。此外也支援匯出商品與客戶資料,以進行資料遷移、備份與分析。透過易用的介面與彈性,CSV 匯入與匯出工具簡化了商店庫存的更新與維護流程,確保有效處理資料並改善商店營運。
找到匯入/匯出工具
若要開始匯入或匯出商品,前往商品 > 所有商品。在「新增商品」按鈕旁可看到匯入與匯出按鈕。
- 首次開店者可在設定期間透過匯出與匯入商品更快速地開始
- 現有商店經營者可更新數十或數百個商品的新資訊或進行特價,或同步多個商店
注意:
建立 CSV
建議使用哪種 CSV 編輯器?
建議使用:
- 線上試算表編輯器 Google Drive / Docs
- OpenOffice 免費試算表應用程式
- LibreOffice 免費 Calc 應用程式
- Numbers for macOS
可能的話,建議避免使用 Microsoft Excel,因為曾發現其有格式與字元編碼問題。但無論使用什麼工具,務必依照以下指南匯出為 CSV 檔案。
如何建立 CSV?
若要匯入新商品或更新現有商品,需要包含商品資訊的 CSV。你可以:
- 從現有商店匯出商品 CSV
- 從 GitHub 下載包含範例資料的 CSV 檔案並將範例資料替換為你的商品資訊
- 建立或使用自己的 CSV。要匯入的任何資訊必須符合商品 CSV 匯入綱要的格式與欄位
注意:
若使用內建的 WooCommerce 商品 CSV 匯入與匯出工具匯出 CSV,已遵循綱要並可直接使用。若使用空白且已格式化的 CSV 檔案,也遵循綱要,只需依照商品 CSV 匯入綱要的說明輸入資訊即可。
一般指南
- CSV 應使用 UTF-8 格式
- 日期應以商店的當地時區定義
- 匯入布林值(true 或 false)時,使用 1 或 0
- 欄位中的多個數值以逗號分隔
- 若匯入包含逗號的分類名稱,請參考下方的逗號處理區塊
- 用引號包裹數值可插入逗號
- 參考現有商品 ID 時,前綴加上
id:。參考 SKU 則不需前綴。例如:id:100、SKU101 - 分類階層以
>表示,分類以逗號分隔 - 不會匯出草稿商品,僅匯出已發布與私密發布的商品
- 匯入時無法為商品指派特定文章 ID。商品一律使用下一個可用 ID,不論匯入的 CSV 中包含的 ID 為何
逗號處理
匯入商品時,包含逗號的欄位可能造成問題,因為逗號被視為欄位分隔符號。若要避免此問題,請確保將必要的逗號跳脫,以確保正確匯入。
例如,以下會匯入分類 Places, People, Cities
Places\, People\, Cities
跳脫這些逗號可確保整個分類名稱在匯入過程中被視為單一實體。
圖片
- 圖片需要預先上傳或在線上可存取才能匯入商店
- 支援外部 URL,若圖片可直接存取且不在重新導向程式碼後(某些雲端儲存服務會發生此情況),會匯入至媒體庫
- 若圖片已存在於媒體庫中,可定義檔案名稱
- 核心 CSV 匯入工具目前無法新增、編輯或更新商品圖片的替代文字
匯入
新增商品
首次開店者與現有的 WooCommerce 商店經營者可使用 CSV 一次上傳新增商品。
- 前往所有商品 > 商品
- 選擇頂端的匯入。上傳 CSV 檔案畫面隨即顯示
- 選擇選擇檔案以及要使用的 CSV
- 點選繼續按鈕
- 欄位對應畫面隨即顯示,WooCommerce 會自動嘗試將 CSV 中的欄位名稱與欄位對應
- 使用右側的下拉選單調整欄位或指示「不要匯入」
-
任何無法識別的欄位預設不會匯入
-
準備好後,點選執行匯入工具按鈕
-
等待匯入工具完成。匯入進行中時,請勿重新整理或離開此頁面
更新現有商品
商店經營者可使用 CSV 匯入工具批次更新現有商品的新資訊,例如新增品牌、變更稅務類別、為特價或活動進行批次更新等。
-
依照「建立 CSV」區塊說明製作 CSV 檔案,使用要更新之商品的 ID 與 SKU。匯入工具使用 CSV 中的 ID 與 SKU 比對並更新商店中的商品
-
前往所有商品 > 商品
-
點選頂端的匯入按鈕。上傳 CSV 檔案畫面隨即顯示
-
選擇選擇檔案以及要使用的 CSV
- 勾選更新現有商品核取方塊
- 點選繼續按鈕
-
欄位對應畫面隨即顯示,WooCommerce 會自動嘗試將 CSV 中的欄位名稱與欄位對應
-
使用右側的下拉選單調整欄位或指示「不要匯入」
-
任何無法識別的欄位預設不會匯入
-
點選執行匯入工具按鈕
-
等待匯入工具完成。匯入進行中時,請勿重新整理或離開此頁面
商品匯入完成!
將現有單一商品轉換為變體商品
商店經營者可使用 CSV 匯入工具將現有的單一商品轉換為變體商品。步驟如下:
- 建立包含價格與 SKU 的單一商品
- 透過「所有商品」頁面的內建 CSV 匯出工具匯出商品
- 開啟 CSV 檔案並依照以下步驟將單一商品轉換為變體商品:
在此範例中,我們將單一商品轉換為包含 1 個屬性(尺寸)與 2 個變體的變體商品:
- 新增 2 列,每個商品變體各一列。保留原商品列
- 在最後一欄之後新增 4 欄。欄位標題如下:
Attribute 1 nameAttribute 1 value(s)Attribute 1 visibleAttribute 1 global
- 在三列的
Attribute 1 name欄中新增Size - 在
Attribute 1 value(s)欄中新增屬性值- 在單一商品列中,新增所有可用屬性值。在此範例中,我們為商品新增
S, M作為屬性值 - 在第一個新變體列中,新增
S作為屬性值 - 在第二個新變體列中,新增
M作為屬性值
- 在單一商品列中,新增所有可用屬性值。在此範例中,我們為商品新增
- 在
Attribute 1 visible欄的每列輸入1。這會將屬性標記為可見 - 在
Attribute 1 global欄的每列輸入0。這會將Is attribute global?欄位標記為false,代表此屬性僅會新增至此變體商品,不會在全域建立以供其他商品重複使用
目前為止,我們的新 4 欄如下:
- 在
Type欄中,將商品類型從simple改為variable,並在變體列(你建立的 2 個新列)新增類型variation - 為變體列新增 SKU
- 為新變體命名。在我們的範例中如下:
- 更新其他欄位(若需要也可更新其他欄位):
- 重要:在
Parent欄的所有變體列新增 SKU,以將上層商品與其變體對應:
- 儲存新 CSV 檔案
- 使用內建 CSV 匯入工具將更新的 CSV 檔案匯入回網站
- 執行匯入前選擇更新現有商品選項,因為我們要更新網站上的現有商品:
- 點選「繼續」按鈕進行匯入(不需對應任何欄位)
- 你會看到以下內容,此為預期情況:
- 前往商品。你會看到商品現在是變體商品且新增了 1 個屬性,但未建立變體。注意
Used for variations核取方塊未勾選。此為預期情況:
- 再次開啟 CSV 檔案(你已建立變體列的檔案)並刪除上層商品列。保留變體列不變:
- 儲存更新的 CSV 檔案
- 接著將更新的 CSV 檔案匯入網站,但這次不要勾選
Update existing products旁的方塊:
- 進行匯入(不需對應欄位)。你應該會看到變體已匯入:
- 匯入完成後,前往商品。現在會是包含變體的變體商品:
匯出
若商店經營者因任何原因要匯出目前的商品目錄,可使用內建的商品匯入/匯出工具產生 CSV 匯出。
- 前往所有商品 > 商品
- 點選頂端的匯出按鈕。匯出商品畫面隨即顯示
- 選擇匯出所有欄位。或使用下拉選單選擇要匯出哪些欄位
- 選擇匯出所有商品。或使用下拉選單選擇要匯出哪些商品類型
- 選擇匯出所有分類。或使用下拉選單選擇要匯出哪些分類
- 若需要此資訊,勾選匯出自訂 Meta。商品上的中繼資料通常來自其他外掛。中繼資料欄位匯出時會加上
meta:前綴。例如,若中繼資料使用「product_depth」鍵,會匯出名為meta:product_depth的欄位及其值。預設不會匯出額外的中繼資料 - 點選產生 CSV按鈕並等待匯出完成
商品匯出完成,瀏覽器會下載 CSV
選擇性商品匯出
從 WooCommerce 9.9 開始,可從商品列表畫面匯出選定的商品。
- 前往商品 > 所有商品
- 選擇要匯出的商品
- 點選頂端的「匯出 X 個已選取」按鈕
匯出選定商品
商品 CSV 匯入綱要
這是 WooCommerce 內建 CSV 匯入工具與匯出工具使用的綱要(可在 GitHub 儲存庫查看完整綱要)。
| CSV 欄位名稱 | 對應商品屬性 | 範例 | 說明 |
|---|---|---|---|
ID |
id | 100 |
定義此項會覆寫匯入時該 ID 的資料 |
Type |
type | simple, variation, virtual |
商品類型。有效值:simple、variable、grouped、external、variation、virtual、downloadable。可使用多個以逗號分隔的類型 |
SKU |
sku | my-sku |
必填。若遺漏會自動產生 |
Name |
name | My Product Name |
必填 |
Published |
status | 1 |
1 代表已發布,0 代表私密,-1 代表草稿 |
Is featured? |
featured | 1 |
1 或 0(1 代表 true,0 代表 false) |
Visibility in catalog |
catalog_visibility | visible |
支援的值:visible、catalog、search、hidden |
Short description |
short_description | This is a product. |
|
Description |
description | This is more information about a product. |
|
Date sale price starts |
date_on_sale_from | 2013-06-07 |
日期(當天開始)或留空 |
Date sale price ends |
date_on_sale_to | 2013-06-07 |
日期(當天結束)或留空 |
Tax status |
tax_status | taxable |
支援的值:taxable、shipping、none |
Tax class |
tax_class | standard |
可使用任何現有稅務類別 |
In stock? |
stock_status | 1 |
1 或 0(1 代表 true,0 代表 false) |
Stock |
manage_stock / stock_quantity | 20 |
數字庫存量啟用庫存管理。變體可使用 parent。空白 = 不管理庫存 |
Low stock amount |
low_stock_amount | 3 |
空白或數字 |
Backorders allowed? |
backorders | 1 |
1、0 或 notify(1 代表 true,0 代表 false) |
Sold individually? |
sold_individually | 1 |
1 或 0(1 代表 true,0 代表 false) |
Weight (unit) |
weight | 100 |
僅解析數字 |
Length (unit) |
length | 20 |
僅解析數字 |
Width (unit) |
width | 20 |
僅解析數字 |
Height (unit) |
height | 20 |
僅解析數字 |
Allow customer reviews? |
reviews_allowed | 1 |
1 或 0(1 代表 true,0 代表 false) |
Purchase Note |
purchase_note | Thanks for buying it buddy. |
|
Sale price |
sale_price | 20.99 |
特價 |
Regular price |
regular_price | 24.99 |
一般價格 |
Categories |
category_ids | Category 1, Category 1 > Category 2 |
分類的 CSV 列表。> 用於階層 |
Tags |
tag_ids | Tag 1, Tag 2 |
標籤的 CSV 列表 |
Shipping class |
shipping_class_id | Name |
物流類別名稱 |
Images |
image_id / gallery_image_ids | http://somewhere.com/image.jpg, http://somewhere.com/image2.jpg |
第一個是精選圖片 |
Download limit |
download_limit | 1 |
n/a 或限制 |
Download expiry days |
download_expiry | 1 |
n/a 或天數限制 |
Parent |
parent_id | id:100, SKU-1 |
設定上層 ID。用於變體。可以只是數字 ID,例如 id:100 或 SKU。匯出時會盡可能使用 SKU |
Grouped products |
children | id:100, id:101, SKU-1, SKU-2 |
ID 列表。可以只是數字 ID,例如 id:100 或 SKU。匯出時會盡可能使用 SKU |
Upsells |
upsell_ids | id:100, id:101, SKU-1, SKU-2 |
ID 列表。可以只是數字 ID,例如 id:100 或 SKU。匯出時會盡可能使用 SKU |
Cross-sells |
cross_sell_ids | id:100, id:101, SKU-1, SKU-2 |
ID 列表。可以只是數字 ID,例如 id:100 或 SKU。匯出時會盡可能使用 SKU |
External URL |
product_url | https://mercantile.wordpress.org/product/wordpress-pennant/ |
商品外部 URL |
Button text |
button_text | Buy on the WordPress swag store! |
自訂商品「購買」按鈕 |
Position |
menu_order | 1 |
選單順序,用於排序 |
Attribute 1 name |
attributes | Color |
尋找全域屬性,若找不到則使用文字。依需要納入多個。「Used for variations」會自動設定 |
Attribute 1 value(s) |
attributes | Blue, Red, Green |
值列表。變體僅需 1 個值。若提供多個則使用第一個 |
Attribute 1 default |
default_attributes | Blue |
變體商品的預設值 |
Attribute 1 visible |
attributes | 1 |
1 或 0(1 代表 true,0 代表 false)對應畫面將此標記為「Attribute Visibility」 |
Attribute 1 global |
attributes | 1 |
1 或 0(1 代表 true,0 代表 false)對應畫面將此標記為「Is a global attribute?」 |
Download 1 name |
downloads | Download 1 |
|
Download 1 URL |
downloads | url.zip |
常見問題
是否可新增自訂匯入欄位?
可以。請至 GitHub 的 WooCommerce 儲存庫查看自訂程式碼:新增自訂匯入欄位。請注意這是開發者等級資訊,根據我們的支援政策不提供相關協助。
是否可新增自訂匯出欄位?
可以。請至 GitHub 的 WooCommerce 儲存庫查看自訂程式碼:新增自訂匯出欄位。請注意這是開發者等級資訊,根據我們的支援政策不提供相關協助。
為何沒有匯出所有商品?
WooCommerce 3.6.5 之前,僅匯出狀態為「publish」或「private」的商品,不包含「draft」。若要變更此設定,有篩選器可使用,但需要自訂程式碼,我們無法提供相關協助。
若使用目前版本的 WooCommerce 且所有商品未匯出,請檢查 WooCommerce 日誌是否有錯誤訊息。可能是外掛衝突造成錯誤。
為何沒有匯入所有商品?
WooCommerce 3.6.5 之前,僅匯入狀態為「publish」或「private」的商品,不包含「draft」。自 WooCommerce 3.7 起,CSV 商品匯入現在允許 published 欄位使用 true/false 值,以及原始的 0(private)、-1(draft)、1(publish)值。
若使用目前版本的 WooCommerce 且所有商品未匯入,請檢查匯入日誌是否有錯誤訊息。可能是商品已存在且使用你嘗試使用的 SKU、外掛衝突造成錯誤,或需要將 CSV 分割成較小的檔案以便伺服器成功處理匯入。
匯入時發生權限錯誤?
匯入 CSV 檔案時是否看到以下權限錯誤?
Sorry, this file type is not permitted for security reasons.
當匯入檔案包含 HTML 時,在某些伺服器上 WordPress 可能會誤判檔案類型。解決方法之一是在 wp-config.php 檔案中新增以下行:
define( 'ALLOW_UNFILTERED_UPLOADS', true );
基於安全考量,應僅在匯入期間暫時啟用此設定,匯入後再從設定檔中移除。
另一種方法是,不使用「從電腦選擇 CSV 檔案」,而是先透過 FTP 或主機商管理面板的檔案管理員將 CSV 檔案上傳至網站的 upload 目錄。然後透過「進階選項」指定該檔案的位置進行上傳:
如何增加 CSV 匯入上限大小?
「上限大小」值在伺服器層級設定。若要增加上限檔案大小,請聯絡主機商。作為替代方案,可將 CSV 分割成多個部分分別上傳。
如何匯入大型商品資料庫?
當商店需要匯入大量商品時,伺服器的效能至關重要。若要確保使用 CSV 檔案時匯入流程順利,建議將其分成較小的批次。這會減少錯誤發生的機會,並在發生問題時更容易排解。
若要處理大規模匯入,建議使用 Product CSV Import Suite。此擴充功能支援匯入數千個商品,包含複雜商品與來自 Product Vendors、Brands、Google Product Feed 等擴充功能的自訂資料。



























