Tecof Uygulamaları ve Entegrasyonlar
Tecof uygulama entegrasyonu iki ayrı yüzeye ayrılır: satıcı panelinde çalışan JWT korumalı yönetim API'leri ve canlı mağazanın kullandığı secret-key korumalı storefront API'leri.
Mevcut kodda doğrulanan entegrasyon modeli REST tabanlıdır. OAuth 2.0 ve GraphQL, bu kod tabanında aktif public contract olarak görünmediği için bu dokümanda ana akış olarak anlatılmaz.
Entegrasyon Katmanları
Merchant Admin API
Satıcı panelindeki kaynaklar /api/merchant/* altında bulunur ve JWT role/team doğrulaması ister. Örnek kaynaklar:
| Alan | Örnek endpoint |
|---|---|
| CMS collections | GET /api/merchant/cms/collections |
| CMS items | GET /api/merchant/cms/collections/:collectionId/items |
| Webhook yönetimi | GET /api/merchant/ecommerce/webhooks |
| Ödeme yönetimi | POST /api/merchant/ecommerce/payments/checkout |
| Tema yönetimi | GET /api/merchant/themes |
Bu uçlar canlı temaya doğrudan verilmemelidir; satıcı paneli veya güvenilir backend app katmanı üzerinden çağrılmalıdır.
Storefront API
Canlı mağaza ve tema paketlerinin kullandığı public contract /api/store/* altındadır. Bu uçlar x-secret-key ile merchant bağlamını çözer.
| Alan | Örnek endpoint |
|---|---|
| Sayfa render | POST /api/store/render |
| Merchant bilgisi | GET /api/store/merchant-info |
| Ürün listesi | GET /api/store/ecommerce/products |
| Sepet doğrulama | POST /api/store/ecommerce/cart/validate |
| Checkout | POST /api/store/ecommerce/checkout |
| CMS canlı içerik | POST /api/store/cms/collections/:slug/items |
Tam liste için Public API Referansı sayfasını kullanın.
Webhook Olayları
Webhook yönetimi admin tarafında /api/merchant/ecommerce/webhooks uçlarıyla yapılır. Backend ve frontend tarafında senkron tutulan olay kataloğu şu event değerlerini içerir:
| Grup | Event |
|---|---|
| Sipariş | order.created, order.paid, order.updated, order.fulfilled, order.cancelled, order.refunded |
| Ürün | product.created, product.updated, product.deleted, inventory.low_stock |
| Müşteri | customer.created, customer.updated, customer.deleted |
| Değerlendirme | review.created, review.approved |
| Pazarlama | subscriber.created |
| CMS | cms.item.published |
| Genel | * |
cms.item.published, CMS item publish akışında fire-and-forget dispatch edilir. Düşük stok için backend eşik değeri LOW_STOCK_THRESHOLD = 5 olarak tanımlıdır.
Webhook Yönetim Endpointleri
| Metot | Endpoint | Açıklama |
|---|---|---|
GET |
/api/merchant/ecommerce/webhooks |
Webhook listesini getirir |
GET |
/api/merchant/ecommerce/webhooks/by/id/:id |
Tek webhook detayını getirir |
POST |
/api/merchant/ecommerce/webhooks |
Webhook oluşturur |
PUT |
/api/merchant/ecommerce/webhooks/:id |
Webhook günceller |
DELETE |
/api/merchant/ecommerce/webhooks/:id |
Webhook siler |
POST |
/api/merchant/ecommerce/webhooks/:id/test |
Test gönderimi yapar |
GET |
/api/merchant/ecommerce/webhooks/deliveries |
Teslimat geçmişini listeler |
POST |
/api/merchant/ecommerce/webhooks/deliveries/:id/redeliver |
Aynı payload ile tekrar gönderir |
App Marketplace Verisi
Backend'de StoreApp modeli uygulama kataloğu için name, description, developer, version, category, permissions, webhooks, settings, pricing, installUrl, webhookUrl ve sıralama alanlarını taşır.
Bu veri modeli uygulama vitrini ve entegrasyon tanımları için hazırdır; ancak canlı uygulama yükleme akışını dokümante ederken mevcut endpoint ve auth davranışı ayrıca doğrulanmalıdır.
Örnek Entegrasyon: Paraşüt Otomatik Faturalandırma
Paraşüt Muhasebe Entegrasyonu (tecof-app-parasut), Tecof e-ticaret sitelerinden gelen siparişlerin ödemesi alındığında otomatik olarak fatura taslağı oluşturan örnek bir e-ticaret uygulamasıdır.
Mimari Akış ve Webhook
Uygulama, Tecof'un order.paid (ödeme alındı) webhook olayına abone olur.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as Parasut App (parasut.tecof.com)
participant Parasut as Parasut API (api.parasut.com)
Backend->>App: POST /api/webhook/order_paid (orderId, customerEmail)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=parasut-settings
Backend-->>App: clientId, clientSecret, companyId, vb.
Note over App: 2. Sipariş detaylarını çeker
App->>Backend: GET /api/store/ecommerce/orders/:id
Backend-->>App: Sipariş kalemleri, adres, KDV oranları
Note over App: 3. Parasut token'ı alır
App->>Parasut: POST /oauth/token
Parasut-->>App: Access Token
Note over App: 4. Müşteri (contact) sorgular / oluşturur
App->>Parasut: GET/POST /v4/{company_id}/contacts
Parasut-->>App: Contact ID
Note over App: 5. Fatura Taslağı oluşturur
App->>Parasut: POST /v4/{company_id}/sales_invoices
Parasut-->>App: Fatura Oluşturuldu
App->>Backend: PUT /api/store/option (parasut-logs)Kullanılan API Endpoint'leri
Paraşüt uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=parasut-settings: Paraşüt kimlik bilgilerini (clientId, clientSecret, email, password, companyId) almak için.GET /api/store/ecommerce/orders/:id: Siparişin line items (kalemler), fatura adresi, vergi dairesi ve kargo ücreti gibi ham fatura detaylarını edinmek için.PUT /api/store/option: Fatura deneme geçmişini (parasut-logs) ve hata günlüklerini merchant options tablosunda saklamak için.
Örnek Entegrasyon: EDM Bilişim e-Fatura & e-Arşiv
EDM Bilişim Entegrasyonu (tecof-app-edm), Tecof e-ticaret sitelerinden gelen siparişlerin ödemesi alındığında otomatik olarak EDM portalı üzerinde e-Fatura veya e-Arşiv faturası oluşturan SOAP tabanlı bir entegrasyon uygulamasıdır.
Mimari Akış ve Webhook
Uygulama, Tecof'un order.paid (ödeme alındı) webhook olayına abone olur.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as EDM App (edm.tecof.com)
participant EDM as EDM SOAP API (portal.edmbilisim.com.tr)
Backend->>App: POST /api/webhook/order_paid (orderId, customerEmail)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=edm-settings
Backend-->>App: username, password, companyId, isTest
Note over App: 2. Sipariş detaylarını çeker
App->>Backend: GET /api/store/ecommerce/orders/:id
Backend-->>App: Sipariş kalemleri, adres, VKN/TCKN, KDV oranları
Note over App: 3. EDM SOAP portalına Login olur
App->>EDM: SOAP LoginRequest
EDM-->>App: SessionID
Note over App: 4. Müşterinin e-Fatura mükellefiyetini sorgular
App->>EDM: SOAP CheckUserRequest (VKN/TCKN)
EDM-->>App: Alias / e-Fatura durum yanıtı
Note over App: 5. Belge tipini seçer ve XML faturayı yükler
App->>EDM: SOAP LoadInvoiceRequest (UBL-TR XML)
EDM-->>App: e-Fatura / e-Arşiv UUID Referansı
App->>Backend: PUT /api/store/option (edm-logs)SOAP XML Entegrasyon Modeli
EDM Bilişim SOAP WCF web servislerine SOAP XML isteklerini hafif ve kararlı tutmak amacıyla doğrudan HTTP fetch POST istekleri şeklinde göndeririz. Bu yöntem TypeScript/ESM uyumunu bozmadan çalışır.
Örnek bir LoginRequest SOAP XML gövdesi:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://3gbilgi.com.tr/service">
<soapenv:Header/>
<soapenv:Body>
<ser:LoginRequest>
<ser:USER_NAME>KULLANICI_ADI</ser:USER_NAME>
<ser:PASSWORD>SIFRE</ser:PASSWORD>
</ser:LoginRequest>
</soapenv:Body>
</soapenv:Envelope>Örnek bir CheckUserRequest SOAP XML gövdesi (VKN/TCKN mükellefiyet sorgulama):
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://3gbilgi.com.tr/service">
<soapenv:Header/>
<soapenv:Body>
<ser:CheckUserRequest>
<ser:REQUEST_HEADER>
<ser:SESSION_ID>SESSION_ID_DEGERI</ser:SESSION_ID>
</ser:REQUEST_HEADER>
<ser:USER>
<ser:IDENTIFIER>VKN_TCKN_DEGERI</ser:IDENTIFIER>
</ser:USER>
</ser:CheckUserRequest>
</soapenv:Body>
</soapenv:Envelope>
---
## Örnek Entegrasyon: DHL eCommerce Kargo & Barkod
DHL eCommerce Entegrasyonu (`tecof-app-dhl`), Tecof e-ticaret sitelerinden gelen siparişler "Kargoya Hazır" (`order.ready_to_ship`) durumuna geçtiğinde otomatik olarak DHL üzerinde gönderi kaydı açıp kargo barkod etiketini (Shipping Label PDF) oluşturan bir kargo entegrasyon uygulamasıdır.
### Mimari Akış ve Webhook
Uygulama, Tecof'un `order.ready_to_ship` (kargoya hazır) webhook olayına abone olur.
```mermaid
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as DHL App (dhl.tecof.com)
participant DHL as DHL REST API (api.dhl.com)
Backend->>App: POST /api/webhook/order_ready_to_ship (orderId, customerEmail)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=dhl-settings
Backend-->>App: clientId, clientSecret, pickupAccount, vb.
Note over App: 2. Sipariş detaylarını çeker
App->>Backend: GET /api/store/ecommerce/orders/:id
Backend-->>App: Alıcı bilgileri, kargo adresi, paket ağırlığı
Note over App: 3. DHL portalından OAuth2 token alır
App->>DHL: POST /oauth/jsonwebtoken/token
DHL-->>App: Access Token
Note over App: 4. Gönderi ve Barkod oluşturur
App->>DHL: POST /shipping/v2/shipments
DHL-->>App: trackingNumber, labelUrl
Note over App: 5. Kargo paketini siparişe ekler
App->>Backend: POST /api/store/ecommerce/orders/:id/packages
Backend-->>App: Paket siparişe eklendi ve statü Shipped yapıldı
App->>Backend: PUT /api/store/option (dhl-logs)Kullanılan API Endpoint'leri
DHL uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=dhl-settings: DHL API kimlik bilgilerini (clientId, clientSecret, pickupAccount, soldToAccount) almak için.GET /api/store/ecommerce/orders/:id: Siparişin alıcı ad/soyad, kargo adresi, posta kodu, ülke kodu ve toplam paket ağırlığı gibi detayları edinmek için.POST /api/store/ecommerce/orders/:id/packages: Oluşturulan takip numarasını, kargo firmasını ("dhl") ve kargo etiket linkini (labelUrl) siparişe "paket" olarak kaydetmek ve sipariş durumunu otomatik olarak "kargoya verildi" (shipped) durumuna geçirmek için.PUT /api/store/option: Gönderi deneme geçmişini (dhl-logs) ve kargo takip numaralarını merchant options tablosunda saklamak için.
Örnek Entegrasyon: ShipEntegra Kargo & Barkod
ShipEntegra Entegrasyonu (tecof-app-shipentegra), Tecof e-ticaret sitelerinden gelen siparişler "Kargoya Hazır" (order.ready_to_ship) durumuna geçtiğinde otomatik olarak ShipEntegra üzerinde gönderi siparişi açıp kargo barkod etiketini (Shipping Label PDF) oluşturan bir kargo entegrasyon uygulamasıdır.
Mimari Akış ve Webhook
Uygulama, Tecof'un order.ready_to_ship (kargoya hazır) webhook olayına abone olur.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as ShipEntegra App (shipentegra.tecof.com)
participant ShipEntegra as ShipEntegra REST API (api.shipentegra.com)
Backend->>App: POST /api/webhook/order_ready_to_ship (orderId, customerEmail)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=shipentegra-settings
Backend-->>App: username, password, isTest
Note over App: 2. Sipariş detaylarını çeker
App->>Backend: GET /api/store/ecommerce/orders/:id
Backend-->>App: Alıcı bilgileri, kargo adresi, paket ağırlığı, GTIP kodları
Note over App: 3. ShipEntegra portalından OAuth2 token alır
App->>ShipEntegra: POST /auth/login
ShipEntegra-->>App: Bearer Token
Note over App: 4. Sipariş kaydı oluşturur
App->>ShipEntegra: POST /orders
ShipEntegra-->>App: shipentegraOrderId
Note over App: 5. Kargo etiketi (PDF) ve takip nosu üretir
App->>ShipEntegra: POST /orders/{id}/label
ShipEntegra-->>App: trackingNumber, labelUrl
Note over App: 6. Kargo paketini siparişe ekler
App->>Backend: POST /api/store/ecommerce/orders/:id/packages
Backend-->>App: Paket siparişe eklendi ve statü Shipped yapıldı
App->>Backend: PUT /api/store/option (shipentegra-logs)Kullanılan API Endpoint'leri
ShipEntegra uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=shipentegra-settings: ShipEntegra API kullanıcı adı ve şifre bilgilerini almak için.GET /api/store/ecommerce/orders/:id: Siparişin alıcı adı, soyadı, kargo adresi, posta kodu, ülke kodu, toplam paket ağırlığı ve ürün fiyatları gibi detayları edinmek için.POST /api/store/ecommerce/orders/:id/packages: Oluşturulan takip numarasını, kargo firmasını ("shipentegra") ve kargo etiket linkini (labelUrl) siparişe "paket" olarak kaydetmek ve sipariş durumunu otomatik olarak "kargoya verildi" (shipped) durumuna geçirmek için.PUT /api/store/option: Gönderi deneme geçmişini (shipentegra-logs) ve kargo takip numaralarını merchant options tablosunda saklamak için.
Örnek Entegrasyon: Hepsijet Kargo
Hepsijet Entegrasyonu (tecof-app-hepsijet), Tecof e-ticaret sitelerinden gelen siparişler "Kargoya Hazır" (order.ready_to_ship) durumuna geçtiğinde otomatik olarak Hepsijet üzerinde gönderi siparişi açan bir kargo entegrasyon uygulamasıdır.
Mimari Akış ve Webhook
Uygulama, Tecof'un order.ready_to_ship (kargoya hazır) webhook olayına abone olur.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as Hepsijet App (hepsijet.tecof.com)
participant Hepsijet as Hepsijet REST API (api.hepsijet.com)
Backend->>App: POST /api/webhook/order_ready_to_ship (orderId, customerEmail)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=hepsijet-settings
Backend-->>App: username, password, companyKey, isTest
Note over App: 2. Sipariş detaylarını çeker
App->>Backend: GET /api/store/ecommerce/orders/:id
Backend-->>App: Alıcı bilgileri, kargo adresi, paket ağırlığı
Note over App: 3. Hepsijet portalına gönderi kaydı açar
App->>Hepsijet: POST /advance/sendDeliveryAdvance/v2
Hepsijet-->>App: hepsijetBarcode (deliveryNo)
Note over App: 4. Kargo paketini siparişe ekler
App->>Backend: POST /api/store/ecommerce/orders/:id/packages
Backend-->>App: Paket siparişe eklendi ve statü Shipped yapıldı
App->>Backend: PUT /api/store/option (hepsijet-logs)Kullanılan API Endpoint'leri
Hepsijet uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=hepsijet-settings: Hepsijet API kullanıcı adı, şifre ve firma anahtarı (companyKey) bilgilerini almak için.GET /api/store/ecommerce/orders/:id: Siparişin alıcı adı, soyadı, kargo adresi, posta kodu, il/ilçe ve paket ağırlığı gibi detayları edinmek için.POST /api/store/ecommerce/orders/:id/packages: Hepsijet'ten dönen barkod / takip numarasını kargo firması ("hepsijet") ile siparişe "paket" olarak kaydetmek ve sipariş durumunu otomatik olarak "kargoya verildi" (shipped) durumuna geçirmek için.PUT /api/store/option: Gönderi deneme geçmişini (hepsijet-logs) ve kargo takip numaralarını merchant options tablosunda saklamak için.
Örnek Entegrasyon: Hepsiburada Pazaryeri
Hepsiburada Pazaryeri Entegrasyonu (tecof-app-hepsiburada), Tecof e-ticaret sitenizdeki ürünleri tek tıkla Hepsiburada kataloğuna aktarmanızı ve Hepsiburada'da oluşan siparişleri otomatik olarak Tecof siparişlerine senkronize etmenizi sağlayan bir pazaryeri uygulamasıdır.
Mimari Akış ve Webhook
Uygulama, Tecof'un product_created, product_updated ve order_sync webhook olaylarına abone olur.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as Hepsiburada App (hepsiburada.tecof.com)
participant Hepsiburada as Hepsiburada Merchant API (merchant-api.hepsiburada.com)
Backend->>App: POST /api/webhook/product_created (product)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=hepsiburada-settings
Backend-->>App: merchantId, username, password, isTest
Note over App: 2. Hepsiburada kataloğuna ürünü gönderir
App->>Hepsiburada: POST /packages/merchant/{merchantId}/products
Hepsiburada-->>App: batchRequestId (id)
App->>Backend: PUT /api/store/option (hepsiburada-logs)Kullanılan API Endpoint'leri
Hepsiburada uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=hepsiburada-settings: Hepsiburada API kullanıcı adı, şifre ve satıcı ID (merchantId) bilgilerini almak için.POST /api/store/ecommerce/orders: Hepsiburada'da oluşan vegetOrdersAPI'siyle çekilen siparişleri Tecof siparişlerine eklemek için.PUT /api/store/option: Ürün aktarım geçmişini (hepsiburada-logs) ve senkronizasyon raporlarını merchant options tablosunda saklamak için.
Örnek Entegrasyon: Jivochat Canlı Destek
Jivochat Entegrasyonu (tecof-app-jivochat), Tecof e-ticaret sitenize kolayca canlı destek aracı (widget) eklemenizi ve Jivochat platformunda gerçekleşen olayları (chat_accepted, offline_message vb.) Tecof altyapınıza senkronize etmenizi sağlayan bir eklentidir.
Mimari Akış ve Webhook
Jivochat uygulaması, kendi ayarlarına göre bir widgetId alır ve Jivochat üzerinden gelen webhookları karşılamak için API oluşturur.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as Jivochat App (jivochat.tecof.com)
participant Jivochat as Jivochat Webhook
Jivochat->>App: POST /api/webhook/jivochat (payload)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=jivochat-settings
Backend-->>App: merchantId, enabled, widgetId
Note over App: 2. Gelen event loglara yazılır
App->>Backend: PUT /api/store/option (jivochat-logs)Kullanılan API Endpoint'leri
Jivochat uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=jivochat-settings: Jivochat uygulamasının aktif olup olmadığı ve widget ID bilgisini almak için.PUT /api/store/option: Webhook olaylarını (jivochat-logs) saklamak ve ayarları güncellemek için.
Örnek Entegrasyon: Mailchimp E-posta Pazarlama
Mailchimp Entegrasyonu (tecof-app-mailchimp), Tecof'a kaydolan müşterileri otomatik olarak Mailchimp "Audience" (Kitle) listenize eklemenizi sağlayan bir entegrasyondur.
Mimari Akış ve Webhook
Uygulama, Tecof'un customer_created webhook olayına abone olur ve Mailchimp API'sine istek atar.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as Mailchimp App (mailchimp.tecof.com)
participant Mailchimp as Mailchimp API
Backend->>App: POST /api/webhook/customer_created (customer)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=mailchimp-settings
Backend-->>App: apiKey, serverPrefix, listId
Note over App: 2. Mailchimp'e Abone Ekler
App->>Mailchimp: POST /3.0/lists/{listId}/members (email, FNAME, LNAME)
Mailchimp-->>App: Başarılı / Hata
App->>Backend: PUT /api/store/option (mailchimp-logs)Kullanılan API Endpoint'leri
Mailchimp uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=mailchimp-settings: Mailchimp API Key, Prefix ve List ID bilgilerini almak için.PUT /api/store/option: Abone aktarım geçmişini (mailchimp-logs) saklamak için.
Örnek Entegrasyon: Twilio SMS Bildirimleri
Twilio Entegrasyonu (tecof-app-twilio), Tecof üzerinde gerçekleşen e-ticaret süreçlerinde (sipariş oluşturulması, kargo vb.) müşterilere otomatik SMS bildirimleri göndermenizi sağlayan bir uygulamadır.
Mimari Akış ve Webhook
Uygulama, Tecof'un order_created ve order_shipped webhook olaylarına abone olur ve Twilio API'si üzerinden SMS gönderir.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as Twilio App (twilio.tecof.com)
participant Twilio as Twilio API
Backend->>App: POST /api/webhook/order_created (order)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=twilio-settings
Backend-->>App: accountSid, authToken, fromNumber, notifyOrderCreated
Note over App: 2. SMS Gönderir
App->>Twilio: POST /Accounts/{accountSid}/Messages.json
Twilio-->>App: Başarılı / Hata
App->>Backend: PUT /api/store/option (twilio-logs)Kullanılan API Endpoint'leri
Twilio uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=twilio-settings: Twilio API kimlik bilgilerini almak için.PUT /api/store/option: SMS gönderim geçmişini (twilio-logs) saklamak için.
Örnek Entegrasyon: QNB e-Finans (e-Fatura)
QNB e-Finans Entegrasyonu (tecof-app-qnb), Tecof üzerinde alınan siparişleri otomatik olarak QNB sistemine (SOAP API) ileterek e-Fatura / e-Arşiv taslağı (Draft) oluşturan bir muhasebe entegrasyonudur.
Mimari Akış ve Webhook
Uygulama, Tecof'un order_created veya order_shipped webhook olaylarına abone olur, sipariş bilgisini alır, UBL (Universal Business Language) formatında bir XML paketi oluşturur ve QNB Connector Service SOAP uç noktasına iletir.
sequenceDiagram
participant Backend as Tecof Backend (api.tecof.com)
participant App as QNB App (qnb.tecof.com)
participant QNB as QNB SOAP API
Backend->>App: POST /api/webhook/order_created (order)
Note over App: 1. Option API Proxy ile settings çeker
App->>Backend: GET /api/store/option?name=qnb-settings
Backend-->>App: username, password, autoCreateInvoice
Note over App: 2. UBL XML Oluşturur ve SOAP İsteği Atar
App->>QNB: POST /connectorService
QNB-->>App: Başarılı / Hata (Fatura ID)
App->>Backend: PUT /api/store/option (qnb-logs)Kullanılan API Endpoint'leri
QNB uygulaması, Tecof ile iletişim kurarken aşağıdaki endpoint'leri kullanır:
GET /api/store/option?name=qnb-settings: QNB portal kimlik bilgilerini almak için.PUT /api/store/option: Fatura oluşturma loglarını (qnb-logs) saklamak için.