KIếN THứC WEBSITE › WOOCOMMERCE

Cấu hình tiền VND cho WooCommerce — 5 setting + multi-currency

Cấu hình tiền VND cho WooCommerce — 5 setting + multi-currency

VND có đặc điểm format khác đa số tiền tệ phương Tây — không có decimal (số nguyên), ký hiệu hậu tố “đ” hoặc “₫”, phân cách ngàn dùng dấu chấm (1.000.000 thay vì 1,000,000). WooCommerce default config sai cho VN — phải custom currency settings và format thủ công.

Bài này hướng dẫn 5 setting cốt lõi trong 10 phút, multi-currency cho shop xuất khẩu, custom format theo context, và xử lý 5 lỗi phổ biến.

Đặc điểm tiền VND khác USD/EUR ở đâu

cấu hình tiền vnd — Đặc điểm tiền VND khác USD/EUR ở đâu
Đặc điểm tiền VND khác USD/EUR ở đâu

Khác biệt format giữa VND và USD/EUR không chỉ là vấn đề thẩm mỹ — nó ảnh hưởng trực tiếp tỷ lệ chốt đơn và trust signal. Shop hiển thị giá “1,000,000.00 đ” theo style USD khiến khách Việt cảm thấy “shop không phải của VN”, dẫn tới nghi ngờ và bỏ giỏ.

Đặc biệt nguy hiểm khi shop pull data từ marketplace nước ngoài (Shopify, AliExpress) sang WooCommerce — toàn bộ giá hiện kiểu USD nếu không re-format. Audit kỹ phần này trong 30 ngày đầu sau migrate để bắt sớm các product missed.

VND có 4 đặc điểm format khác đa số tiền tệ phương Tây mà WooCommerce default không handle đúng. Sai format dẫn tới giá hiển thị kiểu “1,000,000.00đ” rất lạ với khách Việt, hoặc “1000000đ” khó đọc cho người mua.

Phải config custom để giá hiện tự nhiên kiểu “1.000.000đ” — đúng quy ước người Việt đã quen từ nhiều thập kỷ. Setup này chỉ mất 10 phút nhưng ảnh hưởng trực tiếp đến trust signal và tỷ lệ chốt đơn của shop.

Bảng đối chiếu format VND vs WooCommerce default

Yếu tố VND chuẩn VN WooCommerce default Cần config
Decimal 0 (không có thập phân) 2 (kiểu 1.00) Set Decimals = 0
Thousand separator . (dấu chấm) , (dấu phẩy) Set thousand sep = “.”
Decimal separator , (dấu phẩy — ít dùng) . (dấu chấm) Set decimal sep = “,” (không quan trọng vì không có decimal)
Currency symbol “đ” hoặc “₫” hậu tố “$” prefix Set position = “right_space”

Bước 1 — Set currency VND trong WooCommerce

Bước 1 — Set currency VND trong WooCommerce
Sơ đồ minh hoạ — Bước 1 — Set currency VND trong WooCommerce
Bước 1 — Set currency VND trong WooCommerce
Sơ đồ minh hoạ — Bước 1 — Set currency VND trong WooCommerce

WooCommerce có sẵn VND trong dropdown currency, nhưng default config sai format. Phải vào tab General và chỉnh tay 4 setting để hiển thị đúng kiểu Việt Nam.

7 bước config currency VND chuẩn

  1. Vào WooCommerce → Settings → General.
  2. Currency: chọn “Vietnamese đồng (₫)” hoặc “Vietnamese đồng (đ)“.
  3. Currency position: “Right with space” để hiện kiểu “1.000.000 đ”.
  4. Thousand separator: nhập “.” (dấu chấm).
  5. Decimal separator: nhập “,” (dấu phẩy — không quan trọng vì set decimals = 0).
  6. Number of decimals: nhập “0“.
  7. Save changes — verify thay đổi đã có hiệu lực tại trang shop.

Verify giá hiển thị đúng format ở 3 vị trí

Tạo 1 product giá 1.000.000đ rồi check 3 vị trí: trang shop, trang single product, trang cart. Cả 3 phải hiển thị đồng nhất format.

Nếu sai 1 trong 3 vị trí, re-check setting hoặc tìm plugin theme đang override.

  • Đúng: “1.000.000 đ” — dấu chấm phân cách ngàn, đ hậu tố có khoảng trắng.
  • Sai dạng 1: “1,000,000.00 đ” — chưa set decimals = 0 và thousand separator chưa đổi.
  • Sai dạng 2: “1000000đ” — chưa set thousand separator.
  • Sai dạng 3: “đ 1.000.000” — currency position đặt nhầm thành “Left with space”.

