WordPress

WooCommerce虛擬商品設定:勾選框、下載檔案與稅務眉角一次搞懂

多數人設定 WooCommerce 商品時,看到「虛擬」與「可下載」兩個勾選框並排在一起,直覺以為勾一個就等於勾另一個,反正都是在賣數位的東西。實際上這兩個勾選框各自獨立、各自關掉或打開不同的機制,虛擬管的是要不要計算運費,可下載管的是要不要開放檔案下載連結,兩者可以只勾一個,也可以都不勾。

如果你賣的是線上課程、顧問服務、電子書或序號授權,勾錯或漏勾其中一個,輕則讓客人在結帳頁被多算一筆運費,重則付了錢卻拿不到下載連結,客服訊息就會開始湧進來。WooCommerce 虛擬商品設定牽涉的欄位不算多,但每一格背後的行為都要先搞清楚,才不會等到訂單真的進來,才發現狀態卡在處理中、下載連結失效,或檔案網址被隨便轉傳出去。

先從這兩個勾選框各自實際打開或關掉了哪些機制講起。

虛擬與可下載勾選框是什麼?各自對應的商品情境

「虛擬」與「可下載」是後台商品編輯頁「商品資料」方塊裡,「簡單商品」下拉選單旁邊的兩個獨立勾選框,一個管運費要不要算,一個管下載連結要不要開,兩者互不牽動,也不會互相觸發。

在商品資料面板同時勾選虛擬與可下載,虛擬關閉運費相關欄位,可下載展開下載檔案與次數效期設定。
商品資料面板裡的「虛擬」與「可下載」是兩個獨立勾選框,勾虛擬不計運費,勾可下載才會展開下載檔案設定。

勾選「虛擬」後,WooCommerce 會關閉所有跟運費相關的欄位,商品重量、尺寸都不會再出現,購物車與結帳流程也不會為這件商品觸發運費試算。很多人以為勾了虛擬,商品就整個變成無法管理的抽象存在。其實虛擬只關掉運費相關欄位,庫存管理完全不受影響,像是限量名額的線上工作坊,一樣可以照常開啟庫存數量,賣完就顯示缺貨。

勾選「可下載」後,「一般」分頁會新增三個欄位,分別是下載檔案、下載次數限制、下載效期。這三個欄位管的是顧客付款後能不能拿到檔案、能下載幾次、多久之後連結失效,跟運費完全是兩碼事。

只勾可下載、不勾虛擬,是刻意保留的組合,不是設定漏勾。舉例來說,出貨附電子說明書的實體智慧裝置,運費照樣要算,同時也提供下載連結給顧客,這種情境就只需要勾可下載。

三種常見情境可以直接對照決定怎麼勾:

  1. 只賣線上課程或顧問服務,完全沒有實體物流,只需要勾「虛擬」。
  2. 賣的是含電子說明書的實體商品,出貨還是要算運費,只需要勾「可下載」。
  3. 賣電子書、軟體或序號授權,沒有實體出貨,也要提供下載,虛擬與可下載兩個都要勾。
依虛擬與可下載兩個勾選框的四種組合,對照電子書、線上課程、含電子說明書的實體商品與一般實體商品各該怎麼勾。
虛擬管運費、可下載管下載連結,兩個勾選框各自獨立,可依商品情境自由搭配。

搞懂這兩個勾選框各自的作用,才不會在 WooCommerce 虛擬商品設定這一步就走錯方向;一旦商品有多種款式,這兩個勾選框的位置又是另一回事。

可變商品的每個款式,虛擬可下載要各自勾選

簡單商品的虛擬與可下載勾選框只出現一次,但只要商品類型改成可變商品,這兩個勾選框就不再是整個商品共用,而是分別出現在每一個款式的編輯區塊裡,逐款各自決定。

