Giới thiệu
Metadata cho phép bạn lưu trữ dữ liệu key-value của riêng mình trên các object của Dodo Payments, chẳng hạn như ID đơn hàng từ hệ thống của bạn hoặc tham chiếu CRM. Bạn có thể đính kèm metadata vào hầu hết các object, bao gồm payment, subscription, customer và product. Xem Các object được hỗ trợ để biết danh sách đầy đủ.Tổng quan
Metadata tuân theo các quy tắc sau:- Khóa metadata có thể dài tối đa 40 ký tự (tối đa 100 ký tự đối với các usage event được tiếp nhận thông qua
POST /events/ingest). - Giá trị metadata có thể là string, integer, number hoặc boolean. Giá trị string có thể dài tối đa 500 ký tự.
- Objects, arrays và
nullkhông được chấp nhận làm giá trị metadata. - Bạn có thể thêm tối đa 50 cặp key-value metadata cho mỗi object. Request có nhiều hơn sẽ trả về
MAXIMUM_KEYS_REACHEDmã lỗi. - API không thể tìm kiếm hoặc lọc theo metadata, nhưng sẽ trả về metadata trong các API response và webhook.
Trường hợp sử dụng
Sử dụng metadata để:- Lưu trữ ID hoặc tham chiếu bên ngoài.
- Thêm ghi chú nội bộ.
- Liên kết các object của Dodo Payments với các bản ghi trong hệ thống của bạn.
- Phân loại giao dịch.
- Thêm các thuộc tính tùy chỉnh để reporting.
Thêm Metadata
Thêm metadata khi bạn tạo hoặc cập nhật một object thông qua API. Đối với product, bạn cũng có thể thêm metadata trong dashboard.Qua API
Truyền một objectmetadata trong request body. Các ví dụ dưới đây sử dụng TypeScript SDK và giả định rằng client đã được khởi tạo:
Qua Dashboard UI (Chỉ dành cho Product)
Để thêm metadata vào product mà không cần viết code, hãy mở product trong Products và thêm các cặp key-value trong phần metadata. Bạn có thể thực hiện việc này khi tạo hoặc chỉnh sửa product.
Truy xuất Metadata
API response bao gồm metadata khi bạn truy xuất một object:Việc truy xuất một checkout session (
GET /checkouts/{id}) không trả về metadata. Response về trạng thái session chỉ chứa id, created_at, payment_id, payment_status, customer_email và customer_name. Để đọc metadata bạn đã đính kèm khi tạo session, hãy truy xuất payment tương ứng bằng payment_id được trả về.Tìm kiếm và Lọc
API không thể tìm kiếm theo metadata. Để tìm một object theo giá trị metadata:- Lưu các mã định danh quan trọng của bạn trong metadata.
- Liệt kê hoặc truy xuất các object thông qua API.
- Lọc kết quả trong code ứng dụng của bạn.
Thực tiễn tốt nhất
Tuân theo các hướng dẫn này để metadata luôn hữu ích.Nên:
- Sử dụng quy ước đặt tên nhất quán cho các key metadata.
- Ghi lại schema metadata trong nội bộ.
- Giữ value ngắn gọn và có ý nghĩa.
- Chỉ sử dụng metadata cho dữ liệu tĩnh.
- Cân nhắc sử dụng tiền tố thể hiện hệ thống nguồn, chẳng hạn như
crm_idhoặcinventory_sku.
Không nên:
- Lưu trữ dữ liệu nhạy cảm trong metadata.
- Sử dụng metadata cho các value thường xuyên thay đổi.
- Phụ thuộc vào metadata cho logic nghiệp vụ quan trọng.
- Sao chép thông tin mà object đã chứa.
- Sử dụng ký tự đặc biệt trong key metadata.