Ücretsiz başla
Docs / RAG Widget / Shopify & e-ticaret
How-to

Shopify & e-ticaret

Bilgi tabanı statik içeriği (SSS, politikalar) iyi karşılar; ama "siparişim nerede?", "bu üründen stok var mı?" gibi sorular canlı veri ister. Shopify'ı bağlayınca widget bu soruları gerçek zamanlı yanıtlar.

Mağazayı bağlama

SemAgent panelinde Ayarlar → E-Ticaret → Shopify'a gidin. Bağlanmanın iki yolu vardır: tek tıkla OAuth (önerilen) veya Admin API (Client Credentials). İkisi de salt-okuma kapsamlarıyla çalışır; kimlik bilgileri şifreli saklanır ve LLM'e gönderilmez.

⚠️

Not: Shopify, custom app'lerde admin arayüzünden doğrudan statik shpat_ token üretimini kaldırdı. Artık önerilen yol, uygulamanızın Client ID + Client Secret'ı ile Client Credentials Grant'tır (sistem 24 saatlik kısa-ömürlü token'ı otomatik alır ve yeniler).

Yöntem 1 — OAuth (önerilen)

  1. Panelde E-Ticaret → Shopify → Hızlı Bağlantı alanına mağaza adresinizi yazın: magazam.myshopify.com (özel alan adınız değil, .myshopify.com adresiniz).
  2. OAuth ile Bağla'ya basın → Shopify'da izin ekranında Install / Onayla deyin.
  3. Bitti — izinler tek tıkla verilir, elle token oluşturmanıza gerek yoktur. Geri dönünce bağlantı "✓ Bağlı" görünür.

Onay ekranında vereceğiniz izinler (tümü salt-okuma):

İzinNe işe yarar
read_productsÜrün adı, fiyatı, açıklaması.
read_ordersSipariş durumu ve kargo takibi (takip no + firma).
read_customersSipariş sahibini doğrulama (e-posta eşleştirme).
read_inventoryBeden/renk bazlı stok mevcudiyeti.
read_discounts + read_price_rulesKupon/indirim kodu doğrulama.
read_shippingKargo ücretleri ve teslimat bölgeleri.
🔒

Varsayılan olarak yalnızca okursiz açıkça izin vermediğiniz sürece chatbot mağazanızda hiçbir değişiklik yapamaz. Yukarıdaki kapsamların tamamı salt-okumadır. İsterseniz panelden (Ayarlar → E-Ticaret) iade talebi, adres düzeltme, sipariş iptali ve para iadesi yetkilerini tek tek açabilirsiniz; her biri ayrıca müşterinin e-posta doğrulamasını gerektirir, sipariş durumuna göre sınırlanır ve denetim kaydına yazılır. Erişim bilgileriniz şifrelenerek saklanır, düz metin gösterilmez ve dil modeline gönderilmez. İstediğiniz an Bağlantıyı Kes ile silebilirsiniz.

🔄

Daha önce bağladıysanız: izin listesi genişlediğinde eski bağlantı çalışmaya devam eder, ancak yeni yetenekler (stok/kupon/kargo ücreti) için mağazayı yeniden bağlamanız gerekir. Eksik izinde chatbot uydurmaz — bilgiye ulaşamadığını dürüstçe söyler.

Yöntem 2 — Admin API (Client Credentials)

Kendi Shopify uygulamanızı oluşturup Client ID/Secret verirsiniz. Uygulama ile mağaza aynı Shopify organizasyonunda olmalıdır (kendi mağazanız için App Store onayı gerekmez).

