多數店家以為 WooCommerce 後台某個角落裡藏著一個多幣別開關,只要找到、打開,同一個商品頁就能同時秀出新台幣跟美元。實際翻過設定的人都知道,WooCommerce 的貨幣選項從頭到尾只有一種貨幣可以選,選定之後,前台顯示的價格跟後台實際收到的錢,都是同一個數字、同一種幣別,沒有第二欄可以另外填。
換句話說,WooCommerce 多幣別設定不是一個要不要找到隱藏選項的問題,而是要先想清楚自己要的是哪一層需求,是讓跨境訪客看得懂價格就好,還是希望顧客真的用他熟悉的貨幣完成付款、店家也真的收到那種貨幣。這兩層需求在 WooCommerce 的世界裡本來就是分開的,混在一起想,才會覺得這件事很難搞懂。
先從這個最基本的認知講起,再一層一層拆開來看外掛能做到什麼、金流又扮演什麼角色。
WooCommerce 天生只認一種貨幣設定
打開 WooCommerce 的設定,一般,貨幣選項底下能調整的東西其實不多:貨幣本身、貨幣符號要放在數字左邊還是右邊、千位分隔符號要用逗號還是別的符號、小數分隔符號、小數要顯示幾位。這五個欄位全部圍繞著同一種貨幣打轉,找不到第二組欄位可以並存。這也是為什麼很多人在後台反覆翻找,卻怎麼樣都找不到「多幣別」這個選項,不是自己沒找對地方,是核心版本裡真的沒有這個機制。

基礎貨幣同時決定顯示與收款
WooCommerce 官方文件講得很直白:每間商店只能設定一種基礎貨幣,這種貨幣同時是前台顯示用、也是實際收款用的貨幣。它不是「預設要顯示的貨幣」這種可以之後再疊加別的貨幣的概念,它就是唯一的貨幣。訪客在商品頁看到的數字,跟訂單成立之後店家帳戶收到的數字,是同一筆錢、同一種幣別,沒有依訪客所在地或依訂單分別套用不同貨幣的機制存在。
理解這一點很重要。外掛能改變的是顯示層,改變不了 WooCommerce 核心把整間店綁在一種貨幣上的這個事實,這個事實得先靠額外的工具去補。
想秀出第二種貨幣,得靠外掛而非設定裡的隱藏選項
很多店家最常見的疑惑是:明明看過別人的網站可以切換美元、日圓、新台幣,為什麼自己這邊怎麼設定都做不到。答案很簡單,那些網站能切換貨幣,靠的從來不是 WooCommerce 內建的隱藏功能,而是額外裝上去的東西,可能是 WooCommerce 官方自己的擴充,也可能是第三方外掛。核心的貨幣選項,就只負責這五個欄位,沒有其他。

也因為這樣,接下來要談的每一種做法,本質上都是在核心之外「加一層」,差別只在於這一層加得多深,是只改前台看到的數字,還是連結帳、收款、對帳都一起處理。
WooPayments 原生多幣別,商家名單沒有台灣
搜尋這個題目的人,多半會先查到「WooCommerce 官方本來就有多幣別功能」的說法。這個說法沒錯,但要先講清楚它指的是什麼。WooCommerce 官方支付方案 WooPayments 底下有一個叫作 Multi-Currency 的模組,它跟一般的貨幣切換外掛不一樣的地方在於,顧客真的可以從店家開放的貨幣清單裡選一種,然後用那種貨幣完成購買,不只是把價格換算給訪客看看而已。官方文件也提到,用 WooPayments 收單的店家,最多可以用一百種以上的貨幣接受訂單。
問題出在申請資格。WooPayments 目前只開放特定國家與地區的商家申請帳號,名單包含澳洲、日本、香港、新加坡、英國、美國等三十九個國家與地區,台灣不在其中。也就是說,就算你認同 WooPayments 這條路最貼近「真正的多幣別」,台灣店家目前也走不進這條門檻,只能退而求其次,靠第三方貨幣切換外掛處理顯示與切換的需求。對台灣的 WooCommerce 使用者來說,官方原生路線目前實際上是關著的。
值得留意的是,即使真的透過 WooPayments 讓顧客選了某種貨幣付款,那筆錢最後要以什麼貨幣落進店家的銀行帳戶,還要再看金流服務那一層怎麼處理,兩件事不完全等於同一件事。
顯示轉換不等於實際收款貨幣
多數教學文章會把「秀出美金價格」跟「真的收到美金」講成同一件事,這是整個多幣別主題裡最容易被混淆、也最值得花篇幅講清楚的一塊。先把兩個詞分開:一種是顯示轉換,訪客看到的價格用當下的匯率換算成他熟悉的貨幣,但訂單成立時,實際計算與收款仍是店家設定的那一種基礎貨幣;另一種是實際多幣別收款,顧客選了哪一種貨幣,訂單就真的以那種貨幣成立、扣款,帳務也依那種貨幣記錄。