這個差異很容易被忽略,原因是後台介面看起來很像,只是勾選框從商品資料方塊的上層,移到了「款式」分頁展開單一款式後才看得到的位置。同一份商品若設計成有實體贈品的款式與純數位款式並存,例如同一堂課程同時賣「實體講義加線上影片」與「純線上影片」兩種款式,就得在展開每一款式後分別勾選,含實體講義的款式不勾虛擬(運費照算),純線上影片的款式勾虛擬(不算運費)。

這種逐款設定的邏輯跟簡單商品完全一致,勾選虛擬一樣會關閉該款式的運費相關欄位、不會觸發購物車運費試算,只是套用的範圍縮小到單一款式,而不是整個商品。設定可變商品時,容易漏掉的地方就是新增了第五個、第六個款式卻忘記重新勾選,結果那個款式意外多算或少算了運費,等到客訴進來才發現問題出在哪一款。

從商品編輯頁上傳下載檔案才不會公開網址

很多人習慣先把要賣的電子檔案傳到 WordPress 媒體庫,再把網址貼進商品的下載檔案欄位,這個做法看起來省事,卻會讓付費內容變成人人都能存取的公開資源。

媒體庫的底層儲存邏輯是用來放所有文章與頁面的附件,目錄本身是公開可存取的,只要有人拿到直接網址,不論有沒有付款都能下載到檔案,網址一旦被轉傳出去,等於整份商品失去了付費門檻。

正確做法是在商品編輯頁的下載檔案欄位直接點「新增檔案」上傳,檔案會被放進wp-content/uploads/woocommerce_uploads這個不公開可存取的資料夾,跟媒體庫的公開目錄完全分開。WooCommerce 預設也會在上傳檔名加上一段隨機字串,降低網址被人猜中的機率,不過這個設定只套用在之後上傳的新檔案,既有已上架的舊檔案不會被回溯套用,想要補強既有商品的安全性,得手動重新上傳一次檔案。

在商品編輯頁的可下載檔案欄位點新增檔案上傳,檔案會存進不公開的資料夾,而非公開的媒體庫目錄。
從下載檔案欄位點「新增檔案」直接上傳,檔案才會進到不公開的資料夾,不像貼媒體庫網址那樣人人可存取。

檔案大小方面,WooCommerce 本身沒有替下載檔案設定容量上限,真正的限制來自主機環境設定,遇到大檔案上傳失敗或下載逾時,通常要找主機商調高相關設定值,而不是在 WooCommerce 裡找開關。如果檔案放在 Google 雲端硬碟這類外部儲存服務、只當外部連結使用,下載方式就得搭配後面會提到的「僅轉向」模式,其他兩種方式對外部連結無法正常運作。

下載次數、下載效期兩個欄位,留空分別代表無限次和永久有效

下載次數限制與下載效期是可下載商品「一般」分頁裡的兩個選填欄位,行為卻剛好跟直覺相反,留空不代表零,而是代表沒有限制。

下載次數限制留空,顧客可以無限次下載同一份檔案;一旦填了數字,達到那個次數之後,顧客就無法再下載,就算檔案完全沒被轉傳出去也一樣會被擋下。下載效期留空代表連結永久有效、不會過期;填了數字,代表從購買當天算起,超過那個天數,下載連結就會失效。這兩個欄位都是可選設定,不填也完全不影響商品正常販售。

下載次數限制與下載效期兩個選填欄位,留空代表無限次與永久有效,填數字才開始限制。
這兩欄的行為跟直覺相反,留空不是零,而是完全不設限。

設太嚴跟設太鬆各有代價。次數與效期抓太緊,客人換了一台裝置,或誤刪了原本下載好的檔案,想重新下載卻被擋下來,客服訊息就會開始湧入;抓太鬆則失去了限制的用意,檔案有可能被大量轉傳而完全失控。判斷的依據看商品性質,電子書、單次交付的檔案可以設得嚴格一點,長期需要反覆存取的資料,像是會持續更新版本的範本包,留空不設限反而比較合理。

換檔案不換訂單,舊下載連結多半還能沿用

商品上架一段時間後,檔案要更新版本是遲早會遇到的情境,這時候的操作方式會直接決定舊訂單的下載權限會不會受影響。

