Pendahuluan
Metadata memungkinkan Anda menyimpan data key-value Anda sendiri pada objek Dodo Payments, seperti ID pesanan dari sistem Anda atau referensi CRM. Anda dapat melampirkan metadata ke sebagian besar objek, termasuk payments, subscriptions, customers, dan products. Lihat Supported Objects untuk daftar lengkapnya.Ikhtisar
Metadata mengikuti aturan berikut:- Kunci metadata dapat memiliki panjang hingga 40 karakter (hingga 100 karakter untuk usage events yang diserap melalui
POST /events/ingest). - Nilai metadata dapat berupa string, integer, number, atau boolean. Nilai string dapat memiliki panjang hingga 500 karakter.
- Object, array, dan
nulltidak diterima sebagai nilai metadata. - Anda dapat menambahkan hingga 50 pasangan kunci-nilai metadata per object. Request dengan jumlah lebih banyak akan menghasilkan
MAXIMUM_KEYS_REACHEDkode error. - API tidak dapat melakukan pencarian atau pemfilteran berdasarkan metadata, tetapi API mengembalikan metadata dalam respons API dan webhook.
Use Cases
Gunakan metadata untuk:- Menyimpan ID atau referensi eksternal.
- Menambahkan catatan internal.
- Menautkan object Dodo Payments ke record dalam sistem Anda.
- Mengategorikan transaksi.
- Menambahkan atribut khusus untuk reporting.
Menambahkan Metadata
Tambahkan metadata saat Anda membuat atau memperbarui object melalui API. Untuk products, Anda juga dapat menambahkan metadata di dashboard.Melalui API
Teruskan objectmetadata dalam request body. Contoh di bawah menggunakan TypeScript SDK dan mengasumsikan client telah diinisialisasi:
Melalui Dashboard UI (Hanya Products)
Untuk menambahkan metadata ke product tanpa menulis kode, buka product di Products dan tambahkan pasangan key-value di bagian metadata. Anda dapat melakukannya saat membuat atau mengedit product.
Mengambil Metadata
API responses menyertakan metadata saat Anda mengambil object:Mengambil checkout session (
GET /checkouts/{id}) tidak mengembalikan metadata. Status response session hanya berisi id, created_at, payment_id, payment_status, customer_email, dan customer_name. Untuk membaca metadata yang Anda lampirkan saat membuat session, ambil payment yang dihasilkan menggunakan payment_id yang dikembalikan.Mencari dan Memfilter
API tidak dapat melakukan pencarian berdasarkan metadata. Untuk menemukan object berdasarkan nilai metadata:- Simpan identifier penting Anda dalam metadata.
- List atau ambil object melalui API.
- Filter hasilnya dalam kode aplikasi Anda.
Praktik Terbaik
Ikuti panduan berikut agar metadata tetap bermanfaat.Lakukan:
- Gunakan konvensi penamaan yang konsisten untuk key metadata.
- Dokumentasikan schema metadata Anda secara internal.
- Buat nilainya singkat dan bermakna.
- Gunakan metadata hanya untuk data statis.
- Pertimbangkan prefix yang menunjukkan sistem sumber, misalnya
crm_idatauinventory_sku.
Jangan lakukan:
- Simpan data sensitif dalam metadata.
- Gunakan metadata untuk nilai yang sering berubah.
- Andalkan metadata untuk business logic yang penting.
- Gandakan informasi yang sudah terdapat dalam object.
- Gunakan karakter khusus dalam key metadata.