← Back to Documentation

Project Workflow Diagrams

Rendered in-browser with Mermaid. If diagrams don’t render, check network access to the Mermaid CDN or open the raw Markdown at /docs/WORKFLOW.md.

High-Level Architecture

flowchart LR U[User (Browser)] -->|HTTP(S)| W[Web Server (webroot/)] W --> APP[CakePHP App] APP -->|ORM| DB[(MySQL)] APP -->|Reads/Writes| FS[(webroot/uploads & uploaddata)] APP -->|SFTP (read)| SFTP[(Remote /outbound/shipments)] subgraph App Layers APP --> C[Controllers] C --> M[Models (Tables/Entities)] C --> V[Templates] end

Authentication Flow

sequenceDiagram participant U as User participant S as Application (Authentication) U->>S: GET /users/login U->>S: POST /users/login (email, password) S-->>S: Validate via Authentication.Password alt success S-->>U: 302 → /orders else failure S-->>U: Login form + error end

Orders: CSV Import (Retailers)

sequenceDiagram participant U as User participant O as OrdersController.uploadorder participant FS as Filesystem (webroot/uploads) participant DB as MySQL (orders) U->>O: POST /orders/uploadorder (CSV file) O->>FS: Save uploaded CSV O-->>O: Parse headers/rows, normalize fields O->>DB: Insert rows (batch, sequence, vendor, PO, items) O-->>U: Flash + redirect to /orders (batches view)

Orders: Sales Order Export (Fishbowl)

sequenceDiagram participant U as User participant O as OrdersController.downloadorders participant DB as MySQL (orders) U->>O: GET /orders/downloadorders/{batch} O->>DB: Query batch lines (pending) O-->>O: Build SalesOrder.csv (SO + Item rows) Note over O: Carrier chosen via carrier_details\nFallback: UPS Ground O-->>U: Download SalesOrder.csv O->>DB: Mark salesstatus=1

Customers/Jobs Export (Fishbowl)

sequenceDiagram participant U as User participant O as OrdersController.downloadjobs participant DB as MySQL (orders) U->>O: GET /orders/downloadjobs/{batch} O->>DB: Query distinct PO/customer for batch (SO records) O-->>O: Build Customers.csv O-->>U: Download Customers.csv O->>DB: Mark jobsstatus=1

Tracking: SFTP Intake → Consolidated CSV

sequenceDiagram participant U as User participant T as OrdersController.updownloadtrackingfile participant R as SFTP Server (/outbound/shipments) participant FS as Filesystem (webroot/uploaddata/TrackingFiles) participant DB as MySQL (tackingfiles) U->>T: GET /orders/updownloadtrackingfile T->>R: List files (SFTP creds from config) T-->>T: Sort by mtime; pick latest 7 T->>DB: Insert/update file metadata (exportstatus) T->>FS: Download Excel files T-->>T: Read Excel rows (PhpSpreadsheet) T-->>FS: Write ShipCartonTracking.csv Note over T: Tracking numbers are quoted in CSV T-->>U: Download ShipCartonTracking.csv T->>DB: Set exportstatus=1 for processed

UPC Management (CRUD)

sequenceDiagram participant U as User participant C as UpcsController participant DB as MySQL (upcs) U->>C: List/Add/Edit/Delete C->>DB: ORM operations on upcs C-->>U: Paginated lists and forms
Raw Markdown is also available at /docs/WORKFLOW.md.
← Back to Documentation