編輯既有那一列下載檔案,改檔案名稱或改網址,會讓舊訂單的下載連結同步指向新內容,但原本的到期日與剩餘下載次數不會被重置,等於顧客拿到的是更新過的檔案,額度卻沒有跟著加碼。另外新增一列下載檔案則完全不會回溯授權給之前買過的顧客,只有之後的新訂單才拿得到新增的那個檔案,兩種操作看似類似,結果卻完全不同,選錯很容易造成舊客戶抱怨拿不到更新內容,或新客戶意外拿到不該有的舊版檔案。

如果目標是讓所有已經買過的顧客都能自動拿到後續每一次更新的檔案,等於做成終身取得所有更新的商業模式,這種需求已經超出可下載商品本身的設計,比較適合改用訂閱或會員類型的擴充功能來實現,或是換一個思路,把多個版本的檔案打包成一個壓縮檔上傳,取代逐次新增檔案列的做法。

檔案下載方式三選一,決定安全性與伺服器負擔的取捨

檔案下載方式不是設在單一商品裡,而是 WooCommerce 設定裡一個全站通用的選項,三選一,直接決定安全性、效能與對主機的要求,選錯常見的症狀就是大檔案下載到一半逾時,或是檔案網址外流被隨便轉傳。

強制下載(Force downloads)透過 PHP 轉發檔案內容給顧客,過程中會隱藏真實的檔案網址,但需要主機的allow_url_fopen這項 PHP 設定為開啟才能運作。檔案體積大、或主機效能本來就吃緊時,容易在傳輸過程中逾時,遇到這種情況通常要升級主機規格,或改用下面的轉向類方式。

X-Accel-Redirect 與 X-Sendfile 由伺服器本身(nginx 或 Apache)直接處理檔案傳輸,不經過 PHP,效能與安全性都是三種方式裡最好的,缺點是需要主機安裝並啟用對應的伺服器模組,共用主機環境常常沒有裝,上線前務必先跟主機商確認清楚,免得設定好了才發現主機不支援。

僅轉向(不安全)則是直接把顧客導向檔案的實際網址,任何拿到這個網址的人都能存取,即使沒有登入會員帳號也一樣,等同顧客可以把連結隨意轉傳給沒買過的人。如果前面兩種方式其中之一無法正常傳送某個檔案,也可以額外開啟「允許使用轉向模式作為後備(不安全)」,讓系統自動退回轉向模式,這在檔案分散存放在不同平台、不見得都相容主要傳輸方式的情況下很實用。一般共用主機環境如果不確定伺服器模組支援狀況,先從強制下載開始設定,是比較穩妥的起手式。

強制下載、X-Accel-Redirect與X-Sendfile、僅轉向三種下載方式在安全性、主機需求與適用情境上的差異對照。
三種下載方式各有安全性與主機負擔的取捨,共用主機不確定支援狀況時先從強制下載起手。

登入下載、訪客結帳彼此互斥

「下載前需登入」是可下載商品分頁裡的一項安全性設定,開啟後要求顧客必須先登入會員帳號才能下載檔案,保護力比單純的網址保護更嚴格。

這項設定有一個容易被忽略的前提,網站的訪客結帳功能必須先關閉,「下載前需登入」才會真的生效。原因很直接,如果訪客結帳還開著,顧客根本不需要註冊帳號就能完成購買,系統也就沒有帳號可以要求他登入,這個安全性選項等於形同虛設。

要不要開啟這個組合,牽涉到轉換率與版權保護之間的取捨。強制登入對想快速結帳、不想多花時間註冊的顧客來說是一種摩擦,比較適合客單價高、又特別重視版權保護的商品,像是授權軟體或高單價的教材;反過來,衝動性的小額購買,例如單篇電子書,強制登入反而可能拉低轉換率,讓原本想付款的顧客中途放棄。設定這兩個選項前,先想清楚商品的性質更適合哪一邊,比單獨打開一個開關更重要。

