Skip to main content
Discount codes overview cover
Mã giảm giá cho phép bạn chạy các chương trình khuyến mãi và kích thích có mục tiêu. Tạo giảm giá theo phần trăm, đặt giới hạn và ngày hết hạn, giới hạn theo sản phẩm và áp dụng chúng liền mạch khi thanh toán.

Checkout Sessions

Áp dụng một hoặc nhiều mã chồng trong quá trình thanh toán lưu trữ với discount_codes và các điều khiển UI.

Validate Discount

Kiểm tra xem mã giảm giá có hợp lệ theo ID không.

Get Discount by Code

Tra cứu và xác thực mã giảm giá bằng tên mã (ví dụ: “SAVE20”).

Create Discount (API)

Tạo mã giảm giá mới theo chương trình.

List & Update Discounts

Duyệt và quản lý các mã giảm giá hiện có; cập nhật hoặc xóa theo nhu cầu.

Plan Change Discounts

Áp dụng mã giảm giá khi nâng cấp hoặc hạ cấp gói đăng ký.

Mã giảm giá là gì?

Mã giảm giá là token khuyến mãi giúp giảm tổng số tiền thanh toán tại lúc thanh toán. Chúng rất lý tưởng cho:
  • Chiến dịch theo mùa: Black Friday, ra mắt sản phẩm hoặc kỷ niệm
  • Ưu đãi thu hút: Khuyến khích mua lần đầu hoặc thưởng giới thiệu
  • Duy trì: Thưởng quay lại hoặc cho khách hàng trung thành hiện có
  • Giao dịch B2B: Giá thương lượng thông qua mã riêng tư

Lợi ích chính

  • Giảm giá linh hoạt: Giảm giá theo phần trăm hoặc số tiền cố định
  • Mã có thể kết hợp: Áp dụng tối đa 20 mã cho mỗi lần thanh toán, payment hoặc subscription — kết hợp các chiến dịch (ví dụ: WELCOME10 + BLACKFRIDAY20) mà không cần tạo mã riêng
  • Kiểm soát theo đối tượng: Giới hạn theo sản phẩm, chu kỳ subscription và điều kiện đủ của customer
  • Quản trị chiến dịch: Lên lịch ngày bắt đầu, ngày hết hạn, giới hạn lượt sử dụng tổng thể và theo từng customer
  • Định giá theo từng currency: Đặt khoản khấu trừ cố định, mức giảm tối đa và subtotal tối thiểu cho từng currency
  • Checkout liền mạch: Hỗ trợ trường UI và API thông qua checkout sessions

Tạo mã giảm giá

Tạo mã giảm giá trong bảng điều khiển Dodo Payments, sau đó áp dụng chúng trong thanh toán được lưu trữ hoặc qua API.
Danh sách Discounts trong dashboard Dodo Payments hiển thị các discount code hiện có

Thiết lập trên dashboard

  • Discount Name (bắt buộc): Tên hiển thị nội bộ và trên dashboard
  • Code (bắt buộc): Chuỗi customer nhập tại checkout hoặc tạo mã ngẫu nhiên bằng nút được cung cấp
  • Type (bắt buộc): Chọn Percentage (giảm theo phần trăm) hoặc Amount (khấu trừ một số tiền cố định)
  • Amount (bắt buộc): Giá trị phần trăm hoặc số tiền cố định cho discount loại Amount
  • Start Date (tùy chọn): Lên lịch để mã bắt đầu có hiệu lực sau; để trống để kích hoạt ngay lập tức
  • Expiration Date (tùy chọn): Ngày sau đó mã sẽ không còn hiệu lực
  • Usage Limit (tùy chọn): Tổng số lượt đổi tối đa trên tất cả customer
  • Per-Customer Usage Limit (tùy chọn): Số lượt đổi tối đa của một customer. Khi đặt cả hai giới hạn, giá trị này phải nhỏ hơn hoặc bằng giới hạn sử dụng tổng thể
  • Customer Eligibility (tùy chọn): Giới hạn những người có thể đổi mã — tất cả customer, customer lần đầu, customer hiện tại hoặc danh sách được chọn thủ công
  • Currency Options (tùy chọn): Giá trị theo từng currency — xem Per-Currency Options
  • Product Restriction (tùy chọn): Giới hạn phạm vi áp dụng cho các product được chọn
  • Subscription Cycle Limit (tùy chọn): Số chu kỳ thanh toán mà discount được áp dụng
  • Preserve on Plan Change (tùy chọn): Giữ discount hoạt động khi plan của subscription thay đổi (preserve_on_plan_change)
  • Metadata (tùy chọn): Đính kèm các cặp key–value tùy chỉnh để theo dõi nội bộ hoặc tích hợp
