Iconica Society: Printify ve Stripe ile çalışan çok dilli sanat baskısı mağazası
Iconica Society, kamu malı başyapıtları poster, çerçeveli poster ve obje olarak sipariş üzerine bastıran bir sanat baskısı mağazasıdır. Mağaza Next.js ile sıfırdan geliştirildi: Printify üretim tarafında tek doğru kaynak olarak kaldı, vitrin kendi veritabanından okuyor. İşin ağırlık merkezi tasarım değil, ödeme ile üretim arasındaki bağdı: ödenen sipariş insan eli değmeden üretime gidiyor, ödenmeyen kendiliğinden iptal ediliyor. Eserler ürün gibi değil sanat eseri gibi sunuluyor; ressam, akım, oda ve renk üzerinden keşfedilebiliyor.
Çözdüğümüz problem
- Sipariş üzerine üretim yapan mağazaların çoğu hazır tema üzerinde çalışır: ürün sayfası çoktur, içerik azdır. Sanat eseri satan bir mağaza için bu yetmiyor.
- Printify ürünü basıp gönderiyor ama mağaza, ödeme ve sipariş arasındaki bağı kurmuyor. Ödenmemiş sipariş üretime gitmemeli, ödenmiş sipariş beklememeliydi.
- ABD'de basılan posterler Avrupa'ya 10–30 günde ulaşıyordu.
- Aynı eser poster, çerçeveli poster ve obje olarak ayrı ürünlerdi; ziyaretçi aynı tabloyu listede defalarca görüyordu.
- Türkçe içerik Printify'da tutulamıyor; ürün başlıkları yalnızca İngilizceydi.
Hedefimiz
- Printify'ı tek doğru kaynak olarak bırakıp hızlı, kendi veritabanından okuyan bir vitrin kurmak.
- Ödeme ile üretimi otomatik bağlamak: ödenen sipariş üretime, ödenmeyen iptale.
- Eserleri ürün değil sanat eseri olarak sunmak: ressam, akım, oda ve renk üzerinden keşif.
- Türkçe ve İngilizceyi ayrı adreslerle, eşit kalitede yayınlamak.
- Arama motorlarında ve yapay zekâ asistanlarında “Van Gogh posteri” ile “Van Gogh kimdir” sorularının ikisinde de görünmek.
Printify entegrasyonu
- Ürünler Printify'dan veritabanına senkronlanıyor: Printify yayınlayınca webhook ile anında, ayrıca beş dakikada bir arka planda. Ziyaretçi hiçbir zaman Printify'ı beklemiyor.
- Tabloda Printify'ın sütunları ile mağazanın kendi sütunları ayrı tutuluyor. Türkçe başlık, açıklama, öne çıkarma, sıralama ve görsel sırası senkronda hiç ezilmiyor.
- Türkçe başlığı girilmemiş ürünler için başlık, katalogdaki eser ve ressam adlarından otomatik üretiliyor.
- Bir eserin poster, çerçeveli poster ve kanvas ürünleri tek kart altında toplanıyor; ürün sayfasında format değiştirici olarak sunuluyor.
- Kargo ücreti ödeme adımında Printify'dan canlı alınıyor. Varyant bazında hangi ülkeye gönderilebildiği tutuluyor; gönderilemeyen ürün sepette uyarı veriyor.
- Avrupa ikizi: Avrupa ve Birleşik Krallık siparişlerinde her poster, Almanya'da basılan ikiziyle değiştiriliyor. İkizler listelenmiyor, yalnızca kargo hesabında ve siparişte yer alıyor. Teslim süresi 10–30 günden 5–15 güne indi.
Ödeme: Stripe
- Stripe Checkout ile kart, Apple Pay ve Google Pay. Kart bilgisi siteye hiç uğramıyor.
- Sipariş Printify'da beklemede açılıyor. Ödeme gelince webhook siparişi üretime gönderiyor; ödenmeyen oturum bir saat sonra kapanınca sipariş Printify'da kendiliğinden iptal ediliyor.
- Webhook imzası doğrulanıyor. Üretime göndermeden önce ödenen tutar ve para birimi, veritabanındaki siparişle karşılaştırılıyor.
- Test anahtarıyla bütün akış para çekmeden deneniyor; test ödemeleri üretime gitmiyor.
- Stripe anahtarları panelden giriliyor, şifrelenerek saklanıyor; panel canlı ve test modunu ayrıca gösteriyor.
- Her siparişle alıcının onay kaydı saklanıyor: onay zamanı, IP, tarayıcı ve onaylanan sözleşme metinlerinin o anki kopyası.
Katalog, koleksiyon ve keşif
- 167 eser ressam, akım, dönem, tarz, oda, dekorasyon tarzı, tema, mevsim, renk paleti, müze, seçki ve ebat koleksiyonlarına bağlı. Toplam 171 koleksiyon sayfası.
- Henüz satışta olmayan eserler de “yakında” olarak listeleniyor; katalog ürünle birlikte büyüyor.
- 14 galeri seti: birlikte asılmak üzere seçilmiş eser grupları.
- Öneri sistemi her ürün sayfasında farklı bir zevk sinyaline cevap veriyor: aynı ressam, aynı tema, aynı akım, aynı palet. Son satır, ortak koleksiyonlara göre ağırlıklı skorla hesaplanıyor.
- Favori listesi, son bakılanlar ve ebat rehberi.
- Önerili arama: koleksiyon, ürün ve eserler yazarken listeleniyor. Çok dilde eşleşiyor, aksanları ve tek harf hatasını tolere ediyor, klavyeyle gezilebiliyor.
Üyelik ve sipariş
- E-posta ve şifreyle ya da Google ve Facebook ile üyelik.
- Adres defteri, sipariş geçmişi ve sipariş durumu.
- Üye olmadan verilen siparişler, e-posta doğrulanınca üyenin geçmişine ekleniyor.
- Doğrulama, şifre sıfırlama ve sipariş onayı e-postaları Cloudflare Email Service üzerinden gidiyor.
Çok dilli yapı ve para birimi
- Türkçe kök adreste, İngilizce /en altında; adresler de çevrili (koleksiyonlar → collections, eser → artwork).
- Sayfalar bir kez yazılıyor; bağlantılar dile göre çevriliyor, dil değiştirici aynı sayfanın diğer dildeki adresine gidiyor.
- Para birimi ziyaretçinin ülkesine göre seçiliyor: Euro bölgesinde EUR, Birleşik Krallık'ta GBP, Avustralya'da AUD, diğer ülkelerde USD. Ziyaretçi değiştirebiliyor.
Sanat rehberi ve SEO
- 83 rehber sayfası: ressamlar, akımlar, dönemler ve tarzlar. Rehber sayfası “kimdir” sorusuna, koleksiyon sayfası “posteri” aramasına cevap veriyor. İkisi birbirine bağlanıyor, birbiriyle yarışmıyor.
- Ürün, koleksiyon, rehber, SSS ve kırıntı yolu için yapılandırılmış veri. Kargo ve iade politikası ürün verisinde.
- hreflang ile çok dilli site haritası; 984 adres.
- Yapay zekâ asistanları için llms.txt; tarayıcıları robots.txt'de adıyla izinli.
- Sepet, ödeme, hesap ve arama sonuçları dizin dışında.
Yönetim paneli ve Instagram
- Siparişler: durum, ödeme yöntemi, adres, kalemler ve onay kaydı.
- Müşteriler ve ürünler: Türkçe başlık ve açıklama, öne çıkarma, sıralama, görsel sırası.
- Ödeme ayarları: Stripe anahtarları, webhook adresi ve olay listesi.
- Instagram: gönderi, karusel, reel ve hikâye taslakları; onay, zamanlama ve otomatik yayın.
- Yayınlanan gönderilerin erişim, beğeni, kaydetme ve paylaşım sayıları düzenli çekiliyor; erişim anahtarı kendiliğinden yenileniyor.
Teşhis gerektiren sorunlar
- Görseller geç yükleniyordu: Printify görsellere önbellek başlığı göndermiyor. Yeniden boyutlandırılmış kopyalar dört saatte bir eskiyor, sunucu her görüntülemede aynı görseli yeniden üretiyordu. Önbellek süresi bir aya çıkarıldı, Cloudflare'de görsel önbellek kuralı yazıldı.
- Senkron her seferinde “değişti” diyordu: PostgreSQL jsonb alanlarındaki anahtarların sırasını değiştiriyor. Karşılaştırma anahtar sırasından bağımsız hale getirildi; artık yalnızca gerçekten değişen ürün yazılıyor.
- Ödenmeyen sipariş iptal edilemiyordu: Printify, siparişi oluşturduktan sonraki ilk saniyelerde iptali reddediyor. İptal, artan aralıklarla yeniden deneyen bir kuyruğa alındı.
Yayın ve dayanıklılık
- Ana dala gönderim sunucuda otomatik dağıtımı başlatıyor: bağımlılıklar, veritabanı göçleri, derleme ve yeniden başlatma.
- Şema değişiklikleri yalnızca göç dosyalarıyla canlıya çıkıyor.
- Cloudflare: sıkı TLS, HTTPS yönlendirme, gerçek ziyaretçi IP'si ve görsel önbelleği.
- Ödeme sağlayıcı anahtarları ve panel ayarları veritabanında şifreli.
Sonuç
Iconica Society, kamu malı başyapıtları sipariş üzerine basan, çok dilli bir sanat mağazası olarak yayında. Ödeme, üretim ve iptal insan eli değmeden işliyor: Stripe'ta ödenen sipariş Printify'da üretime gidiyor, ödenmeyen kendiliğinden iptal ediliyor. 167 eser, 171 koleksiyon ve 83 rehber sayfası tek katalogdan üretildiği için Printify'a eklenen her ürün kendi koleksiyonlarına, aramaya ve site haritasına otomatik giriyor. Avrupa siparişleri Almanya'da basılan ikizlerle karşılandığı için teslim süresi 10–30 günden 5–15 güne indi.



