— Vaka çalışması · E-ticaret · DE / EN / TR

Yilmaz Souvenirs — dükkândan ölçeklenen online mağazaya.

Bad Ischl çıkışlı 40 yıllık aile işletmesi 2024’e kadar sadece dükkânda ve telefonla satış yapıyordu. Bugün mağaza dört ülkeye her gün gönderim yapıyor; canlı stok, Stripe checkout ve işletme sahibinin kendisinin kullandığı bir admin paneliyle. Hikâye böyle başladı.

Kunde
Yilmaz Souvenirs
Branche
E-Commerce Einzelhandel
Proje süresi
11 hafta keşif → canlıya çıkış
Livegang
Mart 2024
— Projeye hızlı bakış

Üç cümlede kısa özet.

12 ekran aşağı kaymak istemeyenler için kısa özet bu. Uzun versiyon aşağıda; sayılar, ekran görüntüleri ve müşterinin kendi sözleriyle birlikte.

Problem

Kein Online-Verkauf, Bestellchaos am Telefon, kein Lager-Überblick.

Siparişler telefon ve WhatsApp üzerinden akıyordu. Stok, çoğu zaman güncel olmayan bir Excel dosyasındaydı. İadeler ise elde tutuluyordu.

Çözüm

Stripe’lı, canlı stoklu ve admin panelli özel shop.

Next.js ön yüz, Spring Boot arka uç, tek veri kaynağı olarak Postgres. Kart/SEPA/Klarna için Stripe. Admin arayüzü baştan sona Almanca.

Sonuç

+187 % Umsatz im ersten Jahr, 99,98 % Uptime, 0 Oversell.

Mağaza 14 aydır ajans desteği olmadan çalışıyor. İşletme sahibi ürünleri kendi yönetiyor. Çifte satış kaynaklı tek bir şikâyet bile çıkmadı.

— Başlangıç durumu

Otuz yıllık zanaat — ama “hemen satın al” butonu yok.

Yilmaz Souvenirs, Bad Ischl merkezinde 1983’ten beri dükkân işletiyor — el yapımı ürünler, kimi kendi atölyesinden, kimi bölgedeki zanaatkârlardan geliyor. Yaya trafiği stabildi ama yaz aylarında turistler sık sık ürün kalmadığı için eli boş dönüyordu. “Bunu kargolayabilir misiniz?” en sık gelen soruydu — ve cevaplaması en zor olanı.

“Müşteriyi kapıdan çıkar çıkmaz kaybettiğimizi biliyorduk; ama on yıl boyunca her ajans taslağı bizden 40.000 € istedi ve hiçbiri bizim dilimizden konuşmadı.”

Projeden önce kayda değer bir online satış yoktu. Telefon siparişleri ajandaya yazılıyordu. Aynı saat içinde iki müşteri son ürünü isterse kimin önce aradığı belirleyici oluyordu. Stok durumu mu? “Bir bakayım” ve on dakika sonra geri arama.

Somut sıkıntılar

  • Siparişler telefon, WhatsApp ve e-posta arasında dağılmıştı — tek bir görünüm yoktu.
  • Stok Excel’deydi ve en iyi ihtimalle iki günde bir güncelleniyordu. Çifte satış düzenli olarak oluyordu.
  • İadeler ajandaya elle yazılıyordu. İz sürmek mümkün değildi.
  • Rechnungen wurden in Word getippt. Jede Sendung ins Ausland kostete ~20 Minuten Handarbeit.
  • Türkçe konuşan sadık müşteriler dil tarafında hiç desteklenmiyordu — önceki site sadece Almancaydı.
— Nasıl ilerledik

Dört faz, on bir hafta.

Waterfall tiyatrosu yok, sprint sirki yok. Net kilometre taşları ve görünür ara teslimlerle ilerliyoruz; müşteri neye para verdiğini bilsin diye.

Keşif

İki gün sahada.

Dükkânda durduk, müşterinin nasıl satın aldığını izledik, işletme sahibiyle kasada vakit geçirdik, Excel dosyasını baştan sona inceledik. Briefing deck yok, anket yok; sadece dinlemek var.

1. hafta · 2 gün
Mimari

Pitch deck değil, net taslak.

Veri modelini kâğıt üzerinde kurduk — ürünler, varyantlar, stok, rezervasyonlar. Admin UX’i low-fi wireframe ile netleştirdik. Teknoloji kararı: Next.js + Spring Boot + Postgres. PayPal geçidi yerine Stripe.

2–3. hafta · 8 gün
Inkrementeller Build

İki haftada bir görünür çıktı.

14. günden itibaren staging vardı. İşletme sahibi canlıya çıkmadan çok önce admin panelinden her hafta ürün girdi. Geri bildirim build’e doğrudan işlendi. Sonda tek bir “büyük açılış” yoktu.

4–9. hafta · 6 hafta
Canlıya çıkış ve teslim

Yumuşak çıkış, sonra tam hız.

20 ürün ve DACH gönderimiyle yumuşak lansman yaptık. 7 gün kritik hata çıkmayınca Türkiye gönderimi ve TR dili açıldı. İşletme sahibine iki günlük eğitim verildi. Handover raporu hazırlandı; saklı bilgi bırakılmadı.

10–11. hafta · 10 gün
— Seçili ekranlar

Sistemin içi böyle görünüyor.

Mağaza yüzü, admin paneli, mobil checkout. Sistem 14 aydır omurgası bozulmadan çalışıyor; küçük UX dokunuşları var, büyük bir revizyon ihtiyacı yok.

