Repository Map
High-level directory structure
logidav/
├── app/ # Symfony app config (parameters.yml, config.yml, routing)
├── src/ # PHP source code (Symfony bundles)
│ ├── AppBundle/ # Main bundle — commands, services, controllers, entities
│ ├── CoreBundle/ # Shared infrastructure — base entities, API clients, utilities
│ ├── EventBundle/ # Event system and listeners
│ ├── ErpBundle/ # Marketplace workflow orchestration
│ ├── UserBundle/ # User management and authentication
│ ├── MeduseBundle/ # Meduse integration layer
│ ├── BigbuyBundle/ # Bigbuy supplier integration
│ ├── VidaxlBundle/ # Vidaxl supplier integration
│ ├── AsirGroupBundle/ # AsirGroup supplier integration
│ ├── CmpBundle/ # CMP supplier integration
│ ├── NotioBundle/ # Notio supplier integration
│ └── MauroFerrettiSRLBundle/ # MauroFerretti supplier integration
├── tests/ # PHPUnit tests (mirrors src/ structure)
├── web/ # Public web root
├── docs/ # Global Menzzo docs submodule
├── tools/ # Dev tools (cronjob doc generator, php-cs-fixer)
├── CLAUDE.md # AI agent instructions
├── AGENTS.md # Full project documentation
└── CODING_STYLE.md # Code conventions
Bundle organization
AppBundle — the main bundle
Contains the majority of business logic:
| Directory | Purpose |
|---|---|
Command/ | Symfony console commands (cronjobs), organized by domain |
Services/ | Business logic services — reusable across commands/controllers |
Controller/ | HTTP controllers |
Entity/ | Doctrine entities |
Repository/ | Custom Doctrine query classes |
Resources/config/ | Service definitions (services.yml) |
CoreBundle — shared infrastructure
Cross-cutting concerns used by all other bundles:
- Base entities shared across the application
- API client wrappers (Magento, marketplace, carrier APIs)
- Utility components and helpers
- Global configuration
Supplier bundles
Each supplier has a dedicated bundle (BigbuyBundle, VidaxlBundle, etc.) that encapsulates:
- Product import logic
- Stock synchronization
- Supplier-specific API clients
- Custom entity mappings
Service registration
Services are registered in each bundle's Resources/config/services.yml:
mz.my_service:
class: "%mz.my_service.class%"
autowire: true
calls:
- [ setEntityManager, [ "@doctrine.orm.entity_manager" ] ]
:::info Service ID convention
Service IDs follow the pattern mz.<service_name>. The mz prefix stands for Menzzo, the primary brand.
:::
Where do I find...?
| I'm looking for... | Location |
|---|---|
| Cronjob / command code | src/AppBundle/Command/ |
| API clients | src/CoreBundle/Api/ |
| Business services | src/*/Services/ |
| Doctrine entities | src/*/Entity/ |
| Custom repositories | src/*/Repository/ |
| Tests | tests/ |
| App config | app/config/ |
| Service definitions | src/*/Resources/config/services.yml |
| Supplier integrations | src/*Bundle/ (Bigbuy, Vidaxl, etc.) |
| Documentation source | docs/content/projects/logidav/ |
| Dev tools | tools/ |