İçeriğe geç
ceaksan

Shopify Flow ile B2B Otomasyonu: Tanımlama, Ödüllendirme, Bilgilendirme

Orta ölçekli Shopify B2B mağazalarında tekrar eden 3 eksiği (müşteri tanımlama, segmente göre ödüllendirme, operasyonel bilgilendirme) Shopify Flow ile kalıcı şablona dönüştürme rehberi. Gerçek müşteri gözlemlerinden derlenmiş case.

23 Nis 2026 7 dk okuma
TL;DR

İki farklı B2B Shopify mağazasında aynı eksik: müşteri durumunu (B2B mi, tester mi) kalıcı işaretleyememek, dolayısıyla her siparişte elle karar vermek. Shopify Flow üzerinde 3 aşamalı şablon; Tanımlama (customer metafield setter workflow'ları), Ödüllendirme (sepet tutarı ve müşteri tipine göre 4 dallı hediye attach), Bilgilendirme (staff note, order tag, Klaviyo event). Bu manuel süreci kalıcı bir otomasyon hattına dönüştürüyor. İki hazır .flow dosyası import edilip variant ID'leri değiştirildikten sonra 15 dakikada aktif.

Orta ölçekli B2B ve B2C satışları olan iki Shopify mağazasında ortak bir eksik vardı: müşteri hakkındaki önemli durum bilgisi, sistem içinde kalıcı olarak tutulmuyordu. Her sipariş geldiğinde ekipten biri “bu müşteri B2B mi” veya “bu müşteriye daha önce tester örneği gönderildi mi” sorularını ayrı bir tablo kaydından kontrol ediyordu, ardından müşteri tipine (bireysel veya kurumsal), satın alınan ürünlere ve sepet tutarına göre hediye ya da promosyon ürününü elle ekliyordu.

İki farklı mağaza, benzer amaçlar. Biri gıda B2B’si, diğeri kozmetik satışı. Farklı sektör, farklı ölçek; ama çözüm aynı soyut şablona oturuyor. Bu yazı o şablonu üç aşamalı bir Shopify Flow hattı olarak anlatıyor: Tanımlama, Ödüllendirme, Bilgilendirme.

Ortak problem

Müşteri A: Toplu ürünlü siparişleri manuel kontrol edip “hangi hesap B2B” kararını her seferinde elle veriyordu. “Bu müşteri kimdi, daha önce hangi ürünleri teslim almıştı” bilgisi farklı ekiplerce hem Shopify üzerinden hem de ayrı bir veri tablosundan takip ediliyordu.

Müşteri B: Yeni lansmanlarda belirli müşterilere (önceden tanımlı veya satın alınan ürün üzerinden) sample/tester gönderimi yapıyordu. Altı ay sonra aynı müşteri yine sipariş verdiğinde “daha önce bu ürünün örneği gönderilmiş mi” sorusu ayrı bir kontrol sürecini tetikliyordu.

İki senaryo farklı görünüyor ama temeli aynı: müşteri durumunu Shopify’ın kendi veri katmanında kalıcı işaretlememek. Durum işaretlendiğinde, her sipariş bu işarete göre otomatik atanan kararları çalıştırıyor ve uygun aksiyonları tetikliyor.

Şablon: Üç aşamalı hat

Akış görselleştirildiğinde üç katman ortaya çıkıyor:

B2B Shopify Flow karar ağacı: B2B müşteri tespiti, tester / non-tester ayrımı, sepet tutarına göre 4 hediye variant, ardından tag + staff note + Klaviyo event bildirim zinciri

Aşama 1: Tanımlama

Müşteri hakkında iki boolean sinyal tutuluyor, her ikisi de customer metafield olarak:

  • custom.b2b_status: müşteri B2B mi?
  • custom.is_tester: bu müşteriye daha önce tester/sample gönderildi mi?

Her iki metafield birer “signal setter” Flow workflow’u tarafından dolduruluyor. Trigger order_paid; guard ilgili sinyal ürününün siparişte olmasını kontrol ediyor; action ise customer metafield’ını true olarak set ediyor. Bir kere işaretlenen müşteri sonraki siparişlerde bu sinyali taşıyor, setter guard’ı redundant update yapmıyor.

Bu tek başına bile operasyonel bir kazanım: “bu müşteri kim” sorusu bir insan sorusu olmaktan çıkıp bir veri sorusuna dönüşüyor.

Not (Shopify B2B native özellikleri): Shopify B2B, Basic, Grow, Advanced ve Plus planlarının tamamında ek ücretsiz geliyor; eskiden Plus’a özel olan bu özellikler 2024 sonrası tüm planlara açıldı. Plan farkı aktif katalog sayısında: Basic/Grow/Advanced üç aktif katalog limiti ile çalışırken Plus sınırsız katalog + company/location’a doğrudan atama sağlıyor. Müşteri bir Company’e bağlıysa otomatik olarak B2B sayılıyor; Flow’da order.purchasingEntity.__typename == 'PurchasingCompany' condition’ı resmi pattern (aynı zamanda Shopify’ın hazır “Tag B2B orders” Flow template’inin tam olarak kullandığı koşul). Company’ye bağlı müşteriler için custom.b2b_status metafield’ına gerek kalmıyor; native alanlar guard olarak kullanılabiliyor. Metafield tabanlı yaklaşım ise Company altyapısını kurmak istemeyen ya da bireysel B2B alıcıları (küçük bayi, tek kişi satın alma) ayrı bir alanda takip etmek isteyen operasyonlar için hala geçerli.

Plus dışı mağazalarda B2B sinyalini toplama yolları

Metafield’a yazılacak true değerinin hangi kaynaktan besleneceği operasyona göre değişiyor. Üç pratik seçenek var:

  1. Checkout extensibility (geliştirici gerektirir): Shopify’ın yeni checkout UI extension’ları ile checkout sayfasına özel bir alan eklenebiliyor; örneğin “Kurumsal mı?” checkbox’ı veya vergi numarası alanı. Seçim doğrudan custom.b2b_status metafield’ına yazılabiliyor. Temiz çözüm ama teknik kaynak gerekli.
  2. Üçüncü parti app’ler: “B2B login”, “wholesale registration” veya “checkout custom fields” kategorisindeki app’ler bu işi hazır olarak yapıyor. Wholesale Club, B2B Wholesale Solution, Checkout Fields gibi app’ler pazarda mevcut; aylık sabit maliyet karşılığı onay sürecini ve metafield yazmayı kendi içinde çözüyor.
  3. Kayıt formu yaklaşımı: Checkout dışında, müşteri hesabı oluştururken ayrı bir form (Typeform, native Shopify page vb.) ile kurumsal bilgi toplanıyor. Admin tarafında onaylandıktan sonra custom.b2b_status = true elle set ediliyor. Geliştirici gerektirmiyor, ama onay sürecinin insan emeğiyle yönetilmesi gerekiyor.

Hangi yol seçilirse seçilsin, Flow tarafındaki ödüllendirme ve bilgilendirme katmanları aynı kalıyor; sadece sinyalin kaynağı değişiyor.

Aşama 2: Ödüllendirme

Tanımlama sinyalleri hazır olduğunda, karar ağacı net bir hesaba dönüşüyor. Hediye workflow’u order_paid trigger’ıyla başlıyor ve iki eksende dal kuruyor:

  1. is_tester == true mu (tester / core ayrımı)
  2. Sepet tutarı >= 500 TL mi (premium / entry tier ayrımı)

Dört kombinasyon, dört farklı hediye variant’ı:

Müşteri tipiSepet tutarıEklenen hediye
Tester500+ TLTester Premium Pack
Tester< 500 TLTester Sample Pack
Core B2B500+ TLCore Premium Kit
Core B2B< 500 TLCore Entry Kit

Her dal add_order_line_item action’ını add_for_free: true parametresi ile çağırıyor. Ücretsiz eklendiği için sipariş toplamı değişmiyor, müşteri ek bir ödeme yapmıyor, muhasebe tarafında da ek işlem doğmuyor.

Ödüllendirme kategorisi hediye ile sınırlı değil; indirim kodu gönderme, müşteri segmentini yükseltme, free shipping açma; hepsi aynı dal yapısına oturuyor. Hediye en kolay anlatılabilen ve en sık talep edilen örnek.

Aşama 3: Bilgilendirme

Otomasyon bir şey yaptığında üç farklı paydaş bunu bilmek istiyor:

  • Operasyon ekibi: hangi siparişe hediye eklendi, depoda pick-pack sırasında doğru ürün mü çekiliyor. Bunun için add_order_tags (örn. b2b-gift-attached, b2b-gift-tester-premium) ve add_order_note action’ları çalışıyor. Sipariş detayı ekranında ilk bakışta görünür oluyor.
  • Müşteri iletişimi katmanı: Klaviyo gibi bir email/SMS platformu kullanılıyorsa, her hediye zincirinde Klaviyo Track an event action’ı tetikleniyor. Klaviyo tarafında “ilk tester örneği” veya “Core Premium tier” gibi segmentler bu event’i trigger olarak kullanıyor; teşekkür email’i, cross-sell önerisi, tier promotion mesajı buradan çıkıyor.
  • Analytics / ölçüm katmanı: Plus, Advanced ve Grow planlarında Flow’un send_http_request action’ı ile GA4 Measurement Protocol’üne server-side event gönderilebiliyor. Bu katman B2B müşteri davranışını GA4 raporlarına ayrı bir segment olarak işliyor; web analytics pixel’den bağımsız olarak ölçüm bütünlüğü sağlıyor.

Bilgilendirme katmanını es geçmek yaygın bir hata: otomasyonun çalıştığından emin olmak, işe yaradığını ölçmek, yanlış tetiklemeyi yakalamak buradan geçiyor.

Önce ve sonra

Aynı mağaza, iki zaman dilimi.

ÖnceSonra
”Bu müşteri B2B mi?” sorusu her siparişte tekrarcustom.b2b_status metafield’ından okunuyor
Tester/sample geçmişi insan belleğinde veya Excel’decustom.is_tester metafield’ı kalıcı sinyal
Hediye kararı operasyon ekibinin inisiyatifiSepet tutarı + müşteri tipi kombinasyonu otomatik karar
Hata yapıldığında iz yok, şikayet sonradan çıkıyororder.tags ve staff_note’ta her hediyenin yazılı kaydı
Yeni ekip üyesi kuralı tekrar öğrenmek zorundaKural Flow’da; yeni ekip sadece export’u import ediyor

Uygulamadan sonra:

  • Müşteri A için sipariş başına ortalama 5-10 dakikalık elle kontrol süresi sıfırlandı.
  • Müşteri B için “tester daha önce gönderildi mi” sorgusu tamamen kapandı.

Her iki müşteri için de e-posta bildirimleri tutarlı bir zemine oturdu; hediye ürünlerle müşteri memnuniyeti görünür şekilde arttı.

Native B2B mi, metafield sinyali mi

Metafield tabanlı yaklaşım bu yazının temel şablonu ama bazı operasyonlarda Shopify’ın native B2B altyapısı daha az bakım ile aynı sonucu veriyor. İkisi de artık tüm planlarda (Basic, Grow, Advanced, Plus) çalışıyor, karar noktası operasyonun yapısında.

Native B2B’ye geçmenin kazançları:

  • Company + Company Location veri modeli: tek bir zincirin birden fazla şubesini tek profilde tutabiliyor; her lokasyon kendi vergi numarası, kendi teslimat-fatura adresi, kendi ödeme vadesi, kendi iletişim kişileri ile yönetiliyor.
  • Custom catalog: pricing + ürün erişimi company ya da location bazında; Basic/Grow/Advanced’de 3 aktif katalog, Plus’ta sınırsız.
  • Quantity rules + volume pricing: koli-bazlı minimum miktar, miktar basamağına göre kademeli fiyat; Flow yazmadan ürün tarafında tanımlanıyor.
  • Payment terms + vaulted credit card + bank account: net vade (net 30/60/90), depozito, ön onaylı kart veya ACH; B2B checkout’u bireysel müşterilere sunmadan yalnız company’lere gösteriyor.
  • Store credit: müşteri bazında alacak hesabı; ödeme yöntemi olarak checkout’a otomatik düşüyor.
  • Customer accounts (6 haneli PIN ile passwordless login): B2B için zorunlu; legacy customer accounts desteklenmiyor.
  • Company account requests: yeni B2B müşteri adayları Shopify Forms üzerinden başvuru yapıyor, admin onaylıyor, Flow template’i ile otomatik company kurulumu tetikleniyor.
  • Sales staff permissions: satış temsilcileri yalnız atandıkları company location’ları görecek şekilde kısıtlanabiliyor.
  • Trade theme (B2B için optimize) veya Horizon (blended store için) ile B2B-aware tema desteği; quick order list, quantity rules, volume pricing tema tarafında natif görünüyor.

Metafield sinyalinin hala tercih edildiği durumlar:

  • Müşteri tek kişi (küçük bayi, freelance satın alıcı) ve company profili açmak fazla geliyor.
  • Blended (B2B + D2C) mağazada bireysel müşteriye de “kurumsal gibi davran” işareti gerekiyor (örn. tester programı, sadakat tier’ı).
  • Tester/is_tester gibi B2B-dışı ama müşteri-ömürlü bayrak tutulacak. Bu yazının is_tester şablonu buna tipik örnek.
  • Plus dışı planlarda 3 katalog limiti yeterli değil, katalog yerine Flow branch’leri ile hediye/indirim tier’ı yönetmek daha esnek.

Karar alırken pratik kural: müşteri “bir şirket ve onun satın alıcıları” modeline oturuyorsa native company + catalog; müşteri “bir kişi ve onun durumu” modelindeyse metafield sinyali.

Native B2B siparişini e-posta şablonunda ayırmak

Native tarafa geçince Liquid notification şablonları tek satırla B2B/D2C branch’i kurabiliyor. Order ve draft order email template’lerinde şu değişkenler mevcut:

{% if b2b? %}
  <p>Firma: {{ company.name }}</p>
  <p>Lokasyon: {{ company_location.name }}</p>
  <p>Fatura: {{ company_location.billing_address | format_address }}</p>
  {% if payment_terms %}
    <p>Vade: {{ payment_terms.payment_schedules.first.due_at | date: "%d.%m.%Y" }}</p>
  {% endif %}
{% endif %}

b2b? boolean’ı siparişi Company’ye bağlıysa true dönüyor, metafield okumaya gerek kalmıyor. Bu yaklaşım Flow’un Tag B2B orders template’inden daha erken çalışıyor: Flow tag’leri notification email gönderildikten sonra ekleniyor (Shopify Collective ile aynı zamanlama sorunu), dolayısıyla email template’inde {% if tags contains 'B2B' %} güvenilir değil; b2b? koşulu ise render anında hazır.

Tema tarafında customer.b2b?

Aynı mantık storefront temasına da geçiyor. Theme.liquid veya section’lar içinde giriş yapmış müşteri B2B ise tek satırla ayırt edilebiliyor:

{% if customer.b2b? %}
  {% render 'b2b-wholesale-banner' %}
  <a href="/account/orders" class="wholesale-cta">Toplu sipariş formu</a>
{% else %}
  {% render 'd2c-promo-bar' %}
{% endif %}

Blended mağazada (B2B + D2C aynı temada) bu bir navigation, banner, CTA ve hatta fiyat formatı değişimi için temiz bir branch noktası. Dedicated B2B mağazasında ise {% unless customer.b2b? %} guard’ı D2C ziyaretçiye özel bir “erişim için başvur” CTA’sına yönlendiriyor; tam login-wall için Online Store > Preferences > Store access > Restrict access to B2B customers only ayarı veya Locksmith gibi app’ler gerekiyor.

Bu iki değişken (order.b2b? / draft_order.b2b? email tarafında, customer.b2b? tema tarafında) birlikte kullanıldığında hem operasyonel hem de müşteri deneyimi katmanında metafield tabanlı guard’lara ihtiyaç kalmıyor; sinyal Shopify’ın kendi veri modelinden doğrudan geliyor.

Kurulum için

Şablon iki .flow dosyası olarak hazır: B2B Tester Signal Setter.flow (tanımlama katmanı) ve B2B Free Gift Auto-Attach.flow (ödüllendirme + bilgilendirme katmanı). Import et, variant ID’lerini kendi mağazandaki hediye ürünleriyle eşle, Klaviyo public API key’ini yerine koy.

Teknik derinlik

Bu yazılardaki Flow yapısı, signal setter pattern’i, cart attribute bridge, GA4 Measurement Protocol detayları ve consent condition köprüsü iki teknik yazıda daha detaylı:

Sonraki adım

Kendi mağazanda benzer bir ihtiyaç varsa ya gist’i indirip doğrudan kurulumu dene, ya da bu şablonu sektörüne ve operasyonuna göre özelleştirmek için destek al. Tanımlama sinyalleri B2B ve tester ile sınırlı değil: sadakat, bölge, yenilenen abonelik, risk skoru; hepsi aynı metafield + Flow pattern’ine oturuyor. Ödüllendirme ve bilgilendirme katmanları da aynı esneklikte genişliyor.

Orta ölçekli B2B operasyonlarında gördüğüm en büyük kazanım, bu şablonun müşteri durumunu insan belleğinden sisteme geçirmesi. O anda değil, sonraki 100 siparişte hissediliyor.

Önemli Noktalar
  • 01 B2B ve sample/tester operasyonlarında ortak eksik, müşteri durumunu Shopify içinde kalıcı sinyallere dönüştürememek. Çözüm iki customer metafield: b2b_status ve is_tester.
  • 02 Signal setter Flow workflow'ları ilk satın alımda müşteriyi otomatik işaretliyor; sonraki siparişler guard üzerinden bu sinyalleri okuyor.
  • 03 Ödüllendirme katmanı 4 dal: (tester, >=500), (tester, <500), (core, >=500), (core, <500). Her dal farklı variant ekliyor, add_for_free ile sipariş toplamı değişmiyor.
  • 04 Bilgilendirme katmanı her dal sonunda: order tag + staff note (operasyon görünürlüğü), Klaviyo Track Event (müşteri iletişimi), GA4 Measurement Protocol (analytics; Plus/Advanced/Grow planlarında).
  • 05 Solo operasyondan 3-5 kişilik ekiplere geçişte en kritik kazanım: kuralın insan belleğinden sisteme taşınması, yazılı izin her sipariş için var olması.
Sık Sorulan Sorular (FAQ)
+ Shopify Plus gerekli mi?

Hayır. Tanımlama ve ödüllendirme katmanları (metafield setter + hediye attach) tüm Shopify planlarında çalışıyor. Sadece GA4 Measurement Protocol için kullanılan send_http_request action'ı Plus, Advanced ve Grow planlarına özel. Basic ve Standard mağazalar Klaviyo Track Event connector'ı üzerinden downstream analytics'e köprü kurabiliyor.

+ Bu sadece hediye için mi kullanılır?

Hayır. 'Ödüllendirme' geniş bir kategori: indirim kodu gönderme, müşteri segmentine yükseltme (customer tag), VIP oluşturma, free shipping threshold değiştirme, sample attach, tester promosyonu; hepsi aynı 3 aşamalı pattern'e sığıyor. Makalede hediye örneği var çünkü en kolay anlatılabilen ve en çok talep edilen senaryo.

+ Müşteri yanlışlıkla tester olarak işaretlenirse ne olur?

Signal setter workflow'u tek yönlü (sadece false değerini true'ya çeviriyor). Yanlışlık durumunda admin, Customer detail, Metafields ekranından is_tester değeri elle false yapılabiliyor veya metafield komple silinebiliyor. Bir sonraki siparişte setter guard'ı tekrar çalışıp durumu yeniden değerlendiriyor.

+ İki `.flow` dosyası import edildikten sonra ne yapmam gerekiyor?

Üç şey: (1) customer metafield'ları custom.b2b_status ve custom.is_tester tanımlı değilse Settings > Custom data üzerinden oluştur; (2) Free Gift Auto-Attach workflow'unda 4 variant ID'sini gerçek hediye variant'larınla değiştir; (3) Klaviyo action'larındaki public_api_key placeholder'ını Klaviyo hesabından aldığın Public API Key ile değiştir. Ardından Flow Activity log üzerinden ilk test siparişinde tetiklemeyi doğrula.

+ Bu otomasyon müşterilere görünür mü?

Hayır. Hediye ürünü add_for_free: true ile siparişe ekleniyor; toplam değişmiyor. staff_note sadece admin tarafında görünüyor, checkout'ta yok. Tag'ler order detay ekranında operasyon ekibi için. Müşteri yalnızca siparişine eklenen ücretsiz ürünü görüyor; ek sürpriz bir mesaj gerekiyorsa Klaviyo event'i üzerinden email/SMS tetiklenebilir.