
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.Get Discount
Truy xuất một mã giảm giá theo ID để kiểm tra trạng thái và các hạn chế của mã.
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à các token khuyến mãi giúp giảm tổng giá trị đơn hàng khi thanh toán. Sử dụng chúng cho các chiến dịch theo mùa, ưu đãi cho lần mua đầu tiên, ưu đãi thu hút lại khách hàng hoặc mức giá B2B được thương lượng. Mã có thể giảm theo phần trăm (ví dụ: giảm 15%) hoặc theo số tiền cố định (ví dụ: giảm $5). Bạn có thể kết hợp tối đa 20 mã cho mỗi lần checkout, payment hoặc subscription, vì vậy khách hàng có thể cùng đổi cả ưu đãi chào mừng và mã chiến dịch trong một giao dịch. Giới hạn mã cho các sản phẩm cụ thể, giới hạn số lần mỗi khách hàng có thể sử dụng, đặt ngày hết hạn và kiểm soát những ai đủ điều kiện đổi mã.Lợi ích chính
- Giảm giá linh hoạt: Giảm theo phần trăm hoặc theo 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 checkout, payment hoặc subscription
- Kiểm soát có mục tiêu: Giới hạn theo sản phẩm, chu kỳ subscription và điều kiện đủ tư cách của khách hàng
- Quản trị chiến dịch: Ngày bắt đầu theo lịch, ngày hết hạn, giới hạn sử dụng tổng thể và theo từng khách hàng
- Định giá theo từng currency: Đặt số tiền giảm cố định, giới hạn số tiền và subtotal tối thiểu cho từng currency
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.
Thiết lập trên Dashboard
- Discount Name (bắt buộc): Nhãn nội bộ cho dashboard.
- Code (bắt buộc): Chuỗi khách hàng nhập khi checkout. Tạo mã ngẫu nhiên hoặc nhập mã của riêng bạn (tối thiểu 3 ký tự, tự động chuyển thành chữ hoa).
- Type (bắt buộc): Percentage (giảm theo phần trăm) hoặc Amount (giảm một số tiền cố định).
- Amount (bắt buộc): Với percentage, phần trăm giảm trong dashboard (ví dụ:
15cho 15%). Qua API, cùng giá trị này được biểu diễn theo basis points (1500). Với amount, đây là số tiền giảm cố định theo currency mặc định của mã. - Start Date (tùy chọn): Lên lịch để mã được kích hoạt vào một ngày trong tương lai. Để trống để kích hoạt ngay lập tức.
- Expiration Date (tùy chọn): Ngày sau đó mã không còn có thể được đổi.
- Usage Limit (tùy chọn, trong Advanced): Tổng số lần đổi tối đa trên tất cả khách hàng.
- Per-Customer Usage Limit (tùy chọn, trong Advanced): Số lần đổi tối đa của một khách hàng bất kỳ. Khi cả hai được thiết lập, 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ả khách hàng, khách hàng mua lần đầu, khách hàng hiện tại hoặc danh sách được chọn thủ công.
- Currency Options (tùy chọn): Số tiền giảm cho từng currency bạn bán. Xem Per-Currency Options.
- Product Restriction (tùy chọn): Giới hạn mã cho các sản phẩm cụ thể.
- Subscription Cycle Limit (tùy chọn, trong Advanced): Số chu kỳ billing mà giảm giá được áp dụng. Để trống nếu muốn áp dụng vô thời hạn.
- Preserve on Plan Change (tùy chọn): Giữ giảm giá khi subscription thay đổi plan (
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ộ.
- Require a minimum order value (tùy chọn, trong Advanced): Subtotal tối thiểu của giỏ hàng (theo từng currency) để mã được áp dụng.


Một
amount phần trăm được biểu diễn bằng basis points trong API — 1500 tương đương 15%. Một amount cố định là một giá trị tiền tệ và được tính theo các tùy chọn tiền tệ của mã.Loại mã giảm giá
Cả hai loại có thể được kết hợp trong cùng mảng
discount_codes và được áp dụng theo thứ tự trong mảng.

Đối tượng khách hàng đủ điều kiện
Thiết lậpcustomer_eligibility để kiểm soát những người có thể đổi mã:

Tùy chọn theo tiền tệ
Khi bán hàng bằng nhiều currency, hãy thiết lập hành vi theo từng currency cho mỗi mã. Trong Currency options, mỗi mục chỉ định:- Amount — với giảm giá Amount, đây là khoản giảm cố định theo currency đó; với giảm giá Percentage, đây là giới hạn giảm tối đa. Ánh xạ tới
max_amount_possibletrong API. - Default — đánh dấu một currency là mặc định. Các currency chưa được cấu hình sẽ được quy đổi từ currency mặc định này.
- Minimum subtotal — mã chỉ được áp dụng khi giỏ hàng đạt subtotal này theo currency đó.
0có nghĩa là không có mức tối thiểu.

Subtotal tối thiểu luôn được tính dựa trên giá gốc của giỏ hàng, không phải tổng đang có sau các giảm giá trước đó trong chuỗi kết hợp. Thứ tự kết hợp không bao giờ thay đổi việc có đạt mức tối thiểu hay không.
Trải nghiệm Checkout
Khách hàng nhập mã giảm giá vào trường checkout. Các mã đủ điều kiện được áp dụng ngay lập tức và tổng tiền được cập nhật.
Trong Checkout Sessions, truyền
discount_codes (một mảng) để áp dụng trước một hoặc nhiều mã. Trường nhập mã giảm giá được hiển thị theo mặc định. Đặt feature_flags.allow_discount_code thành false để ẩn trường này. Các mã được áp dụng theo thứ tự trong mảng, tối đa 20 mã.Kết hợp Discount Code
Checkout sessions, payments và subscriptions chấp nhận tối đa 20 mã kết hợp thông qua mảngdiscount_codes. Các mã được áp dụng theo thứ tự trong mảng: mã đủ điều kiện đầu tiên sẽ giảm giá khởi điểm, mã tiếp theo sẽ giảm trên mức giá đã được giảm, và tiếp tục như vậy. Khi Purchasing Power Parity được bật, giá khởi điểm là số tiền đã điều chỉnh theo PPP. Phản hồi bao gồm discount_ids (trên payments/subscriptions) và discounts (thông tin chi tiết hơn cho từng khoản giảm giá, bao gồm vị trí và số chu kỳ subscription còn lại).
Trường
discount_code dạng số ít đã bị deprecated nhưng vẫn được hỗ trợ đầy đủ để đảm bảo backward compatibility. Không thể kết hợp trường này với discount_codes trong cùng một request. Hãy chuyển sang discount_codes (dạng mảng) để tận dụng khả năng kết hợp và phản hồi chi tiết hơn.Với một subscription price đã bật Card-Optional at Zero Price, một chuỗi mã làm giảm toàn bộ số tiền phải trả hôm nay xuống
0 cũng sẽ bỏ qua yêu cầu về thẻ — khách hàng checkout mà không cần lưu payment method, tương tự như một mức giá 0 gốc.Quản lý API
Create discounts
Create discounts
Tạo mã giảm giá theo lập trình với loại và số tiền.
API Reference
Xem API tạo mã giảm giá.
List and retrieve
List and retrieve
Liệt kê tất cả mã giảm giá hoặc truy xuất thông tin chi tiết để quản lý và kiểm tra.
API Reference
Duyệt các API liệt kê và truy xuất.
Get discount by code
Get discount by code
Tra cứu mã giảm giá bằng mã dễ đọc (ví dụ: “SAVE20”) thay vì ID nội bộ.
API Reference
Truy xuất mã giảm giá theo tên mã.
Update discounts
Update discounts
Sửa đổi cấu hình mã giảm giá, chẳng hạn như số tiền, thời hạn hoặc các hạn chế.
API Reference
Tìm hiểu cách cập nhật thông tin chi tiết về mã giảm giá.
Retrieve a discount
Retrieve a discount
Tải mã giảm giá theo ID để kiểm tra trạng thái, số lần sử dụng và các hạn chế trước khi áp dụng.
API Reference
Lấy mã giảm giá theo ID.
Delete discounts
Delete discounts
Hủy kích hoạt hoặc xóa các mã giảm giá không còn cần thiết.
API Reference
Xóa mã giảm giá.
Manage the customer allow list
Manage the customer allow list
Đối với mã giảm giá có
customer_eligibility được đặt thành specific, hãy quản lý những khách hàng có thể đổi mã:GET /discounts/{discount_id}/customers— liệt kê các khách hàng đã thêm (có phân trang, tối đa 100 khách hàng mỗi trang).POST /discounts/{discount_id}/customers— thêm khách hàng theo ID. Lệnh gọi này 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. Phản hồi chỉ trả về các ID được gửi trong yêu cầu đó, 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 khách hàng cụ thể.
Các trường hợp sử dụng phổ biến
- Ưu đãi mở đầu: Khuyến mãi ra mắt có thời hạn cho sản phẩm mới
- Bán số lượng lớn hoặc B2B: Giảm giá theo hợp đồng cho các nhóm sản phẩm được chọn
- Chiến lược giữ chân: Mã khuyến mãi thu hút lại khách hàng trong quy trình ngăn ngừa churn
- Chiến dịch theo mùa: Khuyến mãi theo ngày lễ hoặc sự kiện
Ví dụ tích hợp
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ộ.Áp dụng Discount trong Checkout Sessions
Áp dụng trước một hoặc nhiều discount kết hợp và hiển thị giao diện nhập mã.Áp dụng Discount trong quá trình thay đổi Plan
Cung cấp mức giá khuyến mãi khi khách hàng nâng cấp hoặc hạ cấp subscription.discount_codes kiểm soát cách xử lý discount:
Đọc tất cả discount đã áp dụng từ mảng
discounts của subscription trong phản hồi. Mỗi mục bao gồm discount_id, position, cycles_remaining và mã gốc.Ẩn trường mã giảm giá
Trường nhập mã giảm giá được hiển thị theo mặc định. Đặtallow_discount_code thành false để ẩn trường này.
Các phương pháp hay nhất
- Đặt tên rõ ràng: Sử dụng các mã dễ nhận biết và phù hợp với tên chiến dịch.
- Giới hạn thời gian: Thêm ngày hết hạn để tạo cảm giác cấp bách và ngăn việc sử dụng sai mục đích.
- Giới hạn phạm vi hợp lý: Giới hạn theo các sản phẩm cụ thể để tránh làm 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 của mã trước khi xác nhận checkout.
- Theo dõi tác động: Theo dõi mức sử dụng và tỷ lệ chuyển đổi theo từng chiến dịch.