Bước 2 — Custom symbol đ vs ₫ vs VND

WooCommerce list 2 option: “Vietnamese đồng (₫)” với Unicode symbol và “Vietnamese đồng (đ)” với chữ đ thường. Khác biệt UX subtle nhưng quan trọng cho consistency thương hiệu — chọn 1 và dùng nhất quán toàn shop.

Khi nào dùng ₫ vs đ vs VND

  • Symbol ₫ (U+20AB): chuẩn Unicode quốc tế, đẹp hơn, render tốt trên web/mobile. Dùng cho shop hiện đại, brand modern, target khách trẻ.
  • Chữ “đ” thường: truyền thống, quen thuộc với khách lớn tuổi. Dùng cho shop F&B truyền thống, hàng tiêu dùng đại trà, target khách mọi lứa tuổi.
  • Custom “VND”: trang trọng, B2B-friendly, dễ đọc trong invoice. Dùng cho shop B2B, dịch vụ cao cấp, hoặc shop cần xuất hoá đơn nhiều.

Risk khi mix nhiều symbol trong cùng shop

Một số shop dùng “₫” ở header nhưng “đ” trong product card, hoặc “VND” trong invoice nhưng “đ” trong email. Inconsistency dạng này làm khách bối rối và giảm trust signal — đặc biệt khách trả tiền bằng method không quen như chuyển khoản ngân hàng.

Quy tắc: chọn 1 symbol và dùng nhất quán tất cả touchpoint. Nếu phải dùng nhiều symbol theo context (vd “VND” cho B2B invoice, “đ” cho B2C shop), document rõ trong brand guideline và training staff không tự ý đổi.

Custom currency symbol qua filter hook

Nếu muốn dùng “VND” hậu tố thay vì “đ” hoặc “₫”, thêm snippet sau vào file functions.php của child theme. Filter woocommerce_currency_symbol cho phép override symbol mà không cần đổi currency code trong DB.

// Override currency symbol nếu muốn dùng "VND" thay "đ"
add_filter('woocommerce_currency_symbol', 'custom_vnd_symbol', 10, 2);

function custom_vnd_symbol($symbol, $currency) {
    if ($currency === 'VND') {
        return ' VND';  // Hậu tố "VND" cho B2B-friendly
    }
    return $symbol;
}

// Hoặc force ₫ Unicode (nếu WooCommerce đang trả "đ")
add_filter('woocommerce_currency_symbol', function($symbol, $currency) {
    if ($currency === 'VND') return '₫';
    return $symbol;
}, 10, 2);

Bước 3 — Multi-currency cho shop bán quốc tế

Shop bán cho cả khách VN và khách quốc tế cần hiển thị 2 currency: VND cho khách VN, USD hoặc EUR cho khách quốc tế. WooCommerce default chỉ 1 currency — cần plugin multi-currency để mở rộng.

Khi nào shop cần multi-currency thực sự

Không phải shop nào cũng cần multi-currency. Setup phức tạp thêm, tốn ngân sách plugin, và rủi ro tính sai khi tỷ giá biến động.

Chỉ thực sự cần trong 3 case dưới đây.

  • Trên 20% đơn từ khách quốc tế: khách thấy giá USD hay EUR có cảm giác minh bạch hơn, tỷ lệ chốt cao hơn 15-25% so với chỉ hiển thị VND.
  • Shop B2B xuất khẩu: hợp đồng B2B thường đàm phán USD, nên hiển thị USD ngay từ trang product để khách so sánh nhanh với supplier khác.
  • Shop dropship quốc tế: nguồn hàng tính USD, bán cho khách quốc tế cũng USD — VND chỉ là currency báo cáo nội bộ.

Plugin khuyến nghị WooCommerce Multi-Currency Switcher

  1. Cài plugin WooCommerce Multi-Currency Switcher (free) qua Plugins → Add New.
  2. Vào WooCommerce → Multi-Currency → Add Currency.
  3. Add USD với rate khoảng 25.000 (1 USD = 25.000 VND), rate update qua API tỷ giá.
  4. Add EUR, JPY, AUD nếu shop bán thị trường tương ứng.
  5. Display position: header switcher hoặc auto-detect by GeoIP theo địa chỉ IP khách.