多數台灣店家,其實只需要做到顯示轉換就夠用了,目的是服務跨境瀏覽的展示需求,讓一個美國訪客不用自己拿計算機換算新台幣多少錢,帳務結算仍然統一用一種貨幣處理,不會多出對帳的複雜度。真的需要進到實際多幣別收款這一層的,通常是長期經營特定海外市場、希望顧客不被匯率波動困擾的店家,這種情境下,光靠顯示轉換沒辦法真正解決顧客對「匯損」的疑慮。
兩種模式分別對應顯示需求與實際付款需求
把上面的分野收成一句判準,也就是顯示需求解決的是「讓訪客看得懂價格」,付款需求解決的是「訂單真的用哪一種貨幣成立」。這兩件事可以只做其中一個,也可以同時做,但不會因為做了其中一個就自動涵蓋另一個。裝了一款只做顯示轉換的外掛,訪客看到的美元價格再漂亮,結帳那一刻扣款的仍然是新台幣,跟顧客實際體驗到的「用美元付款」是兩回事。
混淆這兩層最常見的後果有兩種:一種是帳務對不起來,訂單明明用外幣顯示,後台報表卻只認得一種貨幣,結算時要多花時間手動換算核對;另一種是顧客結帳時,看到的價格突然從美元跳回新台幣,體驗上會覺得被誤導,甚至懷疑店家標錯價。先分清楚自己實際上做的是哪一層,才不會落入這兩種困擾。
消費者用本地貨幣結帳的意願,已有調查數據佐證
跨境訪客看到熟悉貨幣的價格為什麼值得做,不是一句空泛的「對轉換率有幫助」能帶過的。PayPal 在 2016 年發布的一份跨境商務調查發現,在美國商家的主要出口市場中,超過三成的受訪消費者表示,能用自己熟悉的貨幣完成付款,會讓他們更願意跨境購買。這個數字支持的是顯示轉換這件事本身有價值,但沒有說要做到哪個層級才算數。
PayPal 另一份同年發布的跨境賣家調查則發現,當時只有四成左右的跨境賣家會主動列出外幣價格,其中歐元是最常被提供的選項。換句話說,光是願意做顯示轉換這件事,本身就已經拉開跟多數同業的差距,不必一開始就把目標訂在最複雜的實際多幣別收款上。
金流才決定訂單最終收款的貨幣
顯示轉換跟收款貨幣中間,還隔著金流這一關。就算外掛能決定訪客看到什麼,甚至能決定訂單要以哪一種貨幣成立,錢真的能不能以那種貨幣落進店家口袋,最終要看店家用的金流服務支不支援那個幣別的收款與結算。這裡只點名國際通用的 Stripe 跟 PayPal 當例子,說明金流本身也分「展示給顧客的貨幣」跟「店家實際結算的貨幣」這兩層,本地金流的做法不逐一列。
Stripe 區分顧客被收取的貨幣與商家實際入帳的貨幣
Stripe 官方文件把這兩個概念定義得很清楚,presentment currency 是顧客被收取的貨幣,settlement currency 是商家帳戶實際入帳、可以提領的貨幣。商家如果要在某種貨幣「累積餘額」,得先真的用那種貨幣收過款才行,最多可以設定到十八種結算貨幣。每一種結算貨幣都需要對應該幣別的銀行帳戶才能真正提領,沒有對應帳戶的話,款項會被轉換成主要貨幣入帳,這中間會產生匯兌費用。換句話說,就算前台顯示、甚至結帳都用外幣完成,最後錢有沒有辦法以那種外幣真正入袋,仍然是店家自己銀行帳戶配置的問題。
這套多幣別結算的功能本身,也只開放給登記在特定地區的商家使用,不是每個 Stripe 帳號打開設定就一定看得到這個選項。就算能收的顧客付款貨幣種類很多,能不能把錢留在那種貨幣裡結算,還是要先確認自己的帳戶是否落在開放名單內,這是實際規劃時常被忽略的一步。
PayPal 的多幣別餘額與自動換匯機制
PayPal 的做法可以拿來當一個對照。PayPal 官方說明指出,商家可以在自己的錢包頁面新增其他貨幣餘額,管理要不要保留原幣別、要不要自動換算。商家可以在付款接收偏好設定裡選擇,收到一筆帳戶內尚未持有的貨幣款項時,是要開一個新的貨幣餘額保留原幣別,還是自動換算成主要貨幣入帳;沒有另外調整過這項設定的話,系統會依預設規則處理,換算過程通常會內含一定的匯率加成費用。這說明不同金流商處理「收到不熟悉的貨幣」的做法並不一樣,店家不能假設所有金流服務都用同一套邏輯運作。
實務上比較保險的做法,是在啟用任何外幣收款之前,先進到自己的金流帳戶設定裡確認這項偏好目前是怎麼設的,而不是等到第一筆外幣款項進來,才發現系統已經照預設值自動換算過、多付了一筆看不到的加成費用。
多幣別顯示、多語言與實際收款是三件獨立的事
不少店家會以為要做多幣別,得先裝上 WPML 這類多語言外掛才行。這是一個常見的混淆,得先澄清:貨幣切換、語言翻譯、實際收款,是三套各自獨立運作的機制,一個單語言站也能只處理貨幣顯示,完全不碰多語言或實際收款。只有當店家本身同時是多語言站,而且希望語言切換時貨幣也跟著自動連動,才需要讓兩套機制互相介接。

