All work / Case study

Photokiosk

A photo-lab e-shop in Agios Nikolaos, Crete: 194 products printed with the customer’s own photo. We took it on with the photo upload optional and card payments that had not been confirming since October 2025. We migrated it to our own server six days after the agreement, fixed the root cause of every problem rather than the symptom, and rebuilt the homepage and the catalogue.

Visit site

Category
Photo-lab e-shop / Rescue, migration & performance
Status
Live in 6 days
Stack
WooCommerce · WordPress · PHP 8.3
Photokiosk — Photo-lab e-shop / Rescue, migration & performance — After
75→89
Google PageSpeed performance, on mobile
3×100
Accessibility, best practices and SEO — a perfect score on all three
16/148
Orders arriving without the customer’s photo — root cause found and fixed

Measurable results

Before After
Performance (PageSpeed, mobile)/100 75 89
Accessibility 86 100
Best practices 96 100
SEO 85 100
Products with a descriptionout of 194 0 194
PHP version8.1 no longer gets security updates 8.1 8.3

Both readings come from Google PageSpeed Insights on the same live site: 13/08/2026, a few hours after the migration and before the speed and accessibility work, and 16/08/2026 after it. The old site on the previous host was never measured with the same tool, so we do not present it as the baseline.

What we did

Results

  • 01Orders were arriving with no photo — 16 out of 148, one in nine. The cause was not the “required” switch: the plugin only attached the file to the order when the “Thank you” page loaded. It now attaches server-side the moment the order is placed — verified with three blocked navigations
  • 02No card payment had been confirming since October 2025: the Viva webhook had never been registered. Three genuine payments sat as “Pending payment”, and two customers watched their paid order be cancelled automatically
  • 03Migrated to our own server (nginx, PHP 8.3, Redis) — from agreement to a live site in six days, with zero pending updates across core, theme and plugins
  • 04From 33 active plugins down to 21, each removal backed by proof of non-use rather than a hunch: Toolset was holding 40 MB and five empty tables for zero custom fields, the “image optimiser” had touched 0 of 970 images in six months, one plugin was blocking updates for 31 others, and another was hiding the WooCommerce settings even from an administrator account. Two held code that was still needed — it was moved first, and nothing was lost
  • 05194 of 194 products gained a description (there were none), and the 13 homepage categories became reachable at every screen width — only two were visible on mobile
  • 06Once the upload became mandatory, products with several photo slots would have charged per photo: the nine-slot cushion would have asked for €269.10 instead of €29.90. A photo became a slot inside the product, not a unit of it
  • WooCommerce
  • WordPress
  • PHP 8.3
  • Διάσωση
  • Μεταφορά server
  • Ταχύτητα
  • GDPR