shop.yilmaz-souvenirs.at
Handgemachtes aus Österreich.
Kargo DE · AT · CH · TR
Alpen-Miniatur
€24,90
Wien-Edition
€38,00
Handgemacht
€19,50
Shop yüzü · ürün kategorileri, dil geçişi, canlı stok göstergesi
admin.yilmaz-souvenirs.at
Dashboard
bugün · 23 sipariş
€1.840 +14%
bugünkü ciro
23
Sipariş
7
stok uyarısı
#YIL-2418Müller, K.ödendi
#YIL-2417Özdemir, A.açık
#YIL-2416Huber, M.ödendi
#YIL-2415Steiner, J.ödendi
Admin paneli · genel görünüm, stok ve siparişler tek yerde
shop.yilmaz-souvenirs.at · Ödeme
Ödeme
Alpen-Miniatur€24,90
Wien-Edition€38,00
Kargo · DACH€6,90
Toplam€69,80
Kartla öde
via Stripe · SEPA / Visa / Klarna
Mobil ödeme · 3 tıkta checkout, Stripe Express Checkout, hesap zorlama yok
— Sonuçlar

Canlıya çıktıktan 14 ay sonra.

Müşteriyle birlikte ölçtüğümüz rakamlar — Stripe verisi, UptimeRobot ve admin panelinden. Tahmin yok, “yaklaşık” yok.

+187 %

Ciro artışı

Canlıya çıkıştan sonraki ilk yılın toplam cirosu, önceki yılla kıyaslandı (dükkan + online birlikte).

Kaynak: Stripe + POS export
99,98 %

Uptime

14 aylık ortalama, dışarıdan ölçüldü. Hosting bakımı kaynaklı tek bir 17 dakikalık kesinti yaşandı.

Kaynak: UptimeRobot 5 dakikalık kontroller
0

Çifte satış

Canlıya çıktığından beri oversell kaynaklı tek bir şikâyet yok. Stok tutma mantığı ve rezervasyon akışı planlandığı gibi çalışıyor.

Kaynak: müşteri destek kayıtları
2,3 s

LCP median

Mobilde 28 günlük medyanda Largest Contentful Paint. Hedef < 2,5 sn idi. Ağır ürün görselli kategori sayfaları dahil.

Kaynak: Vercel Speed Insights

“Ben bir shop istedim, ‘dijital dönüşüm süreci’ değil. Buckberry bunu ilk günden anladı, dükkânıma geldi, admin panelini bana gerçekten anladığım bir dille anlattı ve bütün sistemi on bir haftada kurdu; üstelik bana Excel benzeri bir şey dokundurmadan. Bugün shop’u kendim yönetiyorum. İlk yılda kendini üç kez çıkardı.”

Ayşe Yilmaz
İşletme sahibi · Yilmaz Souvenirs, Bad Ischl
— Kullanılan teknoloji

Hype değil, karar.

Her teknoloji için tek cümlelik sebep var. Bir araç sistemi daha iyi yapmıyorsa, trend olsa bile kullanmadık.

Frontend

Next.js 15

Katalog sayfalarında SSG, checkout’ta SSR. Çok ürün görseli olsa bile LCP < 2,5 sn.

Backend

Spring Boot 3 · Java 17

Domain mantığı Java’da; çünkü transaction, validasyon ve test burada en sağlam şekilde duruyor.

Veritabanı

PostgreSQL 16

Stok rezervasyonları için SELECT FOR UPDATE. NoSQL yok — tutarlılık, esnekliğin önünde.

Payments

Stripe

SEPA, kart ve Klarna tek akışta. Webhook idempotency var. PCI kapsamı dar tutuldu; kart verisi backend’den geçmiyor.

Hosting

Vercel + Hetzner Wien

Frontend CDN edge’de, backend + DB Viyana veri merkezinde — GDPR temiz, gecikme düşük.

CI / CD

GitHub Actions

Build, test ve staging deploy otomatik. Prod deploy manuel onaydan sonra.

Monitoring

Sentry + UptimeRobot

Hatalar 60 saniye içinde Slack kanalımıza düşüyor. Uptime dışarıdan doğrulanıyor.

i18n

next-intl

DE / EN / TR; SEO hreflang ile birlikte. Çeviriler müşteri tarafından kod deploy’u olmadan güncellenebilir.

— Ne öğrendik

Drei Dinge, die wir mitnehmen.

Dürüst bir geri bakış — “her şey mükemmeldi” anlatısı değil. Her proje bizi biraz daha akıllandırmalı.

01

Sahadaki zaman, on Zoom görüşmesini geçer.

Dükkânda geçirdiğimiz iki gün, herhangi bir workshop’tan daha fazla şey gösterdi. O yüzden discovery’yi bölgedeki müşteriler için artık yerinde yapıyoruz.

02

Shop UX’ten önce admin UX.

Önce admin panelini kurup test ettik, sonra shop’u. Böylece işletme sahibi build devam ederken ürün girebildi; bizim de elimizde lorem ipsum değil gerçek veri vardı.

03

Çok dillilik ilk günden, “phase 2” değil.

Türkçe sürüm çoğu projede “sonra bakarız” diye erteleniyor. Yilmaz tarafında ise ilk günden kritikti. Sonuç: Siparişlerin %28’i bugün TR dilinden geliyor. Ertelenseydi bu ciro hiç oluşmayacaktı.

— Sizin projeniz?

Bu hikâye size de tanıdık geliyor mu?

Her vaka çalışması 30 dakikalık bir görüşmeyle başlar — satış baskısı yok, discovery faturası yok. Doğru ekip olup olmadığımızı açıkça söyleriz.