Chi tiết discount — type, phần trăm hoặc số tiền, name, code và currency options:
Biểu mẫu New Discount Code hiển thị type, số tiền phần trăm, name, code và currency options
Giới hạn sử dụng và thời hạn, đã được cấu hình đầy đủ:
Bảng giới hạn sử dụng và thời hạn với ngày bắt đầu, ngày hết hạn và giới hạn sử dụng đã được cấu hình
Bên dưới biểu mẫu — điều kiện đủ, giới hạn và các tùy chọn nâng cao:
Điều kiện đủ, giới hạn và các tùy chọn nâng cao cho discount code
Sử dụng giới hạn chu kỳ cho mức giá giới thiệu trên subscription (ví dụ: “giảm 50% trong 3 tháng”).
Một amount phần trăm được biểu diễn bằng basis points trên API — 1500 có nghĩa là 15%. Một amount cố định là một giá trị tiền tệ và được xác định theo currency options của code.

Các loại Discount

Cả hai type có thể được kết hợp trong cùng một mảng discount_codes và được áp dụng theo thứ tự trong mảng.
Trình chỉnh sửa discount code với type Amount được chọn, hiển thị khoản khấu trừ cố định 500 INR

Điều kiện đủ của Customer

Đặt customer_eligibility để kiểm soát những ai có thể đổi code:
Dropdown điều kiện đủ của customer hiển thị các tùy chọn Any, First-time, Existing và Specific customer
Một code specific bắt đầu với zero customer đủ điều kiện và từ chối mọi lượt đổi cho đến khi bạn thêm customer vào code. Thêm customer trên dashboard hoặc bằng discount customers API.
Kết hợp điều kiện đủ với Per-Customer Usage Limit để giới hạn số lần mỗi customer có thể đổi code, độc lập với giới hạn sử dụng tổng thể.

Currency Options theo từng Currency

Currency options cho phép một code hoạt động chính xác trên các currency bạn bán. Mỗi mục thiết lập cho một currency cụ thể:
  • Amount — với discount loại Amount, đây là khoản khấu trừ; với discount loại Percentage, đây là mức tối đa code có thể giảm. Ánh xạ tới max_amount_possible trên API.
  • Minimum subtotal — code chỉ được áp dụng khi cart đạt subtotal này. 0 có nghĩa là không có mức tối thiểu.
  • Default — một mục có thể được đánh dấu là mặc định để các currency khác chưa được cấu hình chuyển đổi từ đó.
Bảng currency options với amount và minimum subtotal theo từng currency cho INR và USD
Discount loại Amount yêu cầu ít nhất một currency option có default có thể phân giải, vì khoản khấu trừ cố định không có ý nghĩa nếu không có currency. Currency options là tùy chọn đối với discount loại Percentage.
Minimum subtotal luôn được đo dựa trên giá ban đầu của cart, không phải tổng tạm tính giữa quá trình kết hợp các discount. Do đó, thứ tự kết hợp không bao giờ làm thay đổi việc có đạt mức tối thiểu hay không.

Trải nghiệm Checkout

  1. Người mua nhập code vào trường checkout.
  2. Các discount đủ điều kiện được áp dụng và tổng tiền cập nhật ngay lập tức.
Trang checkout hiển thị discount đã được áp dụng vào tổng tiền đơn hàng
Trong Checkout Sessions, truyền discount_codes (một mảng) để áp dụng trước một hoặc nhiều code và đặt feature_flags.allow_discount_code để hiển thị trường nhập. Các code được áp dụng theo thứ tự trong mảng, tối đa 20 code.

Kết hợp Discount Code

Checkout sessions, payments và subscriptions chấp nhận tối đa 20 code được kết hợp thông qua mảng discount_codes (tối đa 20 mục). Các code được áp dụng theo thứ tự trong mảng, vì vậy code đủ điều kiện đầu tiên sẽ giảm giá cơ bản trước, code tiếp theo sẽ giảm trên mức giá đã được giảm, và tiếp tục như vậy. Toàn bộ discount đã áp dụng được trả về trong response tại discount_ids (trên payments/subscriptions) và discounts (chi tiết phong phú hơn theo từng discount, bao gồm vị trí và số chu kỳ subscription còn lại).
Trường discount_code dạng số ít đã deprecated nhưng vẫn được hỗ trợ đầy đủ để đảm bảo backward compatibility — các integration hiện có tiếp tục hoạt động mà không cần thay đổi. Trường này không thể kết hợp với discount_codes trong cùng một request. Chúng tôi khuyến nghị chuyển sang discount_codes (dạng mảng) khi thuận tiện, ngay cả với một code duy nhất, để tận dụng khả năng kết hợp và response có cấu trúc phong phú hơn.

