Externe afhankelijkheden¶
Dit overzicht beschrijft de externe systemen waarop de Atraxion-webshop steunt. Geen credentials of inloggegevens zijn opgenomen. Zie Integraties voor de technische implementatie per client.
Overzichtstabel¶
| Systeem | Client-locatie | Protocol | Rol |
|---|---|---|---|
| Odoo ERP | src/Odoo/ |
REST/JSON-RPC (HTTP) | Primair ERP: facturen, partners, producten, stock, prijzen, orders, leveringsbonnen |
| Odoo-middleware | src/Odoo/ |
REST (HTTP) | Tussenlaag voor order- en partner-synchronisatie |
| Pay.nl | paynl/sdk (Composer) |
REST (HTTPS) | Betalingsgateway — aanmaken, statuscheck, refunds, webhooks |
| Transsmart | src/Transsmart/ |
REST (HTTPS) | Verzendtarieven, aanmaken zendingen, labels, tracking |
| DriveRight | src/Atraxion/DriveRight/ + _core/model/classes/atx/vehicles/driveright/ |
REST (HTTPS) | Voertuigdata: kenteken-lookup, maatvoering, fitment-criteria |
| Tyre24 | src/Tyre24/ |
REST (HTTPS) | Extern verkoopplatform: stockexport, orderimport, factuurinzending |
| Autodoc | src/Autodoc/ |
REST/middleware (HTTPS) | Extern verkoopplatform: stockexport en orderimport |
| Amazon SP-API | src/Amazon/Fulfillment/ |
REST (HTTPS) | Extern verkoopplatform: listings, orderimport, tracking-bevestiging |
| Qweon | src/Qweon/ |
REST (HTTPS) | Extern platform: band-listings exporteren/importeren |
| Rhinoman | src/Rhinoman/ |
Bestand/FTP | Stockbestand genereren voor Rhinoman-kanaal |
| Arteel | src/Arteel/ |
REST (HTTPS) | Loyaliteitsprogramma: punten toekennen, balans opvragen, uitbetalen |
| Cloudflare | src/Cloudflare/ |
REST (HTTPS) | CDN, DDoS-bescherming, DNS, caching van statische assets |
| Sentry | sentry/sentry (Composer) + bootstrap.php |
HTTPS (DSN) | Fout- en exception-monitoring in real-time |
| Matomo | src/Matomo/ |
HTTP/HTTPS (tracking-pixel + API) | Webanalytics (privacy-conform, eigen server) |
| VirusTotal | src/VirusTotal/ |
REST (HTTPS) | Virusscan van geüploade orderdocumenten |
| Evox | src/Evox/ |
REST (HTTPS) | Voertuigafbeeldingen (download per voertuig) |
src/Facebook/ |
HTTPS (feed-bestand) | Productfeed voor Facebook-catalogus | |
| Leveranciers FTP | _shopupdating/cronjobs/atx/suppliers/ |
FTP(S) | Voorraadfeeds van leveranciers ophalen |
| MAK-FTP (simulator) | _shopupdating/cronjobs/atx/vehicles/simulator/ |
FTP | Velgsimulator-CSV's uploaden |
| Qteam FTP | src/Atraxion/Qdis/ + _shopupdating/cronjobs/atx/orders/qteam_ftp_upload.php |
FTP | Orderdata uploaden naar Qteam-partners |
| Maxityre | src/Maxityre/ |
Bestand/import | Importmapping voor Maxityre-bandfeeds |
| Wheelpope | src/Wheelpope/ |
REST (HTTPS) | Velgdata-integratie |
| Mailpit (lokaal) | — | SMTP | Lokale SMTP-opvanger (alleen dev, poort 1025) |
Odoo ERP¶
Locatie: src/Odoo/
Odoo is het primaire ERP-systeem van Atraxion. De shop communiceert via een JSON-RPC/REST-client (src/Odoo/JsonRpcClient.php) rechtstreeks met Odoo én via een middleware-laag (src/Odoo/HttpMiddlewareClient.php).
Belangrijkste datafstromen:
- Partners: klanten worden als Odoo-partners gesynchroniseerd (
odoo:sync:partners,odoo:upload:partners). - Producten & prijzen: productdata en akkoordprijzen (
Akprijs) komen van Odoo (odoo:sync:products,odoo:sync:product-prices). - Bestellingen: orders worden geüpload naar Odoo (
odoo:upload:orders) en gesynchroniseerd (odoo:sync:orders). - Facturen & leveringsbonnen: worden gedownload van Odoo-middleware (
middleware:download:invoices,middleware:download:delivery-slips). - Stock: Atraxion-eigen stock wordt naar Odoo gepusht (
odoo:sync:atraxion-stock).
Transportprijzen komen ook van Odoo (Transsmart-pad): de shop vertrouwt de Odoo-prijs en accepteert ook €0 zonder harde country-gate. Zie Verzending.
Pay.nl¶
Package: paynl/sdk (Composer)
Pay.nl is de betalingsgateway voor alle betalingen in de shop. De shop maakt betalingen aan, controleert de betaalstatus en verwerkt terugbetalingen via de Pay.nl REST-API. Pay.nl stuurt betaalstatus-updates terug via webhooks (/payment/exchange).
Zie Betalingen.
Transsmart¶
Locatie: src/Transsmart/
Transsmart levert verzendtarieven en verwerkt de aanmaak van zendingen. De shop vraagt tarieven op via REST en bepaalt zo de verzendkosten bij checkout. Bij het aanmaken van een zending worden labels en tracking-informatie teruggeleverd. Als Transsmart geen tarief retourneert, valt de shop terug op de order_transport_price-tabel in de database.
Zie Verzending.
DriveRight¶
Locatie: src/Atraxion/DriveRight/ (moderne client) + _core/model/classes/atx/vehicles/driveright/ (legacy modellen)
DriveRight levert Nederlandse voertuigdata: kentekenopzoeking en fitment-criteria (welke bandmaten/velgen passen op welk voertuig). De cron updateDriveRight.php synchroniseert periodiek fabrikanten, modellen, voertuigen en velg-upsteps. Bij PCD-wijzigingen stuurt driveright:send-pcd-changes-mail een melding.
Externe verkoopplatformen¶
Tyre24¶
Locatie: src/Tyre24/
Tyre24 is een Europees band-handelsplatform. De shop exporteert stock-listings (t24:listings:tyres) en importeert orders die binnenkomen (t24:queue-orders, _shopupdating/cronjobs/atx/orders/getOrders.php). Facturen en tracking worden via Tyre24OrderUpdater naar de API gestuurd; t24:submit-invoice herprobeert late facturen door naar diezelfde updater te delegeren.
Autodoc¶
Locatie: src/Autodoc/
Autodoc is een ander extern verkoopplatform. Stock-export en orderimport verlopen gelijkaardig aan Tyre24.
Amazon SP-API¶
Locatie: src/Amazon/Fulfillment/
Amazon Seller Partner API. De shop exporteert stock en GBP-prijzen (exportStock.php), importeert orders (retrieveOrders.php) en confirmeert zendingen via tracking-upload (uploadTrackings.php).
Qweon¶
Locatie: src/Qweon/
Band-platform waarop listings worden gepusht en orders geïmporteerd via qweon:pull-tyres / qweon:push-tyres.
Rhinoman / Evox / Wheelpope¶
- Rhinoman (
src/Rhinoman/): genereren van een stockbestand voor de Rhinoman-distributeur. - Evox (
src/Evox/): downloaden van voertuigafbeeldingen per voertuigtype. - Wheelpope (
src/Wheelpope/): velgdata-integratie.
Order-matching voor alle platformen: Artnr → EAN → Fabrikantcode. Een niet-gematchte regel resulteert in een bewust zichtbare lege orderregel (geen stille verwerping). Zie Externe platformen.
Arteel¶
Locatie: src/Arteel/
Arteel beheert het loyaliteitsprogramma voor opt-in klanten. De shop kent punten toe na een bestelling (atx:loyalty:payout-confirmed-points) en synchroniseert klantprofielen via REST. Uitbetaling verloopt via het Arteel-portaal. Klanten die niet ingeschreven zijn, kunnen geen punten ontvangen of uitbetalen.
Zie Loyaliteit.
Cloudflare¶
Locatie: src/Cloudflare/CloudflareService.php
Cloudflare staat voor het productie-domein (www.atraxion.com) als CDN en DDoS-bescherming. Statische assets worden gecached. De CloudflareService biedt een interface om de Cloudflare-cache te purgen bij contentwijzigingen.
Sentry¶
Locatie: initialisatie in _www/appconfig/bootstrap.php via sentry/sentry (Composer)
Sentry vangt alle onbehandelde exceptions en PHP-fouten op in real-time. DSN en omgevingslabel worden geconfigureerd in environment_constants.php. Deploy-artefacten (class-not-found / EntityManagerClosed direct na release) zijn geen echte bugs.
Zie Observability.
Matomo¶
Locatie: src/Matomo/MatomoFacade.php
Matomo is de privacyvriendelijke webanalyticsoplossing op een zelf-gehoste instantie (matomo.atraxion.localhost lokaal, eigen server in productie). Paginaweergaven en events worden bijgehouden via de tracking-pixel en de Matomo PHP API.
Zie Observability.
VirusTotal¶
Locatie: src/VirusTotal/
Geüploade orderdocumenten (EDI-bijlagen, RMA-documenten) worden asynchroon gescand via de VirusTotal REST-API. Het command order-documents:check-virus-scan pollt de scanresultaten. Bij een positieve detectie stuurt infected-documents:send-notifications een melding.
Leveranciers-FTP¶
Leveranciers stellen stockfeeds beschikbaar via FTP(S)-servers. De scripts checkAllSupplierStock.php en checkSupplierStock.php downloaden periodiek de feeds en importeren de voorraden. Leveranciersconfiguratie (hostnamen, paden, inloggegevens) is opgeslagen in de database, niet in de repo.
Zie Voorraadimport.
MAK-simulator FTP¶
_shopupdating/cronjobs/atx/vehicles/simulator/sendMakFiles.php uploadt CSV-bestanden voor de velgsimulator naar een FTP-endpoint van MAK. Inloggegevens staan in de configuratie op de server.
Qteam FTP¶
src/Atraxion/Qdis/Command/QteamFtpUploadCommand.php en _shopupdating/cronjobs/atx/orders/qteam_ftp_upload.php uploaden orderdata naar Qteam-FTP-servers (configuratie per server-ID in de database).
Facebook¶
Locatie: src/Facebook/Command/FeedGenerateCommand.php
Genereert een productfeed (XML/CSV) voor de Facebook-catalogus. De feed wordt periodiek gegenereerd en via een publiek toegankelijke URL aangeboden aan Facebook.
Geen credentials in repo
API-sleutels, wachtwoorden en FTP-inloggegevens staan uitsluitend in _www/appconfig/environment_constants.php (nooit gecommit) of in de database-configuratietabellen op de server.