貨幣切換外掛不需要多語言外掛也能獨立運作
這是很多店家沒意識到的一半——單語言站一樣能做多幣別顯示。市面上的貨幣切換外掛,安裝與啟用都不依賴任何多語言外掛存在,它是一個獨立運作的模組,跟頁面用哪種語言呈現沒有關係。
不少店家會因為誤以為兩者綁在一起,把「先做好多語言」當成做多幣別的前置條件,因此白白拖延了上線時間。其實只要商店本身是單一語言,直接安裝貨幣切換外掛、設定好想開放的幣別,就能立刻運作,完全不用等多語言那一套架構先就緒。
兩者同時存在時,貨幣可以跟著語言設定自動對應
另一半是進階選配,如果店家同時經營多語言站,也想做多幣別,兩套機制之間就存在介接的可能性。市面上的貨幣切換外掛列出與 WPML、Polylang 相容,並提供依目前語言自動切換貨幣的功能,讓法語頁面自動顯示歐元、英語頁面自動顯示美元。這是加分項,不是必要條件,沒裝多語言外掛,貨幣顯示切換照樣能正常運作。
要留意的是,這種依語言自動對應貨幣的介接,判斷依據是訪客當下瀏覽的語言版本,不是訪客實際所在地區。一個用英語版面瀏覽的日本訪客,可能會被自動帶到美元顯示,而不是日圓,這跟依訪客所在地自動偵測貨幣是兩套不同的判斷邏輯,混著用之前要先想清楚哪一套比較貼近自己店的訪客組成。
多幣別外掛的功能,大致落在三個層面
第三方多幣別外掛在 WordPress 官方外掛目錄裡就查得到有效安裝數達五萬以上的例子,像 FOX(原名 WOOCS)就是其中一款,反映這類需求在市場上確實被大量店家採用。它們通常提供的能力,大致可以歸納成三個層面:前台顯示與切換、匯率來源與更新、地區判斷與金流搭配。這節只講「有這些能力類別、各自在解決什麼問題」,不逐欄位教怎麼點選設定,那是店家實際安裝後照外掛自己的介面操作的事。


