# Codebase Structure **Analysis Date:** 2026-04-27 ## Directory Layout ``` interblue.pl/ ├── admin658c34/ # Admin panel (obfuscated path for security) ├── app/ # Symfony app config, parameters │ └── config/ # parameters.php (DB credentials, cache) ├── classes/ # PrestaShop core model classes ├── config/ # Bootstrap, defines, autoloader ├── controllers/ # Core front/admin controllers ├── custom/ # Custom utility files (medoo.php, scripts) ├── modules/ # 133 installed modules ├── override/ # Class and controller overrides │ ├── classes/ # Core class overrides │ │ ├── order/ # Order, OrderInvoice, OrderPayment, OrderCarrier │ │ └── controller/ # FrontController override │ ├── controllers/ │ │ └── front/ # ProductController, OrderController, CategoryController │ └── modules/ # Module template overrides ├── src/ # Custom CQRS extensions (Order domain) │ ├── Adapter/Order/QueryHandler/ │ └── Core/Domain/Order/ ├── themes/ │ └── InterBlue/ # Custom theme │ ├── assets/ │ │ ├── css/ # SCSS sources + compiled CSS │ │ └── js/ # custom.js │ ├── config/ # theme.yml │ ├── mails/pl/ # Polish email templates │ └── templates/ # Smarty .tpl templates ├── var/cache/ # Compiled cache (do not edit) ├── .vscode/ # VS Code config (Live Sass, FTP) ├── .paul/ # PAUL project management └── changelog/ # Daily changelogs (YYYY-MM-DD.md) ``` ## Directory Purposes **`modules/` — Key custom and integration modules:** - `modules/customfeaturetab/` — Custom product tabs from feature values - `modules/AddOrderExtraFields/` — Order source field (Allegro/Sklep int.) - `modules/x13allegro/` — Allegro marketplace (primary, v7.4.0) - `modules/empikmarketplace/` — Empik marketplace (v2.3.0) - `modules/baselinker/` — BaseLinker order management - `modules/onepagecheckoutps/` — One-page checkout - `modules/dpdpoland/`, `modules/sensbitinpost/`, etc. — Shipping carriers - `modules/przelewy24/`, `modules/imoje/` — Payment gateways **`override/` — Critical overrides:** - `override/classes/order/Order.php` — Hooks before invoice/delivery number (modrefchange) - `override/classes/Hook.php` — GDPR cookie consent intercept (cookiesplus) - `override/classes/Dispatcher.php` — Custom URL routing (fsadvancedurl) - `override/classes/Link.php` — URL generation (fsadvancedurl) - `override/controllers/front/OrderController.php` — One-page checkout (onepagecheckoutps) - `override/controllers/front/ProductController.php` — Custom URL parsing **`themes/InterBlue/` — Custom theme:** - `assets/css/custom.scss` — Main stylesheet (EDIT THIS for CSS changes) - `assets/css/custom.css` — Compiled output (auto-generated, do not edit) - `assets/css/theme.scss` — Theme base styles - `assets/js/custom.js` — Custom JavaScript (jQuery) - `templates/catalog/product.tpl` — Product detail page - `templates/catalog/listing/` — Category/listing pages - `templates/checkout/` — Checkout templates - `config/theme.yml` — Theme config, hook assignments **`src/` — CQRS Order extensions:** - `src/Adapter/Order/QueryHandler/GetOrderForViewingHandler.php` - `src/Core/Domain/Order/QueryHandler/GetOrderForViewingHandlerInterface.php` - `src/Core/Domain/Order/QueryResult/` — Value objects ## Key File Locations **Configuration:** - `app/config/parameters.php` — DB credentials, memcached, mailer config - `config/defines.inc.php` — Constants, dev mode flag - `config/config.inc.php` — Main PS bootstrap - `.vscode/ftp-kr.json` — FTP deployment config - `.vscode/settings.json` — Live Sass Compiler settings **Core Logic:** - `override/classes/order/Order.php` — Order creation hooks - `modules/AddOrderExtraFields/override/classes/PaymentModule.php` — Order source logic - `modules/customfeaturetab/customfeaturetab.php` — Feature tab module - `modules/customfeaturetab/classes/CustomFeatureTabRule.php` — ObjectModel **Theme Entry:** - `themes/InterBlue/assets/css/custom.scss` — CSS entry point (edit this) - `themes/InterBlue/assets/js/custom.js` — JS entry point **Admin:** - `admin658c34/` — Admin panel root ## Naming Conventions **Files:** - Module main files: `{modulename}/{modulename}.php` (e.g., `customfeaturetab/customfeaturetab.php`) - ObjectModel classes: PascalCase (e.g., `CustomFeatureTabRule.php`) - Admin controllers: `Admin{Name}Controller.php` - Smarty templates: `{page-name}.tpl` in appropriate subdirectory **Directories:** - Modules: lowercase, no hyphens (e.g., `customfeaturetab`, `addcolumninlist`) - Theme templates: follow PrestaShop structure (`catalog/`, `checkout/`, `customer/`) **Database Tables:** - Custom tables use `ps_` prefix + module name (e.g., `ps_custom_feature_tab`) - Module columns on core tables: `ps_orders.order_source` ## Where to Add New Code **New CSS/SCSS changes:** - Edit: `themes/InterBlue/assets/css/custom.scss` - Auto-compiled by Live Sass Compiler on save **New custom module:** - Create: `modules/{modulename}/{modulename}.php` - ObjectModel: `modules/{modulename}/classes/{ModelName}.php` - Admin controller: `modules/{modulename}/controllers/admin/Admin{Name}Controller.php` - Templates: `modules/{modulename}/views/templates/` **New PrestaShop override:** - Add to: `override/classes/{ClassName}.php` or `override/controllers/{type}/{Name}Controller.php` - Clear PS class index after: delete `var/cache/*/class_index.php` **New product page content:** - Hook: `displayProductExtraContent` (or `displayProductAdditionalInfo`) - Implement in a module ## Special Directories **`var/cache/`:** - Purpose: Compiled Smarty templates, class indexes, config cache - Source: Auto-generated by PrestaShop - Action: Clear via admin panel after PHP/template changes **`admin658c34/`:** - Purpose: Admin panel - Security: Randomized folder name (obfuscation) - Not in git (typically) --- *Structure analysis: 2026-04-27* *Update when directory structure changes*