Auto-generated by paul:map-codebase — 4 parallel analysis agents. Covers stack, architecture, conventions, and concerns. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
74 lines
3.2 KiB
Markdown
74 lines
3.2 KiB
Markdown
# Codebase Map — orderPRO
|
|
|
|
> Generated: 2026-03-12
|
|
> Branch: main
|
|
|
|
## What is this project?
|
|
|
|
**orderPRO** is a custom PHP 8.4 order management system (OMS) that aggregates and manages orders from multiple sales channels (Allegro marketplace, shopPRO e-commerce platform). It handles order import, status synchronization, shipment management, and product data enrichment. The system is entirely self-contained — no Composer runtime dependencies — built on a hand-rolled micro-framework.
|
|
|
|
---
|
|
|
|
## Documents
|
|
|
|
| Document | Contents |
|
|
|----------|----------|
|
|
| [STACK.md](./STACK.md) | Language, framework, DB, integrations, build tools, dependencies |
|
|
| [ARCHITECTURE.md](./ARCHITECTURE.md) | Directory layout, layers, request flow, domain model, all 24 DB tables |
|
|
| [CONVENTIONS.md](./CONVENTIONS.md) | Naming rules, design patterns, DB access style, frontend conventions, testing |
|
|
| [CONCERNS.md](./CONCERNS.md) | Tech debt, bugs, security gaps, incomplete features — with severity levels |
|
|
|
|
---
|
|
|
|
## Quick Reference
|
|
|
|
### Stack
|
|
- **PHP 8.4**, zero Composer runtime deps, hand-rolled framework in `src/Core/`
|
|
- **MySQL** via raw PDO prepared statements (no ORM)
|
|
- **Frontend**: plain PHP views, SCSS → CSS via Dart Sass, jQuery + custom alert module
|
|
- **Tests**: PHPUnit 11 (currently zero active test coverage)
|
|
|
|
### External Integrations
|
|
| Integration | Purpose |
|
|
|-------------|---------|
|
|
| **Allegro** | OAuth 2.0, order import, status sync, shipment management |
|
|
| **shopPRO** | API key auth, order/product import |
|
|
| **Apaczka** | HMAC-signed REST, multi-carrier shipping aggregator |
|
|
| **InPost ShipX** | Bearer token REST, parcel lockers (settings only — shipments route via Allegro WZA workaround) |
|
|
| **GS1** | Barcode/product data (bin scripts) |
|
|
|
|
### Architecture in One Sentence
|
|
`public/index.php` → `Application` → `Router` → middleware pipeline → controller (in `src/Modules/`) → service → repository (raw PDO) → plain PHP view.
|
|
|
|
### Top Concerns to Address
|
|
1. **OAuth refresh duplicated** across 4 Allegro services → extract `AllegroTokenRefreshService`
|
|
2. **Utility methods duplicated** 15+ times across repositories → shared trait or utility class
|
|
3. **Zero test coverage** — `tests/` directory is empty
|
|
4. **Known bug**: `AllegroShipmentService.php:255` — ZPL branch always returns `'A6'` (dead conditional)
|
|
5. **InPost shipment provider stub** — settings exist, no `ShipmentProviderInterface` implementation
|
|
6. **No `CURLOPT_SSL_VERIFYPEER`** set in any cURL client — implicit trust of TLS certs
|
|
|
|
---
|
|
|
|
## Module Overview
|
|
|
|
| Module | Path | Responsibility |
|
|
|--------|------|----------------|
|
|
| Auth | `src/Modules/Auth/` | Login, session management |
|
|
| Orders | `src/Modules/Orders/` | Order list, detail, filters, status updates |
|
|
| Settings | `src/Modules/Settings/` | Integration config, carrier mapping, status groups |
|
|
| Shipments | `src/Modules/Shipments/` | Shipment creation, label printing, provider dispatch |
|
|
| Cron | `src/Modules/Cron/` | Cron job runner, schedule management |
|
|
| Users | `src/Modules/Users/` | User management |
|
|
|
|
---
|
|
|
|
## Entry Points
|
|
|
|
| Entry | Path |
|
|
|-------|------|
|
|
| Web app | `public/index.php` |
|
|
| Route definitions | `routes/web.php` |
|
|
| CLI scripts | `bin/` (8 scripts) |
|
|
| DB migrations | `database/migrations/` |
|