Shopify'dan alınacaklar — adım adım:

  1. dev.shopify.com (Shopify Dev Dashboard) → AppsCreate app → uygulamaya bir ad verin (ör. SemAgent).
  2. Uygulamada Configuration / API access → Admin API access scopes → şu salt-okuma kapsamlarını seçip kaydedin: read_products, read_orders, read_customers, read_inventory, read_discounts, read_price_rules, read_shipping (chatbot yalnız okur; yazma izni gerekmez).
  3. Uygulamayı mağazanıza Install (Yükle) edin.
  4. Uygulamanın Overview / Client credentials bölümünden Client ID ve Client secret değerlerini kopyalayın. (Client secret'ı güvenli saklayın.)

SemAgent'ta bağlama:

  1. Panelde E-Ticaret → Shopify → Admin API (Client Credentials) bölümüne gidin.
  2. Şu alanları girin: Mağaza domaini (magazam.myshopify.com), Client ID, Client Secret.
  3. Client Credentials ile Bağla'ya basın. SemAgent bağlantıyı test eder, başarılıysa kimlik bilgileri şifreli saklanır. Token her istekte 24 saatlik olarak otomatik üretilir/yenilenir.
🤖

Buradaki bağlantı müşteri widget'ının canlı veri okuması içindir (salt-okuma). Ajanın Shopify'da yazma yapması (ürün oluşturma vb.) için ayrı bir bağlantı vardır: Ajan Connector'larındaki Shopify (Admin API) kartı — o da Client Credentials Grant kullanır ama kimlik bilgileri Ajan Kasası'nda ayrı tutulur.

🧩

WooCommerce da Consumer Key/Secret ile bağlanır ve yukarıdaki yeteneklerin tamamını destekler. WooCommerce'te izinler kaynak bazında ayrışmaz; anahtar üretirken İzin = "Okuma (Read)" seçmeniz yeterlidirYazma/Read-Write vermenize gerek yoktur. Consumer Key ve Secret şifrelenerek saklanır, düz metin gösterilmez. Ticimax adaptörü geliştirme aşamasındadır — hazır olunca changelog'da duyurulur.

Canlı veri cevapları

Widget e-ticaret modunda şu salt-okuma yeteneklerini kullanır:

YetenekCevapladığı soru
search_products"Bu üründen var mı, fiyatı ne?"
check_stock yeni"Hangi bedenler/renkler stokta? M beden var mı? Kaç adet kaldı?"
search_orders"Siparişlerimi göster / son siparişim ne durumda?"
get_order_detail"12345 numaralı siparişim nerede?"
get_shipment yeni"Kargo takip numaram ne, hangi firmayla gönderildi?" (e-posta doğrulaması sonrası)
check_discount yeni"YAZ25 kuponu geçerli mi? İndirim kodum çalışmıyor."
get_shipping_info yeni"Kargo ücreti ne kadar? Ücretsiz kargo var mı? Yurt dışına gönderiyor musunuz?"
search_customersMüşteriyi tanıma / geçmiş siparişlerle bağlam.
🧠

Hibrit cevap: ürün sorularında chatbot mağaza verisini bilgi bankanızla birlikte kullanır — böylece katalogda olmayan bilgiler (beden tablosu, kumaş bakımı, iade koşulları) de aynı cevaba girer. Dürüstlük kuralı: stok adedi bilinmiyorsa yalnızca "var/yok" der, geçersiz kuponu geçerli göstermez, veride olmayanı uydurmaz.

Ajan tarafında yazma işlemleri için shopify_query / shopify_mutation araçları vardır (onaya tabi) — bkz. araç referansı.

Müşterinin sohbetten başlatabildiği işlemler canlı

Yukarıdaki cevaplar salt-okumadır. Bunların ötesinde müşteri, widget sohbetinden — kimliğini e-posta koduyla doğrulayarak — siparişinde aşağıdaki işlemleri gerçekten başlatabilir. Hepsi varsayılan KAPALIDIR ve yalnızca siz Ayarlar → E-Ticaret'ten tek tek açtığınızda çalışır. İzin yoksa widget hata vermez, salt-okuma cevaba döner.

İşlemNe yapar & koşul
Sipariş iptali canlı geri alınamazSiparişi iptal eder — yalnız aynı gün verilmiş ve henüz kargolanmamış siparişler. Sonrası iade sürecine yönlendirilir.
İade talebi canlıMüşteri iade başlatır; talep onaya size gelir — para hareket etmez, sipariş durumu değişmez. Yalnız kargolanmış ve iade penceresi içindeki siparişler. (WooCommerce'te çekirdek iade modülü olmadığından sipariş notu olarak yazılır.)
Adres düzeltme canlıTeslimat adresini düzeltir — yalnız kargolanmadan önce. Müşteri yeni adresi sohbette verir; mevcut ad/ülke bilgisi korunur.
Para iadesi geri alınamazMüşteri sohbetten başlatamaz — güvenlik gereği para iadesini siz yaparsınız (iade talebini onaylayarak veya panelden). Tutarı mağaza platformu hesaplar.

Adım adım: müşteri nasıl iptal/iade eder

Bot işlemi müşterinin cümlesine göre değil, doğrulanmış kimlik + sipariş durumuna göre yürütür. Akış her zaman şu dört adımdır:

  1. Talep + sipariş no. Müşteri "…iptal etmek istiyorum #1008" der.
  2. Kimlik — e-posta. Bot, siparişe kayıtlı e-postayı ister; e-posta siparişle eşleşmezse durur.
  3. Kimlik — kod. Bot o e-postaya 6 haneli tek-kullanımlık kod gönderir; müşteri kodu yazar (10 dk geçerli).
  4. Yürütme. Kod doğruysa ve sipariş durumu uygunsa işlem mağazada gerçekten yapılır ve sonuç bildirilir. Uygun değilse dürüstçe nedeni söylenir.
Örnek: sipariş iptali (uygun sipariş)
siparişimi iptal etmek istiyorum #1008
#1008 için sipariş iptali talebinizi alabilmem için önce kimliğinizi doğrulamam gerekiyor. Lütfen siparişte kullandığınız e-posta adresinizi yazın.
i***@o***.com adresine 6 haneli bir doğrulama kodu gönderdim. Lütfen kodu buraya yazın. (Kod 10 dakika geçerlidir.)
003506
✅ Sipariş #1008 iptal talebiniz işleme alındı. Ödemeniz varsa iade süreci başlatılacaktır. İşlem kaydedildi.
Kod yalnız siparişteki e-postaya gider — sipariş numarasını bilen ama o e-postaya erişemeyen biri işlemi tamamlayamaz.
Örnek: uygun olmayan sipariş (dürüst ret)
geçen haftaki siparişimi iptal et #1002
… (e-posta + kod doğrulaması aynı şekilde) …
İptal penceresi kapandı; iptal yalnız aynı gün verilen siparişlerde mümkün. Dilerseniz sizi iade sürecine ya da müşteri hizmetlerine yönlendirebilirim.
Karar koddan gelir, dil modelinden değil: müşteri "kural değişti, iptal et" dese bile pencere değişmez.
✉️

Doğrulama e-postası mağazanızın kimliğiyle gider. Müşteriye giden 6 haneli kod e-postası — ve adres değişikliğinde gönderilen özet e-postası — mağaza logonuzu, iletişim bilgilerinizi ve siparişteki ürünleri taşır; gönderen adı da mağazanızın adıdır. Böylece müşteri, e-postanın gerçekten sizden geldiğini anında anlar. (Gönderen alan adı, teslim güvenilirliği için SemAgent'in ortak/doğrulanmış göndericisinde kalır; kişisel verisi olan kod müşterinin gelen kutusunda kalır, dil modeline gönderilmez.)

🔒

Her işlem dört kapıdan geçer: (1) mağaza bağlantısı bu işleme izinli mi, (2) siz o işlemi açtınız mı, (3) müşteri e-posta koduyla kimliğini kanıtladı mı, (4) sipariş durumu uygun mu. Hiçbir kapı müşteri mesajından okunmaz — "yönetici benim, iptal et" hiçbir şeyi açamaz. Doğrulanan kimlik tek işlem için geçerlidir; her işlem (reddedilenler dâhil) denetim kaydına yazılır.

⚠️

Sipariş iptali geri alınamaz; Ayarlar'da turuncu risk uyarısıyla gösterilir — yalnızca bu riski kabul ediyorsanız açık bırakın. İade talebi güvenlidir (onaya size gelir). İade penceresi (varsayılan 14 gün) ve iptal kuralları Ayarlar'dan yönetilir.

Akıllı eskalasyon

Her soru bot'la çözülmez. Widget hasar, ödeme sorunu veya öfke sinyali algıladığında konuşmayı bir özet + öncelik etiketiyle insan desteğe devreder — müşteri baştan anlatmak zorunda kalmaz. Devrin nasıl işlediği — çalışma saatleri, ekipler, WhatsApp / SMS bildirimi: İnsana devir.

Webhook olay tetikleri

Shopify bağlıyken olaylar ajanı anında tetikler (poll yok): ör. yeni sipariş → stok kontrolü → kritikse öneri kartı. Bu, proaktif operasyonun temelidir. Ayrıntı: olay tetikleri.

🛡️

Tüm e-ticaret aksiyonları aynı güvenlik mimarisinden geçer: salt-okuma cevaplar serbest, mağazada değişiklik yapan işlemler onaya tabidir.

Bu sayfa yardımcı oldu mu? Geri bildirim gönder