Shopify’da Sepete Ürün Ekleme İşlemini Tamamen Engelleme Rehberi

Shopify mağazalarında bazı durumlarda kullanıcıların sepete ürün eklemesini tamamen engellemek gerekebilir. Örneğin özel bir ürün tipi, yalnızca vitrin amaçlı sergilenen bir SKU, ön siparişe kapalı ürünler veya mağaza kurgusuyla çakışan üçüncü parti uygulamalar buna sebep olabilir. Ancak yalnızca “Sepete Ekle” butonunu kaldırmak çoğu zaman yeterli değildir; çünkü Shopify’ın /cart/add endpoint’i farklı yollarla tetiklenebilir. Bu rehberde, Shopify’da sepete ekleme davranışını global seviyede nasıl engelleyebileceğinizi detaylı bir şekilde ele alıyoruz.
Neden Shopify’da /cart/add Bloklaması Yapmak Gerekiyor?
Shopify’daki sepete ekleme işlemi tema dosyalarıyla sınırlı bir davranış değildir. Kullanıcılar veya uygulamalar farklı yöntemlerle sepete ekleme isteği gönderebilir:
- Tarayıcı konsolu üzerinden manuel fetch çağrısı
- Üçüncü parti uygulamaların otomatik /cart/add tetiklemesi
- Script’ler veya embed edilen widget’lar
- AJAX tabanlı formlar veya özel butonlar
Dolayısıyla gerçek bir engelleme için yalnızca front-end bileşenlere müdahale etmek yeterli olmaz. Asıl hedef, tarayıcıda kaynağı ne olursa olsun tüm /cart/add çağrılarını yakalamak olmalıdır.
Shopify’da /cart/add İsteklerini Global Olarak Yakalama Mantığı
Sepete ekleme davranışını 100% kontrol altına almak istiyorsanız, tarayıcı tarafında gelen tüm istek tiplerini kapsayan bir guard (koruma katmanı) oluşturmanız gerekir. Bu guard’ın amacı:
- Her türlü fetch çağrısını
- XMLHttpRequest tabanlı istekleri
- Form submit yoluyla gönderilen POST isteklerini
global olarak intercept etmek ve /cart/add içeren tüm URL’leri durdurmaktır.
Bu üç seviyeyi yakalayan küçük bir script ile:
- Tema kaynaklı istekler
- Üçüncü parti uygulama istekleri
- Kullanıcı konsolundan manuel yapılan fetch() çağrıları
- Arka planda çalışan widget veya snippet’ler
tamamı tek noktada engellenebilir.
Global Guard Nasıl Çalışır?
Oluşturulan guard, tarayıcıdaki istek akışını dinler. Bir kullanıcı veya uygulama şu işlemi çalıştırsa bile:
fetch('/cart/add.js', { method: 'POST', body: {...} })
istek engellenir ve sizin belirlediğiniz özel bir response döner.
Bu sayede hem kullanıcı deneyimi kontrol altında tutulur hem de sitenizin mantığıyla çakışan uygulamaların beklenmedik işlemler yapmasının önüne geçmiş olursunuz.
Örneğin:
- Favorilere ekleme uygulaması yanlışlıkla sepete ekleme tetikliyorsa engellenir
- Promosyon uygulamaları otomatik sepet manipülasyonu yapamaz
- Konsoldan sepete ürün eklemeyi deneyen biri sonuç alamaz
Bu yöntem özellikle Shopify Plus olmayan mağazalarda backend kontrolü sınırlı olduğundan oldukça faydalıdır.
Global Bloklama Tek Başına Yeterli mi?
Tam anlamıyla hayır. Teknik bilgiye sahip bir kişi, guard’ı teorik olarak baypas edebilir.
Bu nedenle ikinci bir güvenlik katmanı olarak, Shopify’ın kendi stok kontrol mekanizmasını kullanmak mantıklı olabilir.
Alternatif Güvenlik: Track Quantity + Negatif Stok Mantığı
Sepete eklenmemesi gereken ürünlerde:
- Track Quantity seçeneğini açarak
- Ürünün stok miktarını negatifte tutarak (ör. -100)
ürünün ödeme aşamasında geçersiz sayılmasını sağlayabilirsiniz.
Shopify, stoğu olmayan ürünlerin checkout sürecini otomatik olarak iptal eder.
Bu yöntem, guard’ı aşmayı başarsa bile satın alma işlemini engeller.
Yalnızca tema tarafında ürünün “stokta var” şeklinde görünmesi için ufak bir kod düzenlemesi gerekebilir.
Shopify’da Sepete Ekleme Kontrolünü Tamamen Ele Geçirmek Mümkün
Shopify üzerinde sepete ürün eklemeyi tamamen engellemek istiyorsanız, tek bir yöntem yeterli olmaz.
Hem:
- Tarayıcı tabanlı global guard
- Hem de Track Quantity + stok yönetimi
birlikte kullanıldığında güçlü ve güvenilir bir çözüm ortaya çıkar.
Bu yöntem:
✔ Üçüncü parti uygulamaları kontrol altında tutar
✔ Manuel /cart/add çağrılarını durdurur
✔ Sepete alınmasını istemediğiniz ürünleri tamamen korur
✔ Checkout aşamasında Shopify’ın güvenlik doğrulamasıyla ek önlem sağlar
.png)

