Koleksi settings menyimpan config per store — origin, payment methods, couriers, followUp templates, dan general_setting. Engine Bot read-only — writer utama adalah dazoapp.
Model
models/settings.js:252 — mainSchema, mongoose.model("Settings", mainSchema).
Field utama
| Field | Tipe | Catatan |
|---|---|---|
id | String | Primary key — required: true |
store_id | String | Tenant scope — required: true |
followUp | Object | Template followUp per metode — lihat di bawah |
shipping | Object | Origin + payment methods + couriers — lihat di bawah |
general_setting | Object | Stock management, auto-cancel, email, security, epayment, reseller |
social_media | Object | facebook, instagram, youtube |
created_at, updated_at | Date | required: true |
shipping (shippingSchemaV2)
shipping: {
id: Number,
province, city, district, subdistrict, postal_code: String, // origin
address: String,
payment_method: [{
value: String,
label: String,
status: Boolean,
image: { original_name, stored_name: String },
}],
cod_percentage: Number,
cod_type: String,
cod_min, cod_max: Number,
otomatic: {
logistics: [{
name: String,
code: String,
logo: String,
status: Boolean,
is_custom: Boolean,
description: String,
shipping_cost_enabled: Boolean,
shipping_cost: Number,
}],
services: [{ name: String, status: Boolean }],
},
}Payment methods
settings.shipping.payment_method — array metode yang aktif untuk store:
| Code | Metode |
|---|---|
bank transfer | Transfer manual ke rekening |
cod | Cash on delivery |
qr | QRIS |
instant_payment | DazoApp + DOKU checkout |
Label dan code berasal dari settings. Saat instant payment aktif, payment agent menyembunyikan bank transfer dan QRIS — COD tetap dapat ditampilkan bila aktif. Lihat Order Flow.
followUp (followUpSchema)
Struktur sama dengan Orders followUp, per metode (bank_transfer, cod, epayment) per checkpoint (welcome, order_detail, follow_up_1–follow_up_4, processing, completed, up_selling, redirect). Hanya field text (String, required: true).
general_setting
general_setting: {
stock_management: {
trigger_decrease: String,
visibility: String,
trigger_recovery: String,
},
otomatic_canceled: {
status: Boolean,
day: Number, // auto-cancel setelah N hari
},
email_transaction: {
status: Boolean,
email: String,
},
security: {
blocked_ip: [String],
},
epayment: {
change_status: String,
},
meta_tag: [String],
reseller: {
commission_type: String,
},
}Cara akses di service
// service/ongkir.js / service/order.js
const settings = await Settings.findOne({ store_id: storeId });
const paymentMethods = settings.shipping.payment_method.filter(m => m.status);Inkonsistensi yang diketahui
| Masalah | Detail |
|---|---|
| Dua shipping schema | shippingSchema (V1) dan shippingSchemaV2 — mainSchema pakai shippingSchemaV2 (models/settings.js:255), V1 tidak terpakai |
require typo | logistics.code pakai require: true (typo — bukan required) |
Kembali ke
- Schema Index — daftar semua koleksi
- Order Flow — cara payment methods dipakai
- External Services — shared dengan dazoapp