虛擬加可下載的訂單,付款完成後直接跳過處理中

一張訂單裡的每一項商品,只要全部同時勾選了虛擬與可下載,付款完成後 WooCommerce 會自動把訂單狀態直接設為完成,跳過處理中這個中間狀態,這是核心內建的行為,不用安裝任何額外擴充套件。

觸發這個自動行為的條件很嚴格,是全部而不是其中一項。訂單裡只要混進了任何一項不符合條件的商品,哪怕只是一件普通的實體商品,整張訂單就不會自動完成,得走一般的處理流程。訂單自動完成後,系統會同時觸發寄出發票、購買收據,以及下載連結的通知信給顧客,顧客幾乎是付款完成的那一刻就能拿到所有東西,不需要賣家再手動處理任何一步。

這個機制對純數位商品的賣家很有幫助,等於省掉了逐筆確認訂單、手動改狀態的人力,但也代表一旦商品組合裡混進了實體商品,這個自動化就會整個失效,賣家還是得回頭手動處理。

WooCommerce訂單自動完成的判斷流程,訂單內全部項目都勾虛擬加可下載才會跳過處理中、直接設為完成。
只要訂單裡混進任一件不符合的商品,自動完成就會失效,賣家得回頭手動處理。

只打勾可下載的訂單,自動完成得靠額外的一項設定

跟上一節相反,如果商品只勾了可下載,沒有同時勾選虛擬,例如附贈電子檔的實體商品,訂單不會自動完成,得靠賣家手動把訂單狀態改成完成,顧客才能真正拿到下載權限。

WooCommerce 提供一個折衷設定,叫做「付款後賦予下載存取權限」,開啟後顧客不用等到訂單被手動標記完成,就能在訂單還處於處理中狀態時,先從訂單成立頁面、通知信,或會員中心的下載頁面拿到下載連結。這對一張訂單同時混賣實體商品與數位商品的情境特別實用,顧客不必等實體商品出貨寄達,才能拿到隨貨附贈的數位內容,等於把兩種交付方式的等待時間拆開處理。

要不要開啟這個設定,取決於賣家想不想讓數位內容的交付跟實體出貨脫鉤。如果數位內容是附加價值,跟出貨進度沒有直接關聯,開啟它能讓顧客更快拿到東西,減少等待期間的詢問;如果數位內容本身就是出貨包裹的一部分,維持預設、等訂單完成才開放,也是合理的做法。

訂單畫面能收回或補發下載權限

商品上架賣出去之後,賣家並不是完全交出去就不管了,訂單畫面本身就能直接管理每一位顧客的下載權限。

打開 WooCommerce 的訂單列表,進到單一訂單,往下捲動就能看到「可下載商品權限」這個資訊區塊,裡面會列出這張訂單包含哪些可下載的檔案,以及顧客已經下載過幾次。賣家可以直接在這個區塊操作,包括收回某位顧客的下載權限、核准他存取後來才新增進商品的檔案,或是直接把這張訂單結案。

除了逐筆訂單查看,WooCommerce 的分析報表裡還有一個專門的下載報表,能整站檢視所有下載活動的紀錄,每一筆下載都會有唯一識別碼可以追蹤,不需要為了查一筆下載紀錄逐張訂單翻找。這對商品數量多、下載量大的賣場尤其實用,能快速抓出異常的下載模式,例如同一個帳號在短時間內反覆下載同一份檔案。

自動配發授權序號不是核心功能內建的能力

想賣軟體序號、遊戲通行碼、授權金鑰這類商品的賣家,很容易誤以為 WooCommerce 的可下載機制能自動幫每一筆訂單配發一組獨一無二的序號,實際上核心功能做不到這件事。

可下載功能的本質是所有買同一個商品的顧客拿到的是同一份靜態檔案,不會因為訂單不同而產生不同內容,也就是說,很多人買同一款軟體,下載到的都是完全相同的那一份安裝檔,序號欄位本身並不存在。

