Định Giá Địa Phương Là Gì?
Mỗi sản phẩm có một giá cơ bản trong một loại tiền tệ cơ bản. Định Giá Địa Phương cho phép bạn ghi đè mức giá đó với giá cố định bạn thiết lập theo loại tiền tệ hoặc quốc gia. Bạn có thể bật tính năng này bằng cách đặt mộtpricing_mode trên sản phẩm, sau đó đính kèm một quy tắc cho từng thị trường.
Đây là một trong số các đòn bẩy độc lập để định giá quốc tế, mỗi đòn bẩy giải quyết một vấn đề khác nhau:
Định Giá Địa Phương và Tiền tệ Thích ứng hoạt động cùng nhau. Khi không có quy tắc nào địa phương khớp, sản phẩm quay trở về giá cơ bản của nó — tính trực tiếp nếu khách hàng đã sử dụng loại tiền cơ bản của bạn, hoặc được chuyển đổi qua Tiền tệ Thích ứng nếu không phải.
Các Trường Hợp Sử Dụng
Exact Prices for One Market
Exact Prices per Currency Zone
Reversible Market-Entry Promotions
Competitive Price-Matching
Khái niệm cốt lõi
- Chế độ định giá — Một sản phẩm luôn chỉ ở đúng một chế độ tại một thời điểm, được thiết lập bởi
pricing_mode:by_currency: một mức giá cho mỗi loại tiền tệ, bất kể quốc gia. Mọi người thanh toán bằng EUR đều thấy €9.99.by_country: một mức giá riêng cho từng quốc gia (₹999 tại Ấn Độ), ngay cả khi nhiều quốc gia dùng chung một loại tiền tệ.
- Số tiền cố định, tính theo đơn vị nhỏ nhất —
amountcủa một quy tắc là số nguyên theo đơn vị nhỏ nhất của loại tiền tệ, giống như mọi nơi khác trong API:99900là ₹999.00,999là €9.99. Đây là mức giá bạn đặt, không bao giờ là giá trị đã chuyển đổi. - Quy tắc khớp được ưu tiên hơn định giá tự động — Khi một quy tắc bản địa hóa áp dụng cho một dòng, Purchasing Power Parity và Charm Pricing đều được bỏ qua cho dòng đó. Tại checkout, khách hàng thanh toán đúng số tiền bạn đặt, không thay đổi. Khi thay đổi gói đăng ký, một quy tắc dùng loại tiền tệ khác với gói đăng ký sẽ được chuyển đổi; xem Cách áp dụng khi thay đổi gói đăng ký.
- Khi không có quy tắc khớp — Sản phẩm giữ nguyên hành vi hiện tại: khách hàng dùng loại tiền tệ cơ sở thanh toán trực tiếp theo giá cơ sở; những người khác sẽ được chuyển đổi qua Adaptive Currency.
- Phí được bao gồm khi có quy tắc khớp — Khách hàng thanh toán chính xác số tiền bạn đặt. Phí FX của Adaptive Currency do bạn chịu (được xử lý như đã bao gồm phí cho giao dịch đó) thay vì cộng thêm, vì vậy mức giá địa phương bạn công bố luôn là số tiền được tính.
Thiết lập trong Dashboard
1
Open the product form
Trong Merchant Dashboard, đi đến Products và tạo một sản phẩm (hoặc mở sản phẩm hiện có để chỉnh sửa). Thiết lập Price cơ sở và loại tiền tệ như bình thường.
2
Enable Localized Pricing and choose a mode
Trong phần Pricing, chọn Localized Pricing, sau đó chọn By Country hoặc By Currency.

3
Add a price for each market
Nhấp Add Country Price hoặc Add Currency Price, điền vào bảng Localized pricing, rồi nhấp Add. Mỗi thị trường bạn thêm sẽ xuất hiện trong bảng ghi đè, nơi bạn có thể chỉnh sửa hoặc xóa sau này.
- By Country
- By Currency
Chọn một quốc gia, chọn loại tiền tệ và nhập số tiền (ví dụ ₹999 cho Ấn Độ), rồi nhấp Add.
Quốc gia hiện xuất hiện trong bảng Country overrides, nơi bạn có thể chỉnh sửa hoặc xóa quốc gia đó.


