Admin & backoffice
De backoffice is bereikbaar op manage.atraxion.com en is uitsluitend bestemd voor Atraxion-medewerkers. Klanten hebben er geen toegang toe. De admin is een custom legacy PHP MVC-applicatie onder de map _admin/. Er is geen aparte _admin/index.php — de admin draait via hetzelfde front-controller entry point als de webshop (_www/index.php) en wordt ontsloten via admin-specifieke URL-slugs (bijv. /nl/admin-menu).
Architectuur
Routering
Twee routeringsmechanismen naast elkaar:
1. Volledige paginaroutes (_admin/config/pages.xml) — 4 routes:
| Routenaam |
Controller |
URL |
admin.orders |
atx\orders\AdminOrderController |
/nl/admin-bestellingen |
admin.wheels |
atx\articles\wheels\AdminWheelTemplateController |
/nl/admin-wheels |
admin.3D |
atx\vehicles\simulator\AdminThreeDModelController |
/nl/admin-3D |
admin.menu |
atx\general\AdminMenuPageController |
/nl/admin-menu |
2. AJAX-eindpuntroutes (_admin/config/routing.php) — 77 routes. Formaat: admin.<naam> → controller-klasse. De actie wordt bepaald door de request-parameter (bijv. admin.customer met action=getCustomers roept AdminCustomerController::getCustomers() aan).
Klasse-hiërarchie
atx\Controller (_core/)
└── atx\WebController (_core/) — AJAX-handlers
└── atx\AdminController (_admin/) — lege schil, vestigt admin-namespace
└── atx\<domein>\Admin*Controller — domein-controllers
atx\PageController (_core/) — volledige paginaweergave
└── atx\orders\AdminOrderController etc.
View-klassen spiegelen de controllers één-op-één (bijv. AdminCustomerController → AdminCustomerView). Views leveren HTML-fragmenten als AJAX-antwoorden of volledige paginaweergaven.
Navigatiestructuur (15 groepen)
De navigatie is geconfigureerd in _admin/config/menu.php:
| Groep |
Voornaamste functie |
| Queue |
Inkomende/uitgaande queues (App, Main, R6, R6 #2) |
| Verkopen |
Webshop-orders, platform-orders |
| Transport |
Transport- en verzendregels |
| Betalen |
Betaalmethodes, betaalgewichten |
| Klanten |
Klantgegevens, klanttags, verjaardagen, platformen, exportgroepen, online gebruikers, mini-shops, Border Patrol, abonnementen |
| Leveranciers |
Leveranciersconfiguratie, stockbestanden, importinstellingen |
| Voertuigen |
Merken, modellen, carrosserietypes, merklogo's, DriveRight-modellen, multi-PCD-modellen |
| Velgen |
Velbeheer, datakwaliteit, afbeeldingen, SEO-filters, gerelateerde artikelen |
| Banden |
Merk-/profielbeheer, afbeeldingen, maataliassen, homologaties, SEO-filters |
| Accessoires |
Voertuigkoppeling, categoriebeheer, SEO-filters |
| 3D |
Afnemers (3D-simulatorproduct), DriveRight-koppelingen, 3D-websites, standaardvelgen, modeleditor |
| CMS / Content |
Blogposts, team, vacatures, banners, catalogus, tutorials, events, logo's |
| Marketing |
E-mailhandtekeningen, cadeauartikelen, X-Coins loyaliteit, spotlight-artikelen, advertenties, slider, banners, reviews, promocodes |
| Algemeen |
Merkbeheer, merkpagina's, externe verwerkingsstatistieken, BTW-IP-log |
| Applicatiebeheer |
Mailtemplate, e-mailtemplates, systeemtemplates, tekstvariabelen, monitoring (hacklog), systeeminstellingen, cachebeheer |
Controllers per domein
Alle controllers staan onder _admin/controller/classes/atx/.
Klanten
| Controller |
Functie |
AdminCustomerController |
Online gebruikers, klantgegevens/bewerkingen, orders, reserveringen, facturen, SEPA |
AdminUserController |
Contactbeheer, loginbeheer, rollen |
AdminCustomerTagController |
Klantgroepen en -rechten |
AdminBorderPatrolController |
Nieuwe klanten goedkeuren/afwijzen |
AdminLoyaltyProgramController |
X-Coins-regels (artikel, merk, winkelmand, uitsluitingen) |
AdminSubscriptionController |
Abonnementen |
AdminReviewController |
Klantrecensies |
AdminEmailTemplateController |
E-mailtemplates per klant |
Bestellingen & facturen
| Controller |
Functie |
AdminOrderController |
Bestellingenlijst, maandstatistieken (volledige paginaweergave) |
AdminReservationController |
Reserveringen |
AdminShippingController |
Transport-/verzendregel-CRUD |
AdminPaymentController |
Betaalmethode-CRUD |
AdminInvoiceController |
Factuur- en leveringsbonnenlijsten |
UpdatingPlatformOrderController |
Platform-orderimport (achtergrond) |
Artikelen
| Controller |
Functie |
AdminArticleController |
Prijzen, voorraad, omschrijvingen, afbeeldingen, landszichtbaarheid, populaire artikelen |
AdminBrandController |
Artikelmerken |
AdminTyreController |
Bandenmerken/-profielen/-typen, dubbele EAN/Fab |
AdminWheelController |
Velbeheer, datakwaliteit, afkoppelen |
AdminWheelTemplateController |
Velgbeheerpagina (volledige weergave) |
AdminAccController |
Accessoirebeheer |
AdminStockController |
Voorraadbeheer en prijsvalidatie |
AdminExportController / AdminExportGroupController |
Export-channel-configuratie |
AdminMarginController |
Margeregels |
AdminRelatedArticlesController |
Gerelateerde artikelen |
Leveranciers
| Controller |
Functie |
AdminSupplierController |
Leveranciers-CRUD, stockbestanden, importinstellingen, prijsherberekening |
UpdatingSupplierStockController / UpdatingSupplierStockWorker |
Achtergrond-stockimport |
Voertuigen
| Controller |
Functie |
AdminVehicleBrandController |
Voertuigmerken |
AdminVehicleModelController |
Chassis, opties, upsteps, herberekening, markten |
AdminVehicleMotorController |
Motoren |
AdminVehicleBodyTypeController |
Carrosserietypes |
AdminVehicleBrandLogoController |
Merklogo's |
| Controller |
Functie |
AdminChannelController |
Saleschannel-configuratie, design, mini-shop-URL's |
AdminPlatformController |
Externe verkoopplatformen |
AdminPlatformOrderErrorsController |
Platform-orderfoutmeldingen |
CMS & content
| Controller |
Functie |
AdminTextController |
CMS-tekstvariabelen (cms_text) |
AdminTemplateController |
Mail-/systeem-/mailingtemplate-CRUD en testzend |
AdminBlogPostsController |
Blogpostbeheer |
AdminSliderController |
Sliderbeheer |
AdminTeamController |
Teamleden |
AdminCatalogueController |
Cataloguspagina's |
Systeem & monitoring
| Controller |
Functie |
AdminSettingController |
Systeeminstellingen, cache-flush, online/offline-schakelaar |
AdminJobController |
Queue-status, prioriteit, reset, statistieken |
AdminHeartbeatController |
Systeemstatus |
AdminVatIpLogController |
BTW-IP-logboek |
AdminLogosController |
Logo-beheer |
Rollen en rechten
De huidige codebase kent geen actieve rolgebaseerde toegangscontrole in de admin. De functie isAllowed($sAction, $sSubject) (src/legacy_functions.php:162) geeft altijd true terug — alle geauthenticeerde admin-gebruikers hebben volledige toegang tot alle routes.
Klant-side zijn er wel rechten via klanttags (AdminCustomerTagController). Een klanttag heeft een permissions-array (bijv. permissions[invoices][view], permissions[x-coins][view]) die de zichtbaarheid van storefront-functies per klantgroep bepaalt. Dit zijn geen admin-gebruikersrechten.
Ingelogde klanten op de storefront kennen drie rollen (_core/model/classes/atx/customers/Login.php):
| Constante |
Niveau |
Login::CUSTOMER_ROLE_REGULAR |
Standaard klant |
Login::CUSTOMER_ROLE_ACCOUNT_MANAGER |
Accountmanager |
Login::CUSTOMER_ROLE_SUPER_USER |
Superdoorgebruiker |
CLI-commands (admin-kant)
Located under _admin/model/classes/atx/cli/commands/. Aangeroepen via ./cli.php (niet ./bin/console):
| Command-klasse |
Doel |
CsvImportCommand |
CSV-import |
EncryptionCommand |
Versleuteling |
GenerateEntityCommand |
Entiteitsscaffold |
GenerateModuleCommand |
Modulescaffold |
GeneratePageCommand |
Paginascaffold |
GenerateSitemapCommand |
Sitemap genereren |
SendInvoiceCommand |
Factuur versturen |
TranslationDebugCommand |
Vertaling debuggen |
Configuratiebestanden
| Bestand |
Inhoud |
_admin/config/menu.php |
Navigatiestructuur (15 groepen) |
_admin/config/routing.php |
AJAX-route-naar-controller-mapping (77 routes) |
_admin/config/pages.xml |
4 volledige paginaroutes |
_admin/config/dialogs.php |
Voorgerenderde HTML-dialoogfragmenten |
_admin/config/config.php |
Leeg (placeholder) |
Kruislinks