# Shopify + Brew

Shopify müşteri, sipariş, ödeme ve sipariş karşılama olaylarıyla Brew otomasyonlarını tetikleyin. Hoş geldin, makbuz, terk edilmiş ödeme ve kargo akışlarını çalıştırır.

Kanonik URL: https://brew.new/tr/browse/integrations/shopify

- Yön: Gelen veri
- Bağlantı: Webhook gizli anahtarı
- E-ticaret olay tetikleyicileri

## Kullanıma açık özellikler

- **Olay tetikleyicileri**: Shopify müşteri, sipariş, ödeme ve sipariş karşılama olaylarıyla Brew otomasyonlarını tetikleyin. Hoş geldin, makbuz, terk edilmiş ödeme ve kargo akışlarını çalıştırır.

## Mağaza olaylarını işe yarar e-postalara dönüştürün

Bir müşteri kaydolduğunda, bir siparişin ödemesi yapıldığında, bir ödeme (checkout) oluşturulduğunda veya bir sipariş kargoya verildiğinde markanıza uygun e-postalar göndermeye başlamak için Shopify’ı bağlayın. Brew; müşteri, sipariş, ödeme ve sipariş karşılama kategorilerinde toplam 13 Shopify webhook olay türünü destekler.

Kurulumda, Shopify yönetici panelinde oluşturduğunuz webhooklar kullanılır. Shopify uygulaması, istemci kimliği (client ID) veya OAuth kurulumu gerekmez. Siparişler, ödemeler ve sipariş karşılama Shopify’ın sorumluluğunda kalır. E-postaları ise Brew oluşturur ve gönderir.


## Neler oluşturabilirsiniz

- Müşterilere hoş geldin e-postaları: customers/create olayı, Shopify’da bir müşteri kaydı oluşturulduğunda tetiklenir.
- Sipariş onayları ve makbuzlar: orders/create olayı bir sipariş verildiğinde, orders/paid olayı ise ödeme tahsil edildiğinde tetiklenir. İkisi de orderNumber, totalPrice, currency ve financialStatus alanlarını taşır. Mükerrer e-postaları önlemek için her mesajda bunlardan yalnızca birini kullanın.
- İptal bildirimleri: orders/cancelled olayı, bir sipariş iptal edildiğinde tetiklenir ve sipariş numarasıyla ödeme durumunu taşır.
- Kargo bildirimleri: fulfillments/create olayı, gönderide varsa trackingNumber ve trackingUrl alanlarını taşır. orders/fulfilled olayı da sipariş kargoya verildiğinde tetiklenir ancak kargo takip alanları içermez; bu yüzden her kargo e-postası için tek bir tetikleyici seçin.
- Sipariş karşılama sonrası takip e-postaları: fulfillments/update olayı, bir gönderi değiştiğinde tetiklenir. fulfillmentStatus alanı teslimat onayı değil, gönderinin işlenme durumudur (ör. pending, success veya failure). Teslimattan sonra teşekkür veya yorum isteği göndermek için özel bir Brew olayını ancak uygulamanız teslimatı doğruladıktan sonra tetikleyin.
- Ödeme hatırlatmaları: checkouts/create olayı, bir ödeme (checkout) oluşturulduğunda tetiklenir ve ödemeyi kaldığı yerden sürdüren bir bağlantı olan abandonedCheckoutUrl alanını taşıyabilir.
- Aynı mesajın müşteriye iki taraftan da gitmemesi için Shopify’ın müşteri bildirimleriyle uyumlu çalışın.

## Ödeme hatırlatmaları bir durum kontrolü gerektirir

checkouts/create olayı, ödeme terk edildiğinde değil, oluşturulduğunda tetiklenir. Hatırlatma akışı bu noktada başlar ve bekler. Sipariş verilmesi, daha önce başlamış bir çalıştırmayı durdurmaz.

Bir Bekle adımından sonra bir koşul, shopify_last_order_status ve shopify_last_order_at gibi güncel kişi alanlarını okur. Bu alanlar bu belirli ödemeyi değil, Brew tarafından görülen en son siparişi tanımlar; bu yüzden bu ödemenin siparişe dönüştüğünü kanıtlayamaz.