Auto-update tỷ giá qua API ngân hàng VN

Default plugin không tự update tỷ giá. Cần setup cron job 1 lần/ngày call API tỷ giá ngân hàng Vietcombank hoặc Vietinbank.

Vietcombank cung cấp XML feed miễn phí cập nhật theo giờ giao dịch.

Cài plugin “WP Crontrol” để quản lý cron trong wp-admin, sau đó tạo custom action gọi API tỷ giá và update option trong DB. Mỗi lần plugin Multi-Currency render giá USD, nó đọc option đó để convert.

2 lưu ý quan trọng khi multi-currency

Multi-currency dễ setup nhưng cần đúng 2 quy tắc để tránh sai sót trong báo cáo doanh thu và mâu thuẫn với khách hàng quốc tế. Cả 2 đều liên quan tới việc lock tỷ giá tại đúng thời điểm.

  • Lưu giá gốc bằng VND trong DB: dù khách thấy USD, backend luôn lưu VND theo tỷ giá tại moment thanh toán. Tránh sai số tích luỹ khi report doanh thu tháng/quý.
  • Không re-convert giá đã chốt: nếu khách quay lại xem invoice 1 tháng sau, hiển thị USD tại tỷ giá lúc thanh toán, không refresh theo tỷ giá hiện tại. Re-convert dẫn tới khách so sánh và khiếu nại chênh lệch.

Bước 4 — Custom format theo context (shop, email, mobile)

Default WooCommerce dùng cùng format cho mọi vị trí — shop, cart, checkout, email. Một số trường hợp cần format khác — vd email confirm dùng “VND” formal, shop dùng “đ” friendly, mobile dùng “1,5tr” để tiết kiệm chữ.

4 context shop hay cần format khác

Trước khi vào code, cần xác định rõ shop có thực sự cần custom format theo context không. Nếu chỉ 1 context (shop frontend), giữ default đơn giản và đỡ maintain.

Chỉ override khi rơi vào ít nhất 2 trong 4 case dưới đây.

  • Shop frontend desktop: hiển thị đầy đủ “1.000.000 đ” — đủ chỗ, rõ ràng cho khách so sánh giữa các product.
  • Shop frontend mobile: hiển thị ngắn “1tr” hoặc “1M” — tiết kiệm 60% chữ số khi browse product list trên màn hình nhỏ.
  • Email transactional: hiển thị “1.000.000 VND” trang trọng — chuẩn xác cho kế toán B2B và dễ đọc trong inbox.
  • Admin báo cáo: hiển thị “1.000.000 đ” với số nguyên — match format Excel export khi shop pull data ra phân tích.

Filter wc_price để customize theo context

Filter wc_price cho phép override toàn bộ logic format giá. Snippet dưới đây check context bằng did_action() — nếu đang trong email template thì format kiểu “VND” formal, còn lại giữ format mặc định cho frontend.

// Format khác cho email vs shop
add_filter('wc_price', 'custom_price_format_by_context', 10, 4);

function custom_price_format_by_context($formatted_price, $price, $args, $unformatted_price) {
    // Trong email confirm: dùng VND formal
    if (did_action('woocommerce_email_header')) {
        $formatted = number_format($unformatted_price, 0, ',', '.');
        return "$formatted VND";
    }

    // Shop frontend: giữ default ("1.000.000 đ")
    return $formatted_price;
}

// Format ngắn gọn cho mobile: "1,5M" thay vì "1.500.000 đ"
function format_price_short($price) {
    if ($price >= 1000000) {
        return round($price / 1000000, 1) . 'M đ';
    } elseif ($price >= 1000) {
        return round($price / 1000) . 'K đ';
    }
    return number_format($price, 0, ',', '.') . ' đ';
}

3 use case format khác context — chi tiết business

Sau khi đã set format theo context, từng use case còn có rule business riêng cần tuân thủ. Sai rule business kéo theo trải nghiệm khách hàng tệ dù format technical đúng.

  • Email confirm dùng “VND”: trang trọng hơn “đ”, dễ đọc trong inbox khách, phù hợp cả khách Việt và khách nước ngoài forward email cho kế toán.
  • Mobile shop dùng “1,5tr”: tiết kiệm 60% chữ số, giúp scan giá nhanh khi browse product trên screen nhỏ.
  • B2B invoice dùng “1.000.000 VND”: matching format kế toán Việt Nam, dễ import vào phần mềm Misa hoặc Fast Accounting mà không cần convert.

