D
Module

Order

Largest module in the codebase — OrderController 2,987 lines, Order/Main.vue 9,668 lines. Creation flow, status, observer, invoice, and service integration.

The Order module is the largest in dazoapp. Key points (see Indonesian version for details):

  • Two status dimensions: status (pending/process/delivery/complete/cancel/complained/refund) and payment_status (unpaid/confirmed/paid)
  • OrderObserver triggers on payment_status → paid: wallet deposit (instant_payment only), stock decrement, digital product link delivery
  • Mass update does not trigger observer — must use $order->save(). change_payment_status (single) uses mass update (bug-prone), change_payment_status_multiple uses save() (works)
  • Invoice via DomPDF (invoice.blade.php, 705 lines), export via Maatwebsite Excel
  • Integrates with backend Go (url_api) for sending messages, and engine WhatsApp (url_engine) for chat sync
  • Order/Main.vue is a 9,668-line god component with 8 modals and 2 tabs