D
Engineering

Settings

Koleksi settings — origin, payment methods, couriers, followUp templates, general_setting. Read-only di engine-bot, writer dazoapp. Payment methods dari shipping.payment_method.

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

FieldTipeCatatan
idStringPrimary key — required: true
store_idStringTenant scope — required: true
followUpObjectTemplate followUp per metode — lihat di bawah
shippingObjectOrigin + payment methods + couriers — lihat di bawah
general_settingObjectStock management, auto-cancel, email, security, epayment, reseller
social_mediaObjectfacebook, instagram, youtube
created_at, updated_atDaterequired: true

shipping (shippingSchemaV2)

js
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:

CodeMetode
bank transferTransfer manual ke rekening
codCash on delivery
qrQRIS
instant_paymentDazoApp + 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

js
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

js
// 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

MasalahDetail
Dua shipping schemashippingSchema (V1) dan shippingSchemaV2 — mainSchema pakai shippingSchemaV2 (models/settings.js:255), V1 tidak terpakai
require typologistics.code pakai require: true (typo — bukan required)

Kembali ke