← 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