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)
- 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.comadresiniz). - OAuth ile Bağla'ya basın → Shopify'da izin ekranında Install / Onayla deyin.
- 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):
| İ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 + read_price_rules | Kupon/indirim kodu doğrulama. |
read_shipping | Kargo ücretleri ve teslimat bölgeleri. |
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. 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:
- 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_price_rules,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 E-Ticaret → Shopify → Admin API (Client Credentials) bölümüne gidin.
- Ş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.
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 yeterlidir — Yazma/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:
| 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ı?" |
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_customers | Müş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ı.
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.
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.
SemAgent