Canias ERP Entegrasyonu: Web Servis ile E-Ticaret, Bayi Portalı ve Mobil Bağlantı
Canias ERP Entegrasyonu Hangi Yoldan Yapılır?
Canias ERP entegrasyonu için belgelenmiş dış arayüz TROIA Web Service'tir. TROIA kitabına göre bir web servisi, web servisi olarak kaydedilen bir TROIA sınıf metodudur; servis tanımları WSRT01, kullanıcı yetkileri WSRT02 ekranıyla yönetilir. Servis WSDL ile tanımlanır, parametre ve yanıtlar XML olarak taşınır; bu yüzden SOAP tarzı bir XML web servisi olarak düşünülebilir.
Kitap iki sürümden söz eder. Sürüm 1.0 yalnız geriye dönük uyumluluk için tutulur; sürüm 2.0 sıkıştırma ve şifreleme gibi özellikler ekler. İkisi de 5.01.01 sonrası build'lerde desteklenir ve yeni projeler için 2.0 önerilir. Servis bir web sunucusunda barınır; kitaba göre bu tipik olarak Tomcat'tir ve oraya konan Canias bileşeni uygulama sunucusuyla aynı sürümde olmalıdır. Servisin tam adresi kurulumdan kuruluma değişir ve kurulumda teyit edilir.
Üretici de kendi geliştirme sayfasında Canias'ın dış sistemlere web servisleri üzerinden erişim sağladığını ve kendisinin de dışarıdaki web servislerine bağlanabildiğini, platformun web servisleri, HTTP, FTP, TCP ve OPC üzerinden entegrasyonu desteklediğini yazar.
Peki REST?
Üreticinin yayımladığı, dış sistemlerin Canias verisini okuyup yazabileceği genel amaçlı bir REST API belgesi bulamadık. Bulduğumuz REST kullanımı iki yerdedir: Canias Mobile Toolkit uygulamasının sunucuyla konuştuğu sabit arayüz ve TROIA'nın dışarıdaki bir adrese HTTP isteği göndermesi. Kitabın Mobile Toolkit bölümü, bu uygulamanın kullandığı REST servisinin web istemciyle birlikte kurulduğunu da söyler, ama servisin genel kullanımını anlatmaz; ekteki teknoloji listesinde de REST sayılır. Kurulumunuzda hazır bir REST ucu bulunup bulunmadığı ve neye izin verdiği keşifte test edilir.
Canias'tan dışarıya çağrı
Entegrasyon yalnız dışarıdan içeriye akmaz. Kitaba göre TROIA, SENDHTTPPOST komutuyla dışarıdaki bir adrese HTTP isteği gönderebilir, CALLWEBSERVICE ile WSDL tanımlı bir servisi çağırabilir ve gelen XML'i ayrıştırabilir. Yeni build'lerde Kafka ve RabbitMQ gibi mesaj sistemlerine bağlanan "integration endpoint" tanımları da anlatılır; desteklenen liste build'e göre değişir. Böylece Canias'ta bir kayıt onaylandığında dış sisteme haber vermek mümkün olur.
Mimari: Dış Uygulamadan Canias İş Kurallarına
Dayanıklı bir Canias entegrasyonu dört halkadan oluşur: dış uygulama, ara katman, Canias tarafındaki dar TROIA servisi ve Canias'ın iş kuralları. Her halkanın tek bir görevi vardır; biri değiştiğinde diğerleri etkilenmez.
- Dış uygulama: E-ticaret sitesi, bayi portalı, saha satış uygulaması, kargo ya da pazaryeri. Kendi dilini konuşur; çoğu zaman JSON ve REST.
- Ara katman: Sizin sunucunuzda ya da seçtiğiniz ortamda çalışan küçük bir servis. Dış uygulamanın isteğini alır, doğrular, kuyruğa koyar, Canias servisinin beklediği XML'e çevirir ve sonucu kaydeder.
- Canias servisi: TROIA ile yazılan ve web servisi olarak kaydedilen sınıf metodu. Görevi dar tutulur: "siparişi al ve kaydet", "şu ürünlerin stokunu döndür".
- Canias iş kuralları: Kaydı asıl oluşturan standart Canias mantığı. Fiyat, kredi limiti ve stok rezervasyonu gibi kontroller burada işler.
Dış uygulamayı Canias servisine doğrudan bağlamak teknik olarak mümkündür, ama önermiyoruz. Ara katman olmadığında Canias'a ulaşılamayan anda gelen sipariş kaybolur, kimlik bilgileri dış uygulamada tutulur ve her dış sistem değişikliği Canias tarafında kod değişikliği ister.
Oturum ve çağrı akışı
Kitaba göre servis kullanımı bir oturumla başlar. login() çağrısı istemci kodu, dil, veritabanı sunucusu ve adı, uygulama sunucusu ve kullanıcı adını alır; oturum kimliği ve güvenlik anahtarı döndürür. Kitap parolanın MD5 özeti olarak gönderildiğini yazar; kurulumunuzun hangi biçimi kabul ettiği ayrıca teyit edilir. Ardından callService() ile servis adı ve XML parametreleri gönderilir, iş bitince logout() ile oturum kapatılır.
Kitapta anlatılan birkaç ayrıntı tasarımı doğrudan etkiler:
Permanentseçeneği açık gönderilirse uygulama sunucusu işlemi kapatmaz ve sonraki çağrılar aynı kapsamda çalışır. Çok adımlı bir kayıtta işe yarar, ama açık kalan işlemlerin yönetimi dikkat ister.- Sunucuya ulaşılamazsa ya da servis adı yoksa dönen durum değeri 1'dir ve yanıt boştur. Ara katman bunu "kayıt yapılamadı, yeniden denenecek" diye yorumlar.
- Sıkıştırma açıkken 4000 karakteri aşan yanıtlar sıkıştırılır.
Çağrının teknik olarak başarılı dönmesi, iş kuralının da geçtiği anlamına gelmeyebilir. Bu yüzden Canias tarafındaki servisi, iş sonucunu (oluşan kayıt numarası ya da hata mesajı) yanıtın içinde açıkça döndürecek biçimde yazıyoruz.
Hangi Veri Hangi Yönde Akar?
Canias entegrasyonunda her veri türünün bir sahibi ve bir yönü vardır; bunu baştan yazmak, iki sistemin aynı kaydı farklı biçimde değiştirmesini önler. Tipik bir e-ticaret ve bayi portalı bağlantısında akış şöyle kurulur:
| Veri | Yön | Sahibi | Tipik sıklık |
|---|---|---|---|
| Sipariş | Dış sistem → Canias | Dışarıda doğar, Canias'ta yaşar | Olay anında |
| Stok miktarı | Canias → dış sistem | Canias | Kısa aralıklarla |
| Fiyat ve iskonto | Canias → dış sistem | Canias | Değiştikçe ya da günlük |
| Cari kart | İki yönlü, kurala bağlı | Kurala göre | Yeni kayıtta |
| İrsaliye ve sevk bilgisi | Canias → dış sistem | Canias | Sevk anında |
| Ürün kartı | Canias → dış sistem | Canias | Değiştikçe |
Cari kart en çok tartışılan satırdır. E-ticaret sitesinde yeni üye olan bireysel müşteri için Canias'ta otomatik cari açılması uygun olabilir; bayi portalında ise cari Canias'ta açılır ve portal yalnız onu kullanır. Hangisinin geçerli olacağına satış ekibiniz ve mali müşavirinizle birlikte karar verilir.
İrsaliye satırı için bir not: e-İrsaliye ve e-Fatura belgelerinin düzenlenmesi ve gönderimi, Canias tarafındaki e-dönüşüm kurgunuzla yapılır. Dış sisteme giden, sevkin yapıldığı bilgisi ve gerekiyorsa belge numarasıdır.
Gerçek Zamanlı mı Periyodik mi?
Aktarımın anlık mı belirli aralıklarla mı yapılacağı, verinin ne kadar hızlı eskidiğine ve gecikmenin bedeline göre seçilir. Her şeyi anlık yapmak Canias'a gereksiz yük bindirir; her şeyi gece toplu yapmak ise tükenmiş ürünün sitede satılmasına yol açar.
| Ölçüt | Anlık aktarım uygundur | Periyodik aktarım uygundur |
|---|---|---|
| Gecikmenin bedeli | Sipariş kaybı, yanlış teslim sözü | Birkaç dakikalık fark sorun değil |
| Hacim | Tek tek gelen kayıtlar | Binlerce satırlık listeler |
| Yön | Dış sistemden Canias'a yazma | Canias'tan dışarıya okuma |
| Canias yükü | Kayıt başına kısa çağrı | Yoğun saat dışında toplu sorgu |
Örnek senaryo: Diyelim ki sitenizde günde birkaç yüz sipariş ve birkaç bin ürün var. Siparişler oluştuğu anda kuyruğa alınır ve sırayla Canias'a yazılır. Stok, yalnız son aktarımdan bu yana değişen ürünler için kısa aralıklarla güncellenir. Fiyat listesi değiştiğinde ya da günde bir kez tamamı aktarılır. Kampanya dönemlerinde stok aralığı kısaltılabilir.
Canias tarafındaki bir olayın dışarıya anında bildirilmesi gerekiyorsa, TROIA'nın dışarıya HTTP çağrısı ya da mesaj sistemi bağlantısı kullanılır. Bu durumda ara katman, Canias'tan gelen bildirimi alan bir uç da sunar.
Hata, Tekrar Deneme ve Kuyruk
Bir entegrasyonun kalitesi her şey yolundayken değil, bir kayıt reddedildiğinde belli olur. İyi kurulmuş bir akışta hiçbir sipariş sessizce kaybolmaz, hiçbiri iki kez yazılmaz ve bekleyen her kaydın nedeni görünür.
Aynı sipariş iki kez yazılmamalı
Ağ bir anlığına kesildiğinde ara katman, isteğin Canias'a ulaşıp ulaşmadığını bilemeyebilir; yeniden denediğinde aynı sipariş iki kez açılabilir. Bunu önlemek için her sipariş dış sistemdeki benzersiz numarasıyla gönderilir ve Canias tarafındaki servis bu numarayla daha önce kayıt açılıp açılmadığını kontrol eder. Aynı fikir HTTP dünyasında da ele alınıyor: IETF'in HTTP API çalışma grubunda, yinelenen istekleri tanımak için Idempotency-Key başlığını tanımlayan bir taslak üzerinde çalışılıyor.
Kuyruk ve yeniden deneme
- Gelen her kayıt önce ara katmanın kuyruğuna yazılır, sonra Canias'a gönderilir.
- Canias'a ulaşılamıyorsa kayıt bekler ve artan aralıklarla yeniden denenir.
- İş kuralı nedeniyle reddedilen kayıt (örneğin kredi limiti aşımı) yeniden denenmez; nedeniyle birlikte inceleme listesine düşer.
- Bekleyen ve reddedilen kayıtlar bir ekranda görünür, sorumlu kişiye bildirim gider.
Kayıt tutmak
Her çağrının zamanı, gönderilen ve dönen verinin özeti, sonucu ve süresi kaydedilir. Sorun çıktığında "sipariş Canias'a gitti mi?" sorusunun cevabı tahminle değil bu kayıtla verilir. Kişisel veri içeren alanlar kayıtlarda maskelenir.
Güvenlik Kontrol Listesi
Canias'a dışarıdan açılan her servis, ERP'nize açılan bir kapıdır; bu yüzden güvenlik kurgusu servis yazılmadan önce belirlenir. TROIA kitabına göre servis iletişiminde şifreleme varsayılan olarak kapalıdır ve açıldığında 128 bit AES kullanılır. Taşıma güvenliği ise kurulumda TLS ile ayrıca sağlanmalıdır.
| Kontrol | Ne yapılır |
|---|---|
| Taşıma güvenliği | Servise yalnız TLS üzerinden ya da VPN içinden erişilir |
| İnternete açıklık | Canias servisi internete açılmaz; yalnız ara katman erişir |
| Teknik kullanıcı | Kişiye bağlı olmayan, yalnız entegrasyon için açılmış hesap |
| Dar yetki | Kullanıcı yalnız gereken servislere yetkilendirilir |
| Kimlik bilgileri | Ara katmanın güvenli ayarlarında tutulur |
| Kayıt düzeyi yetki | Bayi yalnız kendi cari ve siparişini görür |
| İstek sınırı | Ara katmanda istek sayısı ve boyut sınırı |
| Kişisel veri | KVKK kapsamında amaç, erişim ve saklama süresi yazılır |
Bayi portalında en sık gözden kaçan madde kayıt düzeyi yetkidir. OWASP'ın 2023 API güvenlik listesinin ilk sırasındaki risk de budur: nesne düzeyinde yetkilendirme hatası, yani bir kullanıcının başka birinin kaydına yalnız numarayı değiştirerek ulaşabilmesi. Portal her istekte "bu kaydı isteyen bayi, kaydın sahibi mi?" sorusunu sorar; giriş yapmış olmak tek başına yetmez.
Parolanın özet olarak gönderildiği kurguda bile, ağda yakalanan özet parola yerine kullanılabilir. Bu, taşıma katmanının neden şifreli olması gerektiğinin ayrı bir gerekçesidir.
Sıkça Sorulan Sorular
Canias'ın REST API'si var mı?
Üreticinin yayımladığı, dış sistemlerin veri okuyup yazabileceği genel amaçlı bir REST API belgesi bulamadık. Belgelenmiş yol TROIA Web Service'tir: WSDL ile tanımlanan, XML parametreli bir web servisi. Dış sistem REST bekliyorsa aradaki katman, REST isteğini Canias servisinin anladığı biçime çevirir.
E-ticaret sitemizdeki sipariş Canias'a otomatik düşer mi?
Düşebilir. Sipariş ara katmanın kuyruğuna alınır, Canias tarafındaki servis aracılığıyla Canias'ın iş kurallarından geçerek kaydedilir ve oluşan sipariş numarası siteye geri bildirilir. Hangi alanların eşleşeceği ve cari kartın nasıl açılacağı keşifte belirlenir.
Canias veritabanına doğrudan yazmak daha hızlı olmaz mı?
İlk bakışta kolay görünebilir, ama bu yolu önermiyoruz. Doğrudan yazılan kayıt fiyat, limit ve stok kontrollerinden geçmez; bağlı kayıtlar eksik kalabilir. Okuma ve raporlama salt okunur yapılabilir, yazma ise resmî servis ya da TROIA iş kuralları üzerinden yapılır.
Bayi portalı için her bayiye Canias lisansı gerekir mi?
Portal kullanıcıları Canias'a kendi hesaplarıyla girmez; portal, Canias'a teknik bir kullanıcı üzerinden bağlanır. Bu kurgunun lisans açısından nasıl değerlendirildiği IAS ile aranızdaki sözleşmeye bağlıdır ve işe başlamadan önce IAS ile netleştirilmelidir.
Canias Mobile Toolkit saha satışı için yeterli mi?
TROIA kitabı ve bir Canias kullanıcı forumundaki tanıtıma göre Mobile Toolkit; bildirim, gösterge listesi, iş süreci onayları ve posta gibi kişisel işlevler sunan bir uygulamadır ve müşteriye özel uyarlamaları kapsamaz. Müşteride fiyat, stok ve sipariş girişi gibi işler için ayrı bir saha uygulaması ve servis bağlantısı gerekebilir.
Sonraki Adım: Veri Akış Tablonuzu Çıkarın
Yukarıdaki veri ve yön tablosunu kendi sistemlerinizle doldurun: hangi dış uygulama, hangi veri, hangi yön, ne sıklıkta. Bu tablo, Canias entegrasyonu kapsamının iskeletidir.
Mersin merkezli yazılım ekibi olarak ERP entegrasyonu projelerinde ara katmanı kuruyor, canias ERP entegrasyonu için gereken servisleri Canias tarafında TROIA ile yazıyoruz. IAS'ın bayisi ya da iş ortağı değiliz; lisans ve bakım konuları IAS ile sizin aranızdadır. İlk keşif görüşmesi ücretsizdir ve online yapılır. Kapsam yazılı netleşir, sabit fiyatla çalışılır ve teslim sonrası 15 gün ücretsiz hata düzeltme sözleşmede yer alır. Sistemlerinizi konuşmak için iletişime geçin; isterseniz WhatsApp'tan da yazabilirsiniz.
Doğuhan Bulut
Kurucu & CTO
Muhasebe/ERP entegrasyonları, otomasyon ve web mimarisi. 10+ yıl yazılım geliştirme deneyimi.
Canias’a modül ya da dış uygulama mı?
Mevcut canias kurulumunuza TROIA ile ekran ve rapor ya da web servis üzerinden çalışan ayrı bir uygulama: hangisinin işinize uyduğunu 30 dk ücretsiz online keşifte birlikte çıkaralım.
Canias entegrasyonu sayfasıAylık dijital özet bültenimiz
Ayda 1 e-posta — yeni yazılar, KOBİ + KVKK güncellemeleri, entegrasyon ve otomasyon notları. Spam yok, istediğiniz an çıkış.
İlgili Yazılar
Banka Ekstresi Muhasebeye Aktarma: Dosya Yolu ve Eşleştirme Kuralları
Banka hareketlerini muhasebe programına aktarmanın dört yolu, kural tablosuyla cari eşleştirme, eşleşmeyenlerin onayı ve banka portalında neden robot önermediğimiz.
Devamını okuLuca Excel Fiş Aktarımı: Şablon Hazırlığı, Sık Hatalar ve Otomasyon
Luca'ya Excel'den fiş aktarmadan önce şablon nasıl hazırlanır, hangi hatalar en sık çıkar, neye bakılır? Kaynak dosyayı Luca şablonuna çeviren ara katmanın sınırlarıyla.
Devamını okuParaşüt Cari Ekstre Gönderme: Otomatik Ekstre İçin API'de Ne Var?
Paraşüt'ün Ekstre Gönder düğmesi neyi çözer, neyi çözmez? API'de hazır ekstre ucu olmadan bakiye kontrollü, planlı ekstre gönderimi ve WhatsApp kuralları.
Devamını oku