前台顯示與切換是外掛最基本的一層功能
這一層在解決「訪客看到什麼」的問題,讓訪客能在前台自己選、或系統自動幫他選一種熟悉的貨幣來看價格。常見的呈現方式有下拉選單、國旗圖示列表、固定在畫面邊緣的側邊面板,部署方式則有文字小工具、短代碼、直接寫進版面幾種。這一層的目的很單純,就是讓不同貨幣的訪客都看得懂價格,跟訂單最後怎麼收款是兩件事。
用國旗圖示呈現時,要留意國旗代表的是貨幣不是語言,同一種貨幣可能對應好幾個國家的國旗,選單設計時把貨幣名稱一併標出來,會比只放一面國旗更不容易讓訪客誤解。呈現位置放在畫面邊緣或直接嵌進版面,也會影響訪客有沒有注意到這個功能存在,這屬於店家安裝後可以自行調整的細節。
匯率來源分成即時抓取與店家手動設定兩種
換算用的匯率數字從哪裡來,也是這類外掛的核心功能之一。多數外掛支援對接多個公開匯率來源自動更新,市面上常見的產品能對接七種以上的匯率彙整來源,更新頻率從每五分鐘到每月不等;也允許店家完全不接外部來源,自己設一個固定匯率。兩種做法各有取捨。
實務上不少店家會採用折衷做法,讓系統自動抓即時匯率,但把更新頻率調成每天或每週一次,而不是每五分鐘就跳動一次數字。這樣既不用完全靠人工緊盯匯率,也不會讓訪客覺得同一件商品的價格一直在變動。
地區自動偵測的準確度,會受訪客連線環境影響
這類外掛多半支援依訪客的網路位址自動判斷所在地區,顯示對應的貨幣,讓訪客不必自己動手選。但老實講,這個判斷本質上會被訪客的連線環境干擾,使用 VPN、企業網路出口位址、行動網路業者的位址配置方式,都可能讓系統誤判訪客實際所在地。如果網站同時使用整頁快取機制,快取住的頁面在到期前不會重新執行伺服器端的地區判斷,這也可能讓不同地區的訪客,一起看到同一個快取版本裡的貨幣,這是導入前就該知道的限制,不是裝了就萬無一失。
因為有這層限制,多數外掛都會在自動偵測之外,保留一個讓訪客手動切換的介面,不完全依賴地區判斷。這是比較穩妥的做法,店家不需要為了追求百分之百準確的自動偵測而額外投入太多,讓訪客自己有得選,反而更能彌補判斷失準的情況。
依貨幣顯示或隱藏金流的規則設定
這一層呼應前面談的金流層級。這類外掛通常也提供依當下選定的貨幣,決定要顯示或隱藏特定金流方式的規則功能,用意是避免顧客選了某種貨幣,卻在結帳頁看到一個實際上不支援那個貨幣的付款選項,結果卡在最後一步付不了款。設定的邏輯很直接,每一種貨幣只開放真的能接受那種貨幣的金流方式,其他的自動隱藏。
這項功能能不能派上用場,前提是店家自己先搞清楚手上每一種金流方式各自支援哪些貨幣,前面談的 Stripe presentment currency 跟 PayPal 收款偏好設定,都是查證這件事的起點。規則設好之後,顧客選了某種貨幣就只會看到真的能收那種貨幣的付款按鈕,不會走到結帳最後一步才發現付不了款。
外掛做不到的事,仍要店家自己把關
外掛能做到前面談的三層功能,能力邊界也就落在這三層上:它能決定訪客看到什麼、能決定要不要顯示某個金流選項,但它不會、也不能保證背後的金流真的支援某個貨幣的收款與結算,這件事永遠得由店家自己去金流服務那邊確認。訂單成立之後的帳務、對帳、報表核對,同樣不是外掛自動幫忙完成的事。
金流是否支援某個貨幣,外掛本身無法保證
把這個邊界講得更直白,外掛的規則設定,只能「藏起」不支援的金流選項,不能讓一個原本不支援某種貨幣的金流突然變得支援。前面提到的 Stripe presentment currency 與 settlement currency、PayPal 的收款偏好設定,都是由金流服務單方面決定支援範圍,外掛端無從變更,也無從補上金流本身缺少的能力。
比較保險的做法,是在正式對外開放某種貨幣的顯示或收款之前,先把這種貨幣拿去自己的金流帳戶測試,確認真的收得到、也真的能提領,再回到外掛把它加進正式清單,而不是先開放給訪客看,等到有人下單才發現金流那邊根本沒有對應的收款設定。
不同貨幣訂單的對帳與報表,仍是店家的責任
啟用實際多幣別收款之後,每一筆訂單會依顧客當下付款的貨幣分別記錄,後台清單、報表、月結對帳都要能區分「這筆是哪一種貨幣成立的訂單」,不能直接把所有訂單金額當同一種貨幣加總。日常營運要能從後台清楚看出每一筆訂單的貨幣別,帳務才對得起來,這是啟用多幣別收款之後最容易被忽略、卻沒有任何外掛能代勞的一件事。
實務上多半會採取的做法是,各種貨幣的訂單先各自加總,月結時再統一用當月一個固定的參考匯率換算成單一報表貨幣,方便跟公司整體營收比較。這個換算只用在內部報表,不影響訂單本身記錄的原始貨幣,兩者要分開看待,別把報表用的參考匯率誤當成訂單當初成立時的真實匯率。
選用多幣別方案前,要想清楚的幾個取捨
前面幾節分散提到不少取捨,收攏起來看,店家實際決策時要想清楚的大致有三個面向:匯率來源怎麼選、換算後的價格數字要不要處理過、多語言與多幣別站台在流量統計上會遇到什麼限制。這節談的是選擇邏輯,不是操作步驟。
匯率來源要選即時波動,還是固定不變
即時匯率來源能貼近市場當下的匯率,但價格會隨匯率波動而改變,對常回訪的顧客可能造成同一件商品昨天跟今天不同價的觀感;固定匯率不會有這個問題,但需要店家自己留意匯率大幅變動時手動更新,兩種模式往往是二選一或並存的常見設定邏輯,沒有哪一種絕對比較好,要看店家願不願意花心力盯匯率。
規模比較小、品項不多的店,手動維護固定匯率的負擔其實有限,反而換來價格穩定的好處;品項多、匯率敏感度高的店,才比較適合花時間設定自動更新,並搭配下面談的匯率上下限一起用,避免匯率單日大幅波動時價格跟著跳來跳去。
換算後的價格要不要湊整,還是照實際匯率呈現
按當下匯率精算出來的價格,常常是一串零碎小數,不一定是最好的呈現方式。多數消費品的定價習慣是好記的整數,或帶特定尾數,精算匯率換出來的數字反而不符合當地消費者對整數定價的習慣。市面上的貨幣切換外掛通常提供匯率上下限、小數位數與分隔符號逐幣別設定這類防呆機制,可以讓換算後的價格落在店家可接受的區間,而不是完全照即時匯率精算到底,這是每個要做顯示轉換的店家都得先想清楚的問題。
要不要湊整,也跟店家想給訪客什麼印象有關。精算到小數點後兩位,看起來比較像是照當下匯率老實換算;湊成整數或帶特定尾數,比較貼近當地消費者熟悉的定價方式,但換算出來的金額會跟即時匯率有些微落差。兩種做法沒有絕對對錯,選定一種之後全站保持一致,比中途來回切換更重要。
多語言與多幣別站台,在 SEO 與流量統計上的限制
多幣別顯示不是只有前台體驗要考慮。如果貨幣切換是透過網址參數或子路徑呈現,同一個商品頁可能因此產生不同網址,需要留意是否會被判定為內容重複;整頁快取機制與依地區或貨幣顯示不同內容之間,也存在已知的衝突,會讓部分訪客看到不屬於自己地區的快取版本。流量與轉換的歸屬統計,也需要能區分「這筆流量或訂單是在哪個貨幣情境下發生的」,否則報表容易失真。這些都是規劃導入方案時就該一併考慮的事,不是等上線後數據對不起來才回頭處理。
這幾個限制不代表多幣別顯示不能做,只是提醒店家把它當成一個要規劃的專案,而不是裝上外掛、設定幾種貨幣就結束。導入前先跟負責流量分析的人確認一次報表怎麼看、快取設定會不會互相影響,會比上線之後才發現數字對不上,省下更多重新排查的時間。
WooCommerce 多幣別設定不是一個「找對開關」的問題,而是三層各自獨立的判斷:核心設定本身只認一種貨幣,想秀出第二種貨幣得靠外掛;顯示轉換跟實際收款是兩件不同層級的事,多數店家其實只需要前者;真的要走到實際收款,金流服務支不支援某個貨幣,才是最後那道關卡。把這三層拆開想清楚,比急著在後台找一個不存在的按鈕實際得多,也更容易挑到真正適合自己這間店的做法。