4
Save the product
Lưu bằng Add product. Giá bản địa hóa sẽ áp dụng ngay cho các checkout trong tương lai.
Thực hiện một checkout thử nghiệm với quốc gia thanh toán có quy tắc, rồi xác nhận rằng số tiền bản địa hóa được hiển thị.
Quản lý qua API
Localized Pricing được hỗ trợ đầy đủ qua API. Trước tiên, hãy thiết lập chế độ định giá của sản phẩm, sau đó đính kèm các quy tắc.Thiết lập chế độ định giá
Thiết lậppricing_mode khi tạo sản phẩm (hoặc cập nhật sản phẩm hiện có). null có nghĩa là chỉ dùng giá cơ sở, tức hành vi hiện tại.
Thêm giá bản địa hóa
Đính kèm một quy tắc vào sản phẩm. Ở chế độby_country, bắt buộc phải có country_code; ở chế độ by_currency, tham số này phải được bỏ qua.
by_currency, hãy bỏ qua country_code. Ví dụ: một €9.99 cố định cho mọi người thanh toán bằng EUR (currency: 'EUR', amount: 999).
Liệt kê, cập nhật và lưu trữ
Bạn chỉ có thể cập nhậtamount của một quy tắc; loại tiền tệ và quốc gia sẽ được cố định sau khi tạo. Việc lưu trữ là thao tác xóa mềm idempotent, vì vậy quy tắc sẽ không còn khớp nhưng vẫn được giữ trong lịch sử của bạn.
API Reference
Cách áp dụng tại checkout
Giá bản địa hóa được xác định theo từng dòng trong giỏ hàng và chỉ áp dụng cho các sản phẩm đã thiết lậppricing_mode. Dodo Payments đọc hai tín hiệu từ request: billing country của khách hàng và billing_currency tùy chọn (khi bị bỏ qua, loại tiền tệ sẽ được suy ra từ billing country).
- By Country: tìm quy tắc khớp với billing country. Nếu có, khách hàng sẽ bị tính số tiền của quy tắc bằng loại tiền tệ của quy tắc đó.
- By Currency: tìm quy tắc khớp với loại tiền tệ của khách hàng (
billing_currencyhoặc loại tiền tệ được suy ra từ quốc gia của họ). Nếu có, khách hàng sẽ bị tính số tiền của quy tắc bằng loại tiền tệ đó. - Không khớp hoặc không có
pricing_mode: giá cơ sở được áp dụng; khách hàng sẽ thanh toán trực tiếp khi loại tiền tệ của họ trùng với loại tiền tệ cơ sở, nếu không thì được chuyển đổi qua Adaptive Currency.
Cách áp dụng khi thay đổi gói đăng ký
Giá bản địa hóa sẽ được áp dụng cho người đăng ký khi họ chuyển đổi gói. Khi một gói đăng ký hiện có thay đổi gói sang một sản phẩm đã thiết lậppricing_mode, giá của gói mới được xác định theo cùng quy tắc như checkout, sử dụng billing country và currency đã được khóa trên gói đăng ký:
- By Country: áp dụng quy tắc khớp với billing country của gói đăng ký. Nếu currency của quy tắc khác với currency mà gói đăng ký được tính phí, số tiền của quy tắc sẽ được chuyển đổi theo tỷ giá FX hiện tại — quy tắc vẫn được áp dụng, không bị bỏ qua.
- By Currency: áp dụng quy tắc khớp với currency mà khách hàng được tính phí và khách hàng sẽ thanh toán chính xác số tiền của quy tắc.
- Không khớp hoặc không có
pricing_mode: áp dụng giá cơ sở của gói mới, chuyển đổi qua Adaptive Currency khi cần — giống như phương án dự phòng tại checkout.
- Bản xem trước là chính xác. Preview Change Plan trả về đúng số tiền bản địa hóa mà thay đổi thực tế sẽ tính.
- Gia hạn giữ nguyên giá bản địa hóa. Sau khi thay đổi, gói mới được gia hạn với số tiền bản địa hóa — và vẫn bao gồm phí — giống hệt gói đăng ký được tạo ngay từ đầu với mức giá đó.
- Proration sử dụng số tiền thực tế. Khi nâng cấp, khoản tín dụng cho thời gian chưa sử dụng dựa trên số tiền khách hàng thực sự đã trả cho gói cũ, trong khi gói mới được định giá theo quy tắc bản địa hóa.
- Thay đổi được lên lịch sẽ khóa giá tại thời điểm lên lịch. Một thay đổi được lên lịch vào cuối kỳ thanh toán sẽ tính số tiền được tính tại thời điểm lên lịch, ngay cả khi bạn chỉnh sửa quy tắc trong khoảng thời gian đó.
- Currency thanh toán không bao giờ thay đổi. Thay đổi gói không bao giờ chuyển đổi currency mà gói đăng ký được quyết toán; quy tắc dùng currency khác sẽ được chuyển đổi FX sang currency đó.
- Add-on không được bản địa hóa. Giá add-on trong gói mới luôn sử dụng giá cơ sở.
Hành vi quan trọng
Các thay đổi đối với quy tắc bản địa hóa không phát ra webhook riêng. Số tiền được xác định sẽ xuất hiện trên payment hoặc subscription kết quả giống như mọi mức giá khác.
Thực tiễn tốt nhất
- Giữ mức giá cơ sở hợp lý. Đây là phương án dự phòng cho mọi thị trường không có quy tắc, được chuyển đổi qua Adaptive Currency.
- Nhập các số tiền gọn gàng. Mục đích của số tiền cố định là tạo ra mức giá đẹp như ₹999, €9.99 hoặc ¥1000, không phải kết quả FX. Để tự động làm tròn trên mọi loại tiền tệ, xem Charm Pricing.
- Chọn chế độ phù hợp với mục đích. Dùng
by_countrycho định giá theo sức mua; dùngby_currencykhi một mức giá cho mỗi khu vực tiền tệ là đủ. - Lưu trữ thay vì tạo lại khi chạy khuyến mãi. Lưu trữ một quy tắc sẽ đưa thị trường về giá cơ sở/adaptive và vẫn giữ lịch sử; bạn có thể tạo lại hoặc định giá lại khi cần.
- Lưu ý dòng thuế trước khi quảng cáo tổng tiền. Đối với sản phẩm không bao gồm thuế, khách hàng thanh toán số tiền bản địa hóa cộng thêm thuế, vì vậy đừng quảng bá số tiền đó là giá cuối cùng.