checkouts/update olayı belirli bir süre sonra değil, ödeme her değiştiğinde tetiklenir; bu yüzden tek başına zamanlanmış ikinci bir hatırlatma olarak işe yaramaz.

E-posta adresi olmayan bir ödeme, Brew aynı Shopify müşteri kimliği için daha önce bir e-posta adresi görmediyse otomasyon başlatmaz. Yayımlamadan önce siparişe dönüşen ve dönüşmeyen birer ödemeyi test edin.


## Shopify’ı Brew içinde kurun

- Entegrasyonlar sayfasını açın, Shopify’ı seçin ve “Webhook URL’si oluştur” düğmesine tıklayın.
- Mağazanızın özel alan adını değil, acme.myshopify.com gibi myshopify.com alan adınızı girin. Brew bu alan adını her webhookta X-Shopify-Shop-Domain başlığıyla karşılaştırır.
- Shopify yönetici panelinde Ayarlar > Bildirimler sayfasını açın ve Webhooklar bölümüne inin. Shopify bir olay türünü yalnızca o olay türü için oluşturulmuş webhooka gönderir; bu yüzden kullanmayı planladığınız her olay için bir webhook oluşturun. Biçimi JSON olarak ayarlayın, Brew URL’sini yapıştırın ve en güncel API sürümünü seçin.
- Webhooklar bölümünün altındaki imzalama anahtarını kopyalayın. Mağazanın tüm webhookları aynı anahtarla imzalanır. Anahtarı Brew içine yapıştırın ve Bağla düğmesine tıklayın.
- Oluşturduğunuz her webhookun menüsünü açın ve Test gönder seçeneğine tıklayın. İlk test, Brew içindeki bağlantıyı “Test olayı bekleniyor” durumundan “Bağlı” durumuna geçirir; her test de kendi olayını alındı olarak işaretler. Test yalnızca webhooku doğrular. Brew kişi eklemez ve otomasyon başlatmaz.
- Bağlantı kurulduğunda 13 olay türünün tamamı için tetikleyici oluşturulur. Olayları tek tek açıp kapatmaya yarayan bir ayar yoktur; ancak Shopify’da webhooku olmayan bir olay türü hiçbir zaman tetiklenmez.
- Bir otomasyon oluşturun, Shopify olayını seçin ve otomasyon henüz Taslak durumundayken bir test gönderin. Eşleşen bir olay geldiğinde yalnızca durumu Yayında olan otomasyonlar çalışır.

## Desteklenen Shopify olayları

Brew şu 13 webhook olay türünü destekler:

- customers/create
- customers/update
- customers/delete
- customers/enable
- customers/disable
- orders/create
- orders/paid
- orders/cancelled
- orders/fulfilled
- checkouts/create
- checkouts/update
- fulfillments/create
- fulfillments/update

## Kişi senkronizasyonu ve kişiselleştirme

Gerçek bir e-posta adresi taşıyan her doğrulanmış olay, bir otomasyon o olayı kullansın ya da kullanmasın, e-posta adresine göre eşleştirilen bir Brew kişisi oluşturur veya mevcut kişiyi günceller. İlgili veriler varsa Brew ad, soyad, shopify_customer_id ve shopify_shop_domain alanlarını doldurur.

Sipariş olayları shopify_last_order_number, shopify_last_order_total, shopify_last_order_currency ve shopify_last_order_at alanlarını günceller. orders/create, orders/paid ve orders/cancelled olayları ayrıca shopify_last_order_status alanını, orders/fulfilled olayı ise shopify_last_fulfillment_status alanını doldurur. Sipariş karşılama olayları shopify_last_tracking_number, shopify_last_tracking_url ve shopify_last_fulfillment_status alanlarını günceller. Ödeme olayları ise shopify_last_checkout_url alanını günceller.

