Koleksi carts menyimpan staging item sebelum checkout. Engine Bot menulis + membaca koleksi ini (tidak shared dengan dazoapp).
Model
models/carts.js:3 — cartsSchema, mongoose.model("carts", cartsSchema).
Field
| Field | Tipe | Nullable | Catatan |
|---|---|---|---|
id | String | ❌ | Primary key — unique: true, required: true (custom UUID) |
wa_customer | String | ❌ | Nomor WhatsApp customer — required: true |
store_id | String | ❌ | Tenant scope — required: true |
product_id | String | ❌ | required: true |
variant_id | String | ✅ | Default null — optional |
quantity | Number | ❌ | Default 0 — required: false |
type_product | String | ❌ | required: true — physical / digital |
created_at | Date | ❌ | Default Date.now |
updated_at | Date | ❌ | Default Date.now |
Inkonsistensi yang diketahui
Cara akses di service
// service/carts.js
const carts = await Cart.find({
wa_customer: phone,
store_id: storeId,
});
// checkout — cart dihapus (tidak transactional)
await Cart.deleteMany({ wa_customer: phone, store_id: storeId });Checkout flow
addToCarts
-> cart items
-> initiateOrChangeProductOrder(id_carts)
-> create/update Orders + Order_Items
-> cart cleanup (deleteMany)Mixed physical dan digital cart ditolak oleh order service saat checkout. Lihat Order Flow.
Cart/product scope tidak konsisten
Kembali ke
- Schema Index — daftar semua koleksi
- Order Flow — alur checkout
- Multi-tenant — tenant scope