Mağazanızda oturum açmış müşteriler
Webhook'u yalnızca mağazanıza giriş yapmış müşterilerin çağırmasına izin verin ve Shopify Flow'da Shopify imzalı müşteri kimliğini alın.
Kendi mağaza sayfanızdan bir webhook'u çağırın ve bunu hangi müşterinin gönderdiğini öğrenin. Bir toptan satış sipariş formu, bir B2B hesap sayfasındaki yeniden sipariş düğmesi veya oturum açmış müşteriler için bir talep formu, bir Shopify Flow iş akışını başlatabilir ve iş akışı, oturum açmış müşterinin kimliğini alır. Shopify bu kimliği imzalar, böylece kimse başka bir müşteri gibi davranamaz.
Bu, uygulama proxy URL’sini temel alır; bkz. CORS, uygulama proxy URL’si ve tarayıcı çağrıları.
Kurun
- Webhook'u açın ve Gelişmiş Ayarlar'a gidin.
- URL Ayarları altında, Uygulama proxy URL'sini kullan seçeneğini etkinleştirin. Webhook URL'si artık mağazanızın etki alanında yer almaktadır; örneğin
https://your-store.com/apps/webhooks/abc123. - "Bu webhook'u kim çağırabilir?" bölümünde, üç seçenekten birini seçin:
| Seçenek | Uygulama proxy URL'si | Uygulamanın doğrudan URL'si |
|---|---|---|
| Bu URL’ye sahip olan herkes | Herkes için işe yarar | Eserler |
| Yalnızca mağazanızın alan adı üzerinden | Herkes için geçerlidir, misafirler de dahil | 403 hatasıyla reddedildi |
| Yalnızca mağazanıza giriş yapmış müşteriler | Bu özellik, oturum açmış müşteriler için geçerlidir; misafirler ise 401 hatası alır | 403 hatasıyla reddedildi |
- Kaydet. Bu ayar bir sonraki isteğe uygulanır.

Uygulamanın kontrol ettiği şeyler
Uygulama proxy URL’si üzerinden gelen her istek, Shopify’dan alınan bir imza içerir. Uygulama, şu sırayla kontrol eder:
- İmza. Geçerli bir Shopify imzası içermeyen bir istek, 401 hatasıyla reddedilir. Shopify bu imzayı uygulamanızın gizli anahtarıyla oluşturduğu için kimse bunu taklit edemez.
- Sizin mağazanız. Başka bir mağaza adına imzalanmış bir talep, 403 hatasıyla reddedilir.
- Oturum açmış müşteri. Yalnızca mağazanıza oturum açmış müşteriler için geçerli olan bu durumda, oturum açmamış bir müşteriye ait istek 401 (
customer_login_required) hatasıyla reddedilir. Müşteri kimliği imzadan alınır; asla istek gövdesinden alınmaz. - Doğrudan URL. Her iki kısıtlamada da, uygulamanın doğrudan URL’si 403 (
proxy_required) hatası verir; dolayısıyla kimse bu kontrolleri atlayamaz.
Reddedilen bir istek hiçbir zaman Shopify Flow’a ulaşmaz ve planınızın kotasından düşülmez.
Shopify Flow’a gelenler
Webhook Tetikleyicisi ve Senkronizasyon Webhook Tetikleyicisi’nde customerId adlı bir alan bulunur: bu, oturum açmış müşterinin sayısal kimliğidir; örneğin 7350001. Misafirler için ve uygulama proxy URL’si üzerinden gelmeyen her istek için bu alan boştur. Eşleştirilmiş alanlarınız her zamanki gibi gelir; bkz. Yük haritalama ve Shopify Flow değişkenleri.
Mağazanızdan arayın
İstek, müşterinin oturum açmış olduğu bir durumda mağazanızın bir sayfasından gelmelidir; böylece mağazanızın etki alanı üzerinden iletilir. Uygulamadan webhook URL’sini kopyalayın: Shopify, proxy yolunu değiştirmenize izin verir; bu nedenle sizin yolunuz örnektekinden farklı olabilir. Bir tema bölümündeki bu kod parçacığı, B2B müşterisinin satın alma işlemini gerçekleştirdiği şirketin konumunu gönderir:
<script>
fetch('/apps/webhooks/abc123', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
companyLocationId: 'gid://shopify/CompanyLocation/{{ customer.current_location.id }}'
})
})
</script>Workflow'un konumu fieldOne olarak alabilmesi için Alan 1'i companyLocationId ile eşleştirin.
Shopify Flow'da müşterinin giriş işlemlerini tamamlayın
Shopify Flow, müşteri hakkındaki tüm bilgileri okuyabilir; bu nedenle bu kontrol, iş akışının bir parçası olmalıdır:
- **Tetikleyici: **Workflow Webhooks bölümünden “Webhook Tetikleyicisi”. Birden fazla webhook’unuz varsa, şu koşulu ekleyin: Webhook kimliği, uygulamada gösterilen kimliğe eşittir.
id:{{customerId}}sorgusuyla müşteri verilerini alın. Shopify Flow, etiketler ve şirket rolleri de dahil olmak üzere oturum açmış müşterinin bilgilerini yükler.- Koşul: Müşterinin
wholesaleetiketi olması ve şirket iletişim profillerinden birinde, şirket konum kimliğifieldOneile eşleşen ve rolüOrdering onlyveyaLocation adminolan bir rol ataması bulunması. - O zaman: gerekli işlemleri gerçekleştirin; örneğin, o konum için bir sipariş taslağı oluşturun. Aksi takdirde: işlemi durdurun ya da mağaza arayüzüne Eşzamanlı yanıt ile yanıt verin; böylece sayfa müşteriye nedenini açıklayabilir.
Bilgiye değer
- Uygulama proxy URL’sinin çalışabilmesi için mağaza sayfanıza erişilebilir olması gerekir. Şifre korumalı bir mağazada ise, mağaza sayfası şifresi girildikten sonra yanıt verir.
- Konuklar 401 hatası ile karşılaşıyor, bu nedenle o sayfada bir oturum açma bağlantısı gösterin.
- Geçmiş, her isteğin müşteri kimliğini gösterir ve bir tekrar işlemi bu kimliği yeniden gönderir.
- Bir müşteri verilerinin silinmesini talep ettiğinde, gönderdiği geçmiş kayıtları silinir.