customers/delete, customers/disable ve customers/enable olayları shopify_account_status alanını sırasıyla deleted, disabled ve active olarak ayarlar. Brew kişiyi silmez veya abonelikten çıkarmaz; bu yüzden önemli olduğu yerlerde bu alana göre filtreleyin.

Birleştirme etiketleri için seçilen olayın tanımlanan payload şemasını kullanın. Her olayda email, firstName, lastName, currency, shopDomain ve createdAt alanları (varsa) bulunur. Sipariş olayları bunlara orderNumber, totalPrice, financialStatus ve fulfillmentStatus alanlarını ekler. Ödeme olayları totalPrice ve abandonedCheckoutUrl alanlarını, sipariş karşılama olayları ise trackingNumber, trackingUrl ve fulfillmentStatus alanlarını ekler.

totalPrice alanı, Shopify’ın sipariş para biriminde gönderdiği tutardır (ör. 49.95); sent cinsinden değildir. Payload verileri ürün kalemlerini içermez ve Shopify nesne kimlikleri birleştirme etiketi olarak kullanılamaz.

Shopify’ın müşteri webhookları artık pazarlama iznini içermiyor; bu yüzden Brew bu bilgiyi almaz. İzni ayrıca kayıt altına alın ve tanıtım amaçlı gönderimlerden önce kontrol edin.


## Brew iadeleri ve sepet olaylarını destekliyor mu?

Hayır. Shopify’da orders/refunded diye bir olay türü yoktur ve iade webhooku müşteri bilgisi taşımaz. carts/update olayında alıcı kimliği bulunmaz; bu yüzden Brew bu olaydan güvenle e-posta gönderemez. Bu olay türleri için webhook eklemeyin.


## Bir olay görünüyor ama neden e-posta gönderilmiyor?

Bir olayın alınması ile e-posta gönderilmesi ayrı adımlardır. Eşleşen bir otomasyonun yayında olduğunu doğrulayın, ardından filtrelerini, çalıştırma geçmişini, alıcının uygunluğunu ve gönderim alan adını kontrol edin. Test gönder ile yapılan bir teslim test olayı olarak görünür ve hiçbir zaman otomasyon başlatmaz. Bilinmeyen bir müşteriye ait, e-posta adresi olmayan bir olay alıcısı belirlenemeyen olay olarak kaydedilir.


## Sınırlar ve sorun giderme

- Brew, Shopify’daki müşterileri, siparişleri veya gönderileri değiştiremez.
- shop_domain_mismatch içeren bir 401 hatası, Brew içine girilen alan adının webhooku gönderen mağazayla eşleşmediği anlamına gelir. Mağazanın asıl myshopify.com alan adıyla yeniden bağlanın.
- Shopify’da imzalama anahtarını yenilerseniz yeni değerle yeniden bağlanın. Brew, anahtarın en az 16 karakter uzunluğunda olmasını ister.
- Bir tetikleyicide “Henüz olay yok” görünüyorsa o olay türü için bir Shopify webhooku oluşturun ve bu webhooktan bir test gönderin.
- Sipariş webhookları müşteri adını içermeyebilir. firstName birleştirme etiketi için genel bir selamlama gibi bir varsayılan değer kullanın.
- Her e-postanın izin durumunu ve amacını gözden geçirin. Shopify müşterilerini senkronize etmek, tanıtım amaçlı gönderimler için izin vermez.

## Kaynaklar ve kurulum rehberleri

- [Shopify kurulum rehberi](https://docs.brew.new/integrations/import/shopify)
- [Otomasyon oluşturun](https://docs.brew.new/create-emails/build-an-automation)
- [Birleştirme etiketleri](https://docs.brew.new/create-emails/merge-tags)
- [Brew ile neler gönderebilirsiniz](https://docs.brew.new/get-started/what-you-can-send)
- [Shopify webhookları](https://shopify.dev/docs/apps/build/webhooks)

## İlgili sayfalar

- [Tüm entegrasyonlar](https://brew.new/tr/browse/integrations.md)
- [Kaydol](https://brew.new/tr/sign-up.md)
- Web sitesi: https://brew.new
