Shop-Website Einzelhandel — Beratungsanfrage statt Warenkorb

Ein inhabergeführter Fachhandel wollte online sichtbar werden, ohne in den Versand-Krieg gegen Amazon einzusteigen. Das Ergebnis: eine schnelle, schlanke Katalog-Website, die jeden Klick auf das Telefon oder das Anfrageformular lenkt.

Branche
Einzelhandel · Fachgeschäft
Zeitraum
2025 · ca. 5 Wochen
Rolle
Konzept, Design, Entwicklung, Hosting
Stack
PHP 8.2, MySQL, Vanilla JS, Twig
Ausgangslage

Wie das angefangen hat.

Der Kunde betreibt seit über zwanzig Jahren ein Fachgeschäft mitten in der Innenstadt. Stammkunden kommen vorbei, lassen sich beraten, kaufen ein. Der Online-Auftritt war bis dato eine alte HTML-Seite mit ein paar JPGs und einem PDF-Katalog, der zuletzt 2019 aktualisiert wurde.

Anfang des Jahres dann der Anruf: die Hauptkonkurrenz baut gerade einen WooCommerce-Shop auf. „Müssen wir da jetzt mitziehen?" Meine Antwort war: nein, im Gegenteil. Wer in der Beratung gut ist, sollte den Beratungsklick belohnen — nicht den Kaltkauf von Fremden, der am Ende doch wieder retourniert wird.

Herausforderung

Was wirklich auf dem Tisch lag.

Die Anforderung war damit eigentlich anti-typisch: Wir bauen keine Shop-Software. Stattdessen brauchten wir eine Website, die wie ein Online-Shop aussieht und funktioniert — Filter, Suche, Produktdetails — am Ende aber konsequent in eine Anfrage mit Telefonnummer und Wunschtermin mündet.

Drei harte Constraints standen im Lastenheft, das wir gemeinsam an einem Vormittag bei Kaffee zusammengeschrieben haben:

  • Über 1.400 Artikel aus einem Lagerverwaltungs-CSV mussten regelmäßig automatisch gesynct werden — händische Pflege würde keiner machen, das war klar.
  • Ladezeit: keine Diskussion. Unter einer Sekunde auf Mobilgerät bei mittelmäßigem Empfang. Sonst springt die Generation 60+ ab, und die ist hier die Zielgruppe.
  • Kein WordPress. Der Kunde hatte schlechte Erfahrungen mit einer kompromittierten Installation in einem anderen Betrieb gemacht und wollte „etwas, das man nicht alle zwei Wochen patchen muss."
Vorgehen

Wie ich's angegangen bin.

  1. 01

    CSV-Import als Pipeline, nicht als Plug-in

    Statt einer großen Sync-Software steht ein kleiner PHP-Cron-Job auf dem Server, der nachts das CSV aus der Warenwirtschaft zieht, einliest, Bilder per WebP-Konvertierung optimiert und die MySQL-Datenbank inkrementell aktualisiert. Wenn ein Artikel gestrichen wird, verschwindet er. Wenn der Preis sich ändert, wird er aktualisiert. Niemand muss daran denken.

  2. 02

    Server-Side Rendering, kein JavaScript-Framework

    Die Seiten kommen fertig aus dem Server raus. Twig als Template-Engine, ein paar Kilobyte Vanilla JS für Filter und Anfrage-Formular — fertig. Kein Webpack, kein Hydration-Schritt, kein Build-Server. Wer den Quelltext anschaut, versteht ihn auch in zwei Jahren noch.

  3. 03

    Anfrage-Flow konsequent durchgezogen

    Auf jeder Produktseite gibt es genau einen Hauptknopf: „Beratung anfragen". Der öffnet ein Formular, das den Artikel automatisch mitschickt, mit drei Pflichtfeldern (Name, Rückrufzeit, Frage) und sonst nichts. Telefonnummer steht oben fest, Klicks gehen direkt in die tel:-URL. Auf Wunsch auch eine WhatsApp-Sticky.

  4. 04

    Performance vom ersten Tag an, nicht hinterher

    Bilder werden in drei Auflösungen ausgeliefert (srcset), Critical CSS inline, Schriften self-hosted, der Rest lazy. Cache auf Nginx-Ebene, statisch generierte Detail-Seiten für die Top-300-Artikel als zusätzliche Beschleunigung. Lighthouse mobil: durchgängig 97+ bei Performance.

  5. 05

    SEO-Basis sauber gelegt

    Strukturierte Daten als Product-Schema mit Lagerstatus, Breadcrumbs für jede Kategorie, sprechende URLs, eine generierte Sitemap. Keine SEO-Magie, einfach handwerklich anständig. Drei Monate nach Launch waren die ersten Long-Tail-Suchen aus der Region in Position 3 bis 7.

