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
Bağlanmanın iki yolu vardır: SemAgent: AI Chat & Support uygulamasını Shopify App Store'dan kurmak (önerilen) veya Shopify uygulamasını kullanmayan mağazalar için kendi özel uygulamanızla Admin API (Client Credentials). 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 — Shopify App Store'dan kurun (önerilen)
- Shopify App Store'da SemAgent: AI Chat & Support uygulamasını mağazanıza kurun. Mağaza adresi yazmanız gerekmez.
- Shopify'ın onay ekranında izinleri onaylayın. Ardından
app.semagent.ai/shopify/connectsayfasına gelirsiniz. - SemAgent hesabınıza giriş yapın ya da hesap açın. Shopify'dan gelen kayıtta kart istenmez; paketinizi Shopify'da seçersiniz (bkz. Shopify üzerinden faturalanan mağazalar).
- Panelde çıkan Bu hesaba bağla kartıyla mağazayı hesabınıza bağlayın.
- Mağazanızın etkin bir Shopify paketi yoksa Shopify'ın plan sayfası hemen açılır. Paketi onaylayınca Abonelik & Fatura ekranına dönersiniz (bkz. Shopify üzerinden faturalanan mağazalar).
- Sohbet balonunu temanızda açın: aşağıda.
Panelde mağaza adresi formu yok. magazam.myshopify.com yazarak bağlantı başlatan eski Mağaza adresiyle bağla formu kaldırıldı; Shopify uygulaması her zaman Shopify'dan kurulur.
Onay ekranında vereceğiniz izinler:
| İzin | Ne işe yarar |
|---|---|
read_products | Ürün adı, fiyatı, açıklaması. |
read_orders | Sipariş durumu ve kargo takibi (takip no + firma). |
read_customers | Sipariş sahibini doğrulama (e-posta eşleştirme). |
read_inventory | Beden/renk bazlı stok mevcudiyeti. |
read_discounts | Kupon/indirim kodu doğrulama. |
read_shipping | Kargo ücretleri ve teslimat bölgeleri. |
write_orders | Yalnız panelde açtığınız işlemler için: sipariş iptali, adres düzeltme ve para iadesi. |
write_returns | Yalnız panelde açtığınız iade talebi işlemi için. |
Varsayılan olarak yalnızca okur — siz açıkça izin vermediğiniz sürece chatbot mağazanızda hiçbir değişiklik yapamaz. Yazma izinleri (write_orders, write_returns) yalnız panelde açtığınız işlemlerde kullanılı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. Bağlantıyı kesmek için uygulamayı Shopify yönetiminizden kaldırırsınız (Ayarlar → Uygulamalar); erişim anahtarları silinir ve Shopify aboneliği de biter. Mağazayı kendi özel uygulamanızla bağladıysanız paneldeki Bağlantıyı kaldır düğmesini kullanırsınız.
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 — Gelişmiş: kendi özel uygulamanızla (Admin API, Client Credentials)
SemAgent'ın Shopify uygulamasını kullanmayan mağazalar içindir: kendi Shopify uygulamanızı oluşturup Client ID/Secret verirsiniz. Panelde bu yol, Shopify penceresinin katlanmış Gelişmiş bölümündedir. Bu bölüm yalnız SemAgent'ın App Store uygulamasını kullanmayan hesaplarda görünür; App Store'dan kurulan ya da Shopify üzerinden faturalanan hesaplarda gösterilmez. Görmüyorsanız [email protected] adresine yazın. 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:
- dev.shopify.com (Shopify Dev Dashboard) → Apps → Create app → uygulamaya bir ad verin (ör. SemAgent).
- 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_shipping(chatbot yalnız okur; yazma izni gerekmez). - Uygulamayı mağazanıza Install (Yükle) edin.
- 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:
- Panelde Ayarlar → E-Ticaret → Shopify penceresinde katlanmış Gelişmiş: kendi özel uygulamanızla bağlayın bölümünü açın; Admin API (Client Credentials) alanları buradadır.
- Şu alanları girin: Mağaza domaini (
magazam.myshopify.com), Client ID, Client Secret. - 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.
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 yeterlidir — Yazma/Read-Write vermenize gerek yoktur. Consumer Key ve Secret şifrelenerek saklanır, düz metin gösterilmez. Ticimax planlanıyor — hazır olunca changelog'da duyurulur.
Sohbet balonunu mağazaya ekleme
Mağazanız Shopify uygulamasıyla bağlıysa sohbet balonu temanıza tema uygulama yerleştirmesiyle (app embed) eklenir; tema koduna bir şey yapıştırmazsınız:
- Shopify yönetiminde Online Mağaza → Temalar → Özelleştir'e gidin (İngilizce yönetimde Online Store → Themes → Customize).
- Uygulama yerleştirmeleri (App embeds) bölümünde SemAgent sohbet'i (İngilizce yönetimde SemAgent Chat) açın ve Kaydet'e basın.
Kısayol: panelin E-Ticaret Widget sayfasındaki Sohbet balonunu temada aç bağlantısı tema düzenleyiciyi yerleştirme açık hâlde getirir; kaydetmeniz yeterlidir. Temayı kaydettikten sonra mağazanızı bir kez açın: balon orada yüklenince kart yeşile döner ve Sohbet balonu mağazanızda açık yazar. Bu mağazalarda yerleştirme kodu yalnız katlanmış Shopify dışındaki bir sitede kullanmak için kodu göster bölümünde durur.
Giriş yapmış müşterileri tanıma da bu mağazalarda kendiliğinden çalışır; Liquid kod parçası eklemezsiniz (bkz. Giriş yapmış müşteriyi tanımak).
Mağazanızı kendi özel uygulamanızla bağladıysanız balon için panelde gösterilen yerleştirme kodunu kullanırsınız: Widget kurulum.
Canlı veri cevapları
Widget e-ticaret modunda şu salt-okuma yeteneklerini kullanır:
| Yetenek | Cevapladığı soru |
|---|---|
search_products | "Bu üründen var mı, fiyatı ne?" |
check_stock yeni | "Hangi bedenler/renkler stokta? M beden var mı? Kaç adet kaldı?" |
get_order_detail | "12345 numaralı siparişim nerede?" (sipariş numarası + siparişteki e-posta + o e-postaya gelen kod) |
get_shipment yeni | "Kargo takip numaram ne, hangi firmayla gönderildi?" (siparişteki e-postaya gelen kodla doğrulama 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?" |
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.
Sipariş ayrıntısı kodla: durum, ürünler ve kargo takibi yalnız siparişteki e-postaya gelen 6 haneli kod girildikten sonra gösterilir; aynı sohbette aynı sipariş için kod 15 dakika geçerlidir. Mağazanızda giriş yapmış müşteriden kod istenmez. İptal, iade, adres ve para iadesi her seferinde ayrı kod ister. Görüntüleme kodunu Ayarlar → E-Ticaret'te kapatabilirsiniz (varsayılan açık).
Son 60 gün: mağaza read_all_orders izni vermediyse Shopify yalnız son 60 günün siparişlerini gösterir; Shopify App Store'dan kurulan uygulama bu izni istemez. Daha eski bir sipariş sorulursa asistan bunu söyler ve müşteriyi ekibinize aktarır.
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.
| İşlem | Ne yapar & koşul |
|---|---|
| Sipariş iptali canlı geri alınamaz | Siparişi iptal eder — yalnız aynı gün verilmiş ve henüz kargolanmamış siparişler. Sonrası iade sürecine yönlendirilir. İptal para iadesi yapmaz: ödeme iadesi gerekiyorsa mağaza ekibi ayrıca yapar. |
| İ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ınamaz | Müşteriye ödediği yönteme para iadesi yapar. Ayrı bir izindir ve yalnız hesap sahibi açabilir; açıksa müşteri sohbetten ister, tutarı yeni bir e-posta koduyla onaylar ve son kez “evet” yazar. Tutarı mağaza platformu hesaplar. İptal edilmiş ya da iadesi yapılmış siparişte çalışmaz. |
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:
- Talep + sipariş no. Müşteri "…iptal etmek istiyorum #1008" der.
- Kimlik — e-posta. Bot, siparişe kayıtlı e-postayı ister; e-posta siparişle eşleşmezse durur.
- Kimlik — kod. Bot o e-postaya 6 haneli tek-kullanımlık kod gönderir; müşteri kodu yazar (10 dk geçerli).
- 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.
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.
SemAgent