- stack.md - PrestaShop 1.7.x, PHP, Smarty, SCSS, modules - architecture.md - MVC + hooks, override mechanism, CQRS in src/ - structure.md - Directory layout, key file locations - conventions.md - PHP/Smarty/SCSS/JS conventions, PS patterns - testing.md - No automated tests in custom modules - integrations.md - Allegro, Empik, BaseLinker, shipping, payments - concerns.md - Override fragility, EOL risk, missing CI/CD - db_schema.md - Custom tables, modified core tables Co-Authored-By: Claude <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Database Schema
Analysis Date: 2026-04-27
Connection
- Host:
dedyk75.cyber-folks.pl - Database:
interblue_sklep - Table prefix:
ps_ - Engine: InnoDB
- Charset: UTF-8 (note: custom tables use
utf8notutf8mb4) - Cache: Memcached
Core PrestaShop Tables (selected)
Standard PrestaShop tables present (not listed exhaustively — see PS docs):
ps_orders— Orders (modified by AddOrderExtraFields, see below)ps_order_history— Order status historyps_order_invoice— Invoicesps_order_payment— Payment records (modified by AddOrderExtraFields)ps_product— Productsps_product_lang— Product translationsps_cart— Shopping cartsps_customer— Customers
Custom Tables (Added by Modules)
ps_custom_feature_tab — Feature Tab Rules
Created by: modules/customfeaturetab/customfeaturetab.php
| Column | Type | Notes |
|---|---|---|
| id_custom_feature_tab | INT UNSIGNED | PRIMARY KEY, AUTO_INCREMENT |
| id_feature | INT UNSIGNED | Feature ID from ps_feature |
| id_feature_value | INT UNSIGNED | Feature value ID |
| position | INT UNSIGNED | Display order |
| active | TINYINT(1) | Enable/disable |
| date_add | DATETIME | |
| date_upd | DATETIME |
ps_custom_feature_tab_lang — Feature Tab Content (Multilang)
Created by: modules/customfeaturetab/customfeaturetab.php
| Column | Type | Notes |
|---|---|---|
| id_custom_feature_tab | INT UNSIGNED | FK → ps_custom_feature_tab |
| id_lang | INT UNSIGNED | FK → ps_lang |
| title | VARCHAR(255) | Tab title |
| content | TEXT | Tab HTML content |
Primary key: (id_custom_feature_tab, id_lang)
Modified Core Tables (by Modules)
ps_orders — Order Source Field
Added by: modules/AddOrderExtraFields/AddOrderExtraFields.php
| Column | Type | Notes |
|---|---|---|
| order_source | ENUM('Allegro', 'Sklep int.', 'Telefonicznie') | Added via ALTER TABLE |
Logic: Set in modules/AddOrderExtraFields/override/classes/PaymentModule.php
- 'Allegro' — when
$order->module == 'x13allegro' - 'Sklep int.' — default for web store orders
- 'Telefonicznie' — manual phone orders (set manually in admin)
ps_order_payment — Card Payment Field
Added by: override/classes/order/OrderPayment.php
- Additional field for storing card payment type (max 254 chars)
Migration Approach
- No migration framework — DDL executed in module
install()methods - ALTER TABLE statements in
AddOrderExtraFields.php - CREATE TABLE in
customfeaturetab.php - No rollback scripts (uninstall drops custom tables)
- No version tracking for schema changes
Known Issues
- Custom tables use
utf8charset (should beutf8mb4for full Unicode/emoji support) ps_custom_feature_tabhas no index onid_featureorid_feature_value(potential slow queries on large catalogs)order_sourceenum requires ALTER TABLE to add new order sources
DB schema: 2026-04-27 Update when modules add/modify tables