5 lỗi phổ biến khi config VND

5 lỗi dưới đây gặp ở 60%+ shop tự setup VND lần đầu. Đa số do plugin payment cũ hardcode format USD hoặc theme override CSS làm currency symbol bị ẩn.

Debug nhanh trong 5-10 phút nếu biết chỗ xem.

  • Hiển thị “1,000,000.00 đ”: chưa set decimals = 0, thousand sep chưa đổi sang dấu chấm. Quay lại Bước 1 và set lại 4 field correct.
  • Email confirm hiển thị “$1,000,000”: WooCommerce email template hardcode “$”. Override template trong child theme tại path woocommerce/emails/email-styles.php.
  • Plugin ignore VND format: 1 số plugin payment hoặc shipping cũ không support VND, hardcode USD format. Disable plugin đó hoặc contact dev plugin xin patch.
  • Multi-currency rate không auto-update: default plugin không có cron update tỷ giá. Cài WP Crontrol và setup cron 1 lần/ngày call API tỷ giá Vietcombank.
  • Tax tính sai do round: VAT 10% trên 1.500.000đ ra 150.000đ exactly, nhưng WooCommerce round có thể ra 149.999đ. Bật “Round tax at subtotal level” trong tax options để fix.

Câu hỏi thường gặp

Có cần plugin riêng để config VND không?

Không. WooCommerce core đã support VND đầy đủ — chỉ cần config 4 setting trong General tab.

Plugin chỉ cần thiết cho 2 use case nâng cao.

Cần plugin cho multi-currency (VND kèm USD) hoặc custom format theo context (email khác shop). Shop bán nội địa 100% với 1 currency không cần plugin nào.

Số 1.000.000 có nên hiển thị “1tr” hoặc “1M” không?

Tuỳ context shop và đối tượng khách. Shop F&B mobile-first nên hiển thị ngắn “1tr” hoặc “1M” giúp scan nhanh và tăng UX mobile.

Shop B2B hoặc luxury nên hiển thị đầy đủ “1.000.000 đ” trang trọng và rõ ràng. Snippet code ở Bước 4 cho phép switch theo trang — mobile shop dùng dạng ngắn, desktop và checkout dùng dạng đầy đủ.

Tỷ giá USD/VND nên update bao lâu 1 lần?

1 lần/ngày là đủ cho đa số shop. Nếu shop bán hàng cao cấp trên 100 triệu/đơn, update 4-6 lần/ngày để tránh loss khi USD biến động mạnh.

API khuyến nghị: Vietcombank exchange rate XML feed miễn phí. Vietinbank và BIDV cũng có API tương tự nhưng kém cập nhật hơn.

Setup cron qua WP Crontrol để tự động hoá hoàn toàn.

Có cần convert giá USD sang VND realtime ở checkout?

Có nếu shop cho customer chọn currency. Plugin Multi-Currency tự convert: customer chọn USD thì checkout hiển thị USD, backend lưu VND theo tỷ giá tại thời điểm thanh toán.

Quan trọng: lock tỷ giá tại thời điểm khách bấm “Place order”, không re-convert nếu khách quay lại sau. Tránh tình huống USD biến động trong 30 phút khách suy nghĩ và khách phải trả giá khác giá đã thấy.

Hiển thị “₫” vs “đ” có ảnh hưởng SEO không?

Không trực tiếp. Cả 2 symbol đều render tốt trên Google search result và rich snippet.

Schema.org product chấp nhận cả 2 dạng currency code “VND” lẫn symbol rendered.

Chọn “₫” cho brand modern hoặc “đ” cho brand truyền thống — quyết định theo định hướng thương hiệu chứ không phải tối ưu SEO. Quan trọng hơn là đồng nhất trên toàn shop, không mix 2 symbol gây loãng trải nghiệm.

Đọc tiếp các bài liên quan

Config VND đúng là bước nền — sau đó cần đảm bảo VAT, ngôn ngữ và email cùng chuẩn cho thị trường VN. Các bài dưới đây trong cùng cụm WooCommerce setup giúp hoàn thiện stack localization:

Cần đội Web22 setup VND format chuẩn, multi-currency cho shop xuất khẩu, và custom display tự động theo từng touchpoint turnkey, xem chi tiết Thi công WooCommerce theo yêu cầu cho shop Việt — báo giá rõ ràng theo phạm vi, không phát sinh chi phí sau khi ký hợp đồng.