Problem
Trendyol’da satan bir marka, aynı ürünleri kendi Shopify mağazasında da satıyor - ama iki katalog birbirini tanımıyor. Ürün Shopify tarafında güncellendiğinde eşleşme bozuluyor, Trendyol’da biriken müşteri yorumları ise Shopify vitrininde hiç görünmüyor. Yorum, e-ticarette en güçlü dönüşüm unsurlarından biri; pazaryerinde kalıp kendi mağazanıza yansımaması doğrudan kayıp demek.
Bu tek bir mağazanın sorunu da değildi: aynı ihtiyaç birden fazla canlı Shopify vitrininde, her biri kendi Admin API bağlantısıyla vardı.
Çözüm
Node.js ve TypeScript ile, Next.js arayüzü ve Firebase Cloud Functions üzerinde çalışan çok mağazalı bir özel uygulama tasarladım. Uygulama Trendyol ürünlerini Shopify katalog verisiyle eşliyor ve uygun Trendyol yorumlarını karşılık gelen Shopify ürünlerine otomatik aktarıyor.
Senkronizasyon tek bir mekanizmaya bağlı değil; üç yoldan besleniyor:
- Olay tabanlı - Shopify ürün oluşturma, güncelleme ve silme webhook’ları ile uygulama kaldırma (app uninstall) olayları anında işleniyor.
- Zamanlanmış - Trendyol API’si düzenli aralıklarla yoklanıyor, böylece webhook’un kapsamadığı değişiklikler de yakalanıyor.
- Manuel - operasyon ekibi gerektiğinde senkronu elle tetikleyebiliyor.
Durum ve eşleme verisi Firestore’da tutuluyor; her mağazanın kendi Admin API bağlantısı olduğu için aynı kurulum birden fazla canlı vitrini paralel besliyor. Ayrıca satın alma öncesi uluslararası kargo maliyeti bildirimi eklendi - müşteri ödeme adımına gelmeden maliyeti görüyor.
Vitrin tarafındaki kuralları çalıştırmak için Shopify CLI ile JavaScript
ve TypeScript Shopify Function eklentileri geliştirip yayına aldım;
GraphQL input query’leri ve shopify.extension.toml yapılandırmasıyla
üretim sürüm akışına bağlandılar.
Sonuç
Sistem canlı üretimde çalışıyor ve birden fazla Shopify mağazasını aynı anda besliyor. Trendyol’da biriken sosyal kanıt artık markanın kendi vitrininde görünüyor; katalog eşlemesi ürün değişikliklerinde elle müdahale gerektirmeden güncel kalıyor.