PrestaShop Knowledge Base
This skill exposes the curated PrestaShop platform knowledge base bundled with the prestashop-experts plugin. The prestashop-expert agent consults this KB before answering, but any agent can read these files directly.
When this skill is relevant
Load and read from this KB when the user mentions:
- PrestaShop mechanics independent of theme — hooks, modules, Smarty, themes parent-child, theme.yml, install vs distribution, migration.
- PS 8 vs PS 9 differences.
- Symfony BO (the new Symfony 6 + Twig back office in PS 9).
- Smarty templating in PS context —
{l}, {hook}, {widget}, {capture}.
- PS source clone vs distribution zip (
install-dev/ vs install/, admin-dev/ vs admin/).
- Hummingbird v2 theme — the default theme of PS 9 — and "which theme should I use" decision matrix.
- Composer/vendor,
parameters.php, .env in a PrestaShop project.
Do NOT load for: Panda-specific modules (use panda-kb), non-PrestaShop e-commerce, generic PHP/Symfony questions outside PrestaShop.
KB layout
references/
├── README.md # convenciones y índice de la KB
├── themes/ # 13 docs
│ ├── parent-child-feature.md # child theme mechanism (file path does NOT contain "child")
│ ├── theme-yml.md
│ ├── template-inheritance.md
│ ├── hummingbird-v2.md # PS 9 default theme + decision matrix vs Panda
│ └── ... (assets, layouts, etc.)
├── modules/ # 11 docs: arquitectura, config.xml, controllers, services.yml, lifecycle, hooks-in-modules
├── hooks/ # 3 docs: overview + listing of available hooks
├── smarty/ # 40 docs: Smarty templating + PS extensions
├── install/ # 1 doc: source-vs-distribution.md (PS 9 clone vs zip)
└── version-migration/ # 8 docs: PS 8 → 9, Symfony/Twig BO, upgrade process
How to use the KB
- Identify the topic of the question — themes / hooks / modules / smarty / install / migration — and jump to the matching subfolder.
themes/parent-child-feature.md is the canonical doc on child theme mechanics — note the file does NOT have "child" in its name (discoverability gotcha).
- For Symfony BO (PS 9) work:
version-migration/ has the most context. Source code in CWD lives in ./src/PrestaShopBundle/.
- For legacy controllers (PS 8 + some PS 9 screens): still in
./controllers/admin/ and ./classes/. Not deeply covered in the KB — read source.
- Smarty syntax →
smarty/ (40 files) covers Smarty base + PS extensions. Read before improvising.
- install/source-vs-distribution.md: critical when the CWD has
install-dev/, admin-dev/, or a missing vendor/ folder — those indicate a source clone, not a distribution zip.
Key facts to surface to agents
- PS 9 default theme: Hummingbird v2 (accessibility-focused, EAA-aligned). Panda is still a valid premium alternative.
- PHP 8.1+ required in PS 9. PS 8 accepts PHP 7.4+.
- Symfony BO: PS 9 moves most BO to Symfony 6 + Twig. Legacy
controllers/admin/AdminXController.php still exist for non-migrated screens.
- Active theme is in DB:
ps_shop.theme_name. Files in ./themes/ are not authoritative on which theme is active.
- Hooks:
displayX hooks → inject HTML on the front.
actionX hooks → execute logic on events.
- Definitive read in CWD:
./classes/Hook.php, ./src/Core/Module/....
- Installed hooks: DB table
ps_hook.
- Theme.yml is authoritative on layouts, PS compatibility, assets, and child-parent relationship (
parent: declares the parent — not parent_theme:).
Project shape heuristics (PS 9)
When entering a project, check these to identify what you're dealing with:
| Signal |
What it means |
./install-dev/ (not ./install/) |
Source clone from GitHub, not distribution zip. |
./admin-dev/ (not ./admin/) |
Same — /admin/ URL won't respond until rename. |
Missing ./vendor/ |
composer install pending. PS won't boot. |
./themes/hummingbird/ present but no compiled assets |
Needs npm ci && npm run build inside the theme to render. |
./.env / ./app/config/parameters.php |
Env config — DB credentials, secret, etc. |
Gaps to be honest about
- Coverage is uneven:
smarty/ (40 docs) is well covered, install/ (1 doc) and hooks/ (3 docs) are minimal. For gaps, read source in CWD or consult devdocs.prestashop-project.org externally.
- PS 8-specific quirks are less covered than PS 9. If the question is PS 8 and the KB doesn't have it, say so.
- Performance, caching, profiling are not deeply covered. Recognize the gap and read source.
Cross-skill pointer
For Panda-theme-specific questions (st* modules, SunnyToo widgets, Easy Builder, Panda demos, "which Panda module for X"), use the sibling skill panda-kb and the agent panda-expert.
1---2name: prestashop-kb3description: Curated knowledge base for the PrestaShop platform — versions 8 and 9. Covers theme mechanics (theme.yml, parent-child, template inheritance, assets), Smarty templating + PS extensions ({l}, {hook}, {widget}), hooks (overview + listings), modules architecture (config.xml, controllers, lifecycle), install vs distribution (PS 9 source clone), and version migration PS 8 → 9 (Symfony BO, Twig, upgrade process). Use for platform-level PrestaShop questions independent of any specific theme. For Panda-theme-specific questions (`st*` modules, SunnyToo, Easy Builder) use the `panda-kb` skill instead.4---56# PrestaShop Knowledge Base78This skill exposes the curated PrestaShop platform knowledge base bundled with the `prestashop-experts` plugin. The `prestashop-expert` agent consults this KB before answering, but any agent can read these files directly.910## When this skill is relevant1112Load and read from this KB when the user mentions:1314- **PrestaShop** mechanics independent of theme — hooks, modules, Smarty, themes parent-child, theme.yml, install vs distribution, migration.15- **PS 8 vs PS 9** differences.16- **Symfony BO** (the new Symfony 6 + Twig back office in PS 9).17- **Smarty** templating in PS context — `{l}`, `{hook}`, `{widget}`, `{capture}`.18- **PS source clone** vs distribution zip (`install-dev/` vs `install/`, `admin-dev/` vs `admin/`).19- **Hummingbird v2** theme — the default theme of PS 9 — and "which theme should I use" decision matrix.20- **Composer/vendor**, `parameters.php`, `.env` in a PrestaShop project.2122Do NOT load for: Panda-specific modules (use `panda-kb`), non-PrestaShop e-commerce, generic PHP/Symfony questions outside PrestaShop.2324## KB layout2526```27references/28├── README.md # convenciones y índice de la KB29├── themes/ # 13 docs30│ ├── parent-child-feature.md # child theme mechanism (file path does NOT contain "child")31│ ├── theme-yml.md32│ ├── template-inheritance.md33│ ├── hummingbird-v2.md # PS 9 default theme + decision matrix vs Panda34│ └── ... (assets, layouts, etc.)35├── modules/ # 11 docs: arquitectura, config.xml, controllers, services.yml, lifecycle, hooks-in-modules36├── hooks/ # 3 docs: overview + listing of available hooks37├── smarty/ # 40 docs: Smarty templating + PS extensions38├── install/ # 1 doc: source-vs-distribution.md (PS 9 clone vs zip)39└── version-migration/ # 8 docs: PS 8 → 9, Symfony/Twig BO, upgrade process40```4142## How to use the KB43441. **Identify the topic** of the question — themes / hooks / modules / smarty / install / migration — and jump to the matching subfolder.452. **`themes/parent-child-feature.md`** is the canonical doc on child theme mechanics — note the file does NOT have "child" in its name (discoverability gotcha).463. **For Symfony BO (PS 9) work**: `version-migration/` has the most context. Source code in CWD lives in `./src/PrestaShopBundle/`.474. **For legacy controllers (PS 8 + some PS 9 screens)**: still in `./controllers/admin/` and `./classes/`. Not deeply covered in the KB — read source.485. **Smarty syntax** → `smarty/` (40 files) covers Smarty base + PS extensions. Read before improvising.496. **install/source-vs-distribution.md**: critical when the CWD has `install-dev/`, `admin-dev/`, or a missing `vendor/` folder — those indicate a source clone, not a distribution zip.5051## Key facts to surface to agents5253- **PS 9 default theme**: Hummingbird v2 (accessibility-focused, EAA-aligned). Panda is still a valid premium alternative.54- **PHP 8.1+** required in PS 9. PS 8 accepts PHP 7.4+.55- **Symfony BO**: PS 9 moves most BO to Symfony 6 + Twig. Legacy `controllers/admin/AdminXController.php` still exist for non-migrated screens.56- **Active theme is in DB**: `ps_shop.theme_name`. Files in `./themes/` are not authoritative on which theme is active.57- **Hooks**:58 - `displayX` hooks → inject HTML on the front.59 - `actionX` hooks → execute logic on events.60 - Definitive read in CWD: `./classes/Hook.php`, `./src/Core/Module/...`.61 - Installed hooks: DB table `ps_hook`.62- **Theme.yml** is authoritative on layouts, PS compatibility, assets, and child-parent relationship (`parent:` declares the parent — **not** `parent_theme:`).6364## Project shape heuristics (PS 9)6566When entering a project, check these to identify what you're dealing with:6768| Signal | What it means |69|---|---|70| `./install-dev/` (not `./install/`) | Source clone from GitHub, not distribution zip. |71| `./admin-dev/` (not `./admin/`) | Same — `/admin/` URL won't respond until rename. |72| Missing `./vendor/` | `composer install` pending. PS won't boot. |73| `./themes/hummingbird/` present but no compiled assets | Needs `npm ci && npm run build` inside the theme to render. |74| `./.env` / `./app/config/parameters.php` | Env config — DB credentials, secret, etc. |7576## Gaps to be honest about7778- **Coverage is uneven**: `smarty/` (40 docs) is well covered, `install/` (1 doc) and `hooks/` (3 docs) are minimal. For gaps, read source in CWD or consult `devdocs.prestashop-project.org` externally.79- **PS 8-specific quirks** are less covered than PS 9. If the question is PS 8 and the KB doesn't have it, say so.80- **Performance, caching, profiling** are not deeply covered. Recognize the gap and read source.8182## Cross-skill pointer8384For Panda-theme-specific questions (`st*` modules, SunnyToo widgets, Easy Builder, Panda demos, "which Panda module for X"), use the sibling skill `panda-kb` and the agent `panda-expert`.