Quản lý API

Tạo discount code theo chương trình với type và amount.

API Reference

Xem create discount API.
Liệt kê tất cả discount hoặc truy xuất chi tiết để quản lý và kiểm toán.

API Reference

Duyệt các API liệt kê và truy xuất.
Tra cứu discount bằng code dễ đọc (ví dụ: “SAVE20”) thay vì ID nội bộ.

API Reference

Truy xuất discount theo tên code.
Sửa cấu hình discount, chẳng hạn như amount, thời hạn hoặc giới hạn.

API Reference

Tìm hiểu cách cập nhật chi tiết discount.
Kiểm tra discount có hợp lệ và có thể áp dụng hay không trước khi áp dụng.

API Reference

Xác thực việc sử dụng discount.
Vô hiệu hóa hoặc xóa các discount không còn cần thiết.

API Reference

Xóa discount.
Đối với discount có customer_eligibility được đặt thành specific, hãy quản lý những customer có thể đổi discount đó:
  • GET /discounts/{discount_id}/customers — liệt kê các customer đã được thêm (có phân trang, tối đa 100 customer mỗi trang).
  • POST /discounts/{discount_id}/customers — thêm customer theo ID. Lệnh gọi có tính idempotent và chấp nhận tối đa 1000 ID; tất cả ID phải tồn tại trong business của bạn. Response chỉ trả về các ID được gửi trong request đó, vì vậy hãy liệt kê endpoint để đọc toàn bộ allow list.
  • DELETE /discounts/{discount_id}/customers/{customer_id} — xóa một customer.

Các trường hợp sử dụng phổ biến

  • Ưu đãi giới thiệu: Khuyến mãi ra mắt trong thời gian giới hạn cho sản phẩm mới
  • Mua số lượng lớn hoặc B2B: Discount theo hợp đồng cho các nhóm sản phẩm được chọn
  • Chiến lược giữ chân: Mã win-back trong quy trình ngăn customer rời bỏ
  • Chiến dịch theo mùa: Khuyến mãi theo ngày lễ hoặc sự kiện

Ví dụ Integration

Tạo discount với metadata

Đính kèm các cặp key–value tùy chỉnh để theo dõi nội bộ.
Sử dụng metadata để gắn thẻ discount theo chiến dịch, nguồn hoặc ID tham chiếu nội bộ, qua đó đối soát lượt sử dụng và đo lường ROI sau này.

Áp dụng discount trong Checkout Sessions

Áp dụng trước một hoặc nhiều discount được kết hợp và hiển thị UI nhập code.

Áp dụng discount khi thay đổi plan

Cung cấp mức giá khuyến mãi khi customer nâng cấp hoặc hạ cấp subscription.
Đọc tất cả discount đã áp dụng từ subscription thông qua mảng discounts mới trong response của subscription. Mỗi mục bao gồm discount_id, position, cycles_remaining (dành cho subscriptions) và code ban đầu.

Cho phép nhập discount mà không áp dụng trước

Cho phép customer nhập code tại checkout mà không cần truyền code từ trước.

Thực tiễn tốt nhất

  • Đặt tên rõ ràng: Sử dụng các code dễ nhận biết và khớp với tên chiến dịch
  • Giới hạn thời gian: Thêm thời hạn để tạo tính cấp thiết và ngăn việc lạm dụng
  • Xác định phạm vi hợp lý: Giới hạn cho các product cụ thể để tránh thất thoát biên lợi nhuận
  • Xác thực sớm: Kiểm tra khả năng áp dụng code trước khi xác nhận checkout
  • Theo dõi tác động: Theo dõi lượt sử dụng và conversion theo từng chiến dịch
Discount code là công cụ mạnh để thu hút customer mới và giữ chân customer hiện tại. Hãy bắt đầu với các ưu đãi đơn giản, được đặt tên rõ ràng, xác thực kỹ lưỡng và lặp lại dựa trên hiệu quả.
Lần sửa đổi cuối 6 tháng 8, 2026