Ergebnis

Was am Ende rauskam.

Der Shop läuft seit Februar 2025 produktiv. In den ersten acht Wochen kamen über 90 qualifizierte Anfragen rein — mit konkreter Produktnennung, Rückrufnummer und Wunschtermin. Der Inhaber sagt selbst: „Vorher hat meine Kollegin am Telefon erst zwanzig Minuten verstanden, was der Kunde überhaupt will. Jetzt steht's im Mail-Eingang und wir können direkt rangehen."

Was am wenigsten erwartet wurde, ist der größte Effekt: Stammkunden nutzen die Seite, um sich vor dem Ladenbesuch zu informieren. Die durchschnittliche Beratungsdauer im Geschäft ist messbar gesunken — der Verkauf bleibt aber gleich, weil die Kunden gezielter kommen.

0,82 s
Median-LCP auf Mobilgerät (4G)
97 / 100
Lighthouse Performance mobil
1.412
Artikel automatisch synchronisiert
+90
qualifizierte Anfragen in 8 Wochen
Stack im Detail

Womit's gebaut wurde.

  • PHP 8.2 mit Twig als Templates und einem schlanken eigenen MVC-Skelett — bewusst kein Symfony oder Laravel, weil die Seite keinen Authentifizierungs-Layer und keine Aufträge verwaltet.
  • MySQL 8 mit FULLTEXT-Index für die Produktsuche und einem Materialized-View-Pattern für die Filter-Aggregate.
  • Vanilla JS mit ein paar gezielten Web-Components für Filter, Formular und Lightbox — ohne Framework, ohne Build-Schritt, gesamter JS-Payload unter 14 KB gzipped.
  • Cronjob-Pipeline in PHP-CLI, die nachts das CSV der Warenwirtschaft holt, Bilder via libvips zu WebP/AVIF konvertiert und Differenzen sauber in die DB schreibt.
  • Hosting auf einem KeyHelp-Managed-Server mit Nginx, HTTP/2, Brotli und einem Plesk-unabhängigen Backup nach Restic.
Lessons learned

Was ich daraus mitnehme.

Die Website war eine gute Erinnerung daran, dass „Online-Shop" und „Online verkaufen" zwei verschiedene Dinge sind. Im Handwerk und im beratungsintensiven Fachhandel ist die Beratungsanfrage die wertvollere Conversion — und die kann man genauso sauber bauen wie einen Checkout, mit deutlich weniger Wartungsaufwand.

Wenn dein Geschäft auch davon lebt, dass Kunden mit dir reden statt mit einem Suchalgorithmus, dann ist diese Bauart günstiger, schneller und langlebiger als ein vollwertiges Shop-System. Wir können gerne mal drüber sprechen.

Ähnliches Projekt im Kopf?

Lass uns zwanzig Minuten drüber reden.

Du erklärst, was du brauchst — ich melde mich mit einer ehrlichen Einschätzung. Kein Pitch, kein Ticket-System.

Projekt anfragen Alle Projekte