要做到每筆訂單各自配發一組獨一無二的序號,得另外安裝專門的序號或授權金鑰管理類擴充套件,由那個擴充套件負責產生、追蹤、發送每一組序號,WooCommerce 本身只負責收單與付款,兩者分工清楚。這類擴充普遍支援的能力包括自動產生序號、透過訂單詳情頁與通知信即時發送給購買者、追蹤每組序號的啟用次數與啟用裝置,挑選時值得留意的重點是能不能自動產生序號,而非賣家自己手動逐一輸入,能不能追蹤啟用狀態,以及能不能跟訂閱型商品搭配、依訂閱週期核發新序號。

虛擬商品在台灣一樣要課稅,跟 WooCommerce 的下載設定是兩回事

前面談的都是 WooCommerce 設定能不能做到的事,但賣的商品是虛擬還是實體,都不影響台灣的課稅義務,這一點 WooCommerce 的設定完全管不到。

依財政部稅務入口網的說明,網路交易的課稅原則是維持與實體通路相同的規定,不會因為銷售管道是網路、或商品型態是數位下載即得,就有特殊的豁免。凡是以營利為目的、透過網路銷售貨物或勞務,都應課徵營業稅,月銷售額超過 10 萬元(賣商品)或 5 萬元(賣服務,含電子書、線上課程這類數位內容)就得辦理稅籍登記,這個門檻不區分商品是實體貨物還是虛擬勞務。

換句話說,把商品的虛擬與可下載勾選框設定好,只解決了交付方式的問題,稅籍登記與發票開立是另一套完全獨立的行政程序,得自己另外處理,通常要搭配金流或發票整合類的擴充套件才能補上。WooCommerce 本身不含台灣的電子發票開立功能,這也不是可下載設定會處理到的範圍,兩件事最好分開規劃,不要以為把商品類型勾好,稅務合規也就一併做完了。

虛擬與可下載這兩個勾選框,決定的只是商品交付的方式,運費算不算、下載連結開不開、訂單狀態會不會自動完成,全部由這兩格延伸出來。真正要處理到位的 WooCommerce 虛擬商品設定,還包含檔案上傳的位置、下載方式的選擇,以及稅務登記這種設定畫面之外的事,把每一塊都各自設定對,訂單進來之後才不會有哪個環節出狀況,讓顧客拿不到該有的下載。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

只勾可下載不勾虛擬,適合什麼樣的商品?

適合出貨還是要算運費、但同時想附上電子檔案的實體商品,例如智慧裝置附電子說明書;這種情境不勾虛擬(運費照算)、只勾可下載(開放下載連結),不是設定漏勾,而是刻意保留的組合。

下載檔案放進媒體庫安全嗎?

不安全,媒體庫目錄本身是公開可存取的,只要有人拿到直接網址,不論有沒有付款都能下載到檔案;正確做法是在商品編輯頁的下載檔案欄位直接上傳,檔案會被放進不公開的資料夾。

下載次數限制欄位留空是不是代表不能下載?

不是,留空代表沒有限制、可以無限次下載,不是不能下載;要限制次數必須自己填入數字,達到那個次數後顧客才會被擋下,這個欄位的行為剛好跟直覺相反。

訂單什麼情況下會自動變成已完成狀態?

訂單裡的每一項商品都同時勾選了虛擬與可下載,付款完成後才會自動設為完成、跳過處理中;只要混進任何一項不符合條件的商品,例如一件普通實體商品,整張訂單就得走一般的處理流程。

系統會自動配發不同序號給每筆訂單嗎?

不行,核心功能無法自動配發不同序號,同一商品所有顧客拿到的都是同一份靜態檔案;要讓每筆訂單各自配發獨一無二的序號,得另外安裝專門的序號或授權金鑰管理類擴充套件才能做到。

資料來源
  1. Virtual and downloadable products — WooCommerce
  2. Digital/Downloadable Product Guide — WooCommerce
  3. 網路交易課徵營業稅Q&A — 財政部