Case study Confidential project WordPress PHP 8 Apify CI/CD
Automotive / Luxury vehicle imports

A luxury car catalogue that feeds itself from Dubai.

Scraping-to-WordPress pipeline with a three-layer architecture: normalisation of 5 sources, import cost and Spanish market price engine, and a custom theme.

Confidential project
No production screenshots
Sector
Automotive / Luxury
Services
Architecture + custom WordPress
Duration
12 weeks
Status
Delivered
5
integrated sources
normalised to a common data model
26
calculation fields
3 cost models + full traceability
100%
idempotent imports
zero duplicates via ref_id
The challenge

Turning scattered data into a sellable catalogue.

The client imports luxury vehicles from Dubai into the Spanish market, but data arrived from five different platforms, each with its own format. Manually calculating import costs and comparing them with the actual price in Spain was unworkable and error-prone. They needed a catalogue that updated itself and showed the savings with reliable figures.

Five sources, five formats
YallaMotor, DubiCars, Dubizzle, AutoScout24 and generic crawlers, with no common data model.
Manual cost calculation
Tariffs, VAT, IEDMT and CIF were calculated in spreadsheets, differently for each vehicle.
Opaque Spanish market price
There was no reliable way to know what the car was worth in Spain to prove the savings.
Duplicate imports
Re-running a scrape created duplicate listings and polluted the catalogue.
How we solved it

Clean architecture, traceable calculation, no-surprise deployment.

WordPress PHP 8 Apify CI/CD
1
Three-layer architecture
I separated domain logic (Bridge, pure PHP with no WordPress) from persistence (WP adapter). The domain is the single source of truth and is testable in isolation.
2
Per-source normalisers
One normaliser per platform converts each scrape into a standard DTO. Idempotency guaranteed by a ref_id: re-running a dataset never duplicates listings.
3
Cost engine + Spanish market price
Three calculation models (import, market comparison and premium scenarios) and a 4-tier cascade to resolve the Spanish market price with source traceability and confidence score.
4
Custom theme and atomic deployment
Bespoke Tailwind-lite theme plus CI/CD pipeline on DigitalOcean with hardlink releases, automated pre-deploy backup and post-deploy asset verification.
Technology stack
WordPress
PHP 8
Composer
MariaDB
Redis
Tailwind CSS
Apify
Nginx
DigitalOcean
GitHub Actions
ngrok
Lando
Does your website also need order before growing?

Do you have scattered data that should be a product?

We send you a technical proposal with the recommended architecture for your case in 48h.