=== Yurtici Kargo Entegrasyonu (WP Entegrasyon) ===
Contributors: wpentegrasyon
Tags: woocommerce, shipping, sms, turkey, kargo
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

WooCommerce siparişleri için Yurtiçi Kargo SOAP entegrasyonu ve opsiyonel müşteri SMS bildirim altyapısı. WP Entegrasyon SaaS API'sine bağlanır.

== Description ==

Yurtici Kargo Entegrasyonu (WP Entegrasyon) eklentisi, WooCommerce mağazanızı **WP Entegrasyon SaaS** platformuna bağlar. SOAP karmaşıklığıyla uğraşmadan kargo gönderisi oluşturabilir, takip numarası alabilir ve isteğe bağlı olarak müşterilerinize otomatik SMS bildirimi gönderebilirsiniz.

= Özellikler =

* WooCommerce sipariş "tamamlandı" durumunda otomatik kargo oluşturma
* Sipariş listesinde takip numarası kolonu
* Sipariş detayında kargo durumu sorgulama
* (Opsiyonel) müşteriye otomatik SMS bildirimi (idempotency korumalı — aynı SMS iki kez gönderilmez)
* Düşük SMS bakiyesi uyarısı (admin notice)
* Tüm istekler metadata olarak loglanır (mesaj içeriği veya API anahtarı asla loglanmaz)
* HPOS (High-Performance Order Storage) uyumlu
* Ürün bazlı kargo etiket adı override alanı (gelecekteki etiket çıktısı için hazır)
* Çoklu mağaza için tek harf prefix (ör. A, B, C) seçeneği

= Gerekenler =

* WooCommerce 7.0 veya üzeri
* PHP 7.4 veya üzeri
* WordPress 6.0 veya üzeri
* WP Entegrasyon SaaS API anahtarı (https://wpentegrasyon.com.tr adresinden ücretsiz hesap)
* Yurtiçi Kargo entegrasyon hesabı (wsUserName, wsPassword, müşteri kodu)

= Bağımsız ürün bildirimi =

Bu eklenti **bağımsız** bir entegrasyon ürünüdür. WP Entegrasyon, Yurtiçi Kargo veya WooCommerce ile **resmi bir bağlantısı, ortaklığı veya yetkili dağıtıcılığı yoktur**. "Yurtiçi Kargo" ifadesi yalnızca eklentinin hangi nakliye şirketinin servisleriyle çalıştığını açıklamak için kullanılır. Tüm ticari markalar ilgili sahiplerine aittir.

== Installation ==

1. Eklentiyi WordPress yöneticisinden yükleyin veya `/wp-content/plugins/yurtici-kargo-entegrasyonu/` klasörüne yükleyin.
2. WordPress yönetiminden eklentiyi etkinleştirin.
3. **WooCommerce → Yurtiçi Kargo** sayfasına gidin.
4. SaaS API anahtarınızı, Yurtiçi Kargo kimlik bilgilerinizi ve isteğe bağlı olarak çoklu site için bir prefix seçin.
5. "API sağlığı", "API anahtarı", "Yurtiçi Kargo kimlik bilgisi" ve "SMS bakiye sorgu" düğmeleriyle yapılandırmayı doğrulayın.
6. SMS bildirimini ve şablonunu (isteğe bağlı) ihtiyacınıza göre özelleştirin.

== External services ==

Bu eklenti, çalışabilmek için aşağıdaki dış hizmetlere HTTPS üzerinden veri gönderir. Bu, WordPress.org plugin guideline'ları gereği zorunlu bir bilgilendirmedir.

= 1. WP Entegrasyon SaaS API (https://api.wpentegrasyon.com.tr) =

* **Hizmet:** Tüm Yurtiçi Kargo SOAP relay çağrıları, SMS gönderimi ve bakiye sorguları bu sunucu üzerinden ilerler.
* **Gönderilen veriler:**
    * Yapılandırma sırasında: Yurtiçi Kargo kullanıcı adı, parolası ve müşteri kodu (her relay isteğinde başlıkta iletilir, eklenti yalnızca yerel olarak `wp_options`'da saklar — bkz. "Privacy" bölümü).
    * Sipariş "tamamlandı" durumunda: alıcı adı, kargo gönderi adresi, fatura/sipariş numarası, telefon (SMS gönderilecekse), şehir/ilçe ve sipariş kalem sayısı.
    * Bağlantı testleri sırasında: yalnızca yapılandırılmış API anahtarı ve Yurtiçi kimlik bilgileri.
    * Kargo durumu sorgu sırasında: yalnızca takip numarası.
* **Ne zaman gönderilir:** Yalnızca eklenti etkinken ve aşağıdaki olaylar tetiklendiğinde — sipariş tamamlandı, kullanıcı manuel test/sorgu butonuna bastı, SMS gönderim olayı oluştu, günlük cron bakiye sorgusu çalıştı.
* **Hizmet sağlayıcı koşulları:**
    * Gizlilik Politikası: https://wpentegrasyon.com.tr/privacy
    * Kullanım Koşulları: https://wpentegrasyon.com.tr/terms

= 2. Yurtici Kargo SOAP servisi (https://ws.yurticikargo.com) =

* WP Entegrasyon SaaS, Yurtiçi Kargo'nun resmi SOAP servisini sizin müşteri kimlik bilgilerinizle dolaylı olarak çağırır. Eklenti **doğrudan** Yurtiçi Kargo'ya istek atmaz; tüm trafik SaaS relay üzerinden geçer.
* Yurtiçi Kargo'nun gizlilik ve kullanım koşulları için: https://www.yurticikargo.com

== Privacy ==

* WordPress içinde saklanan veriler:
    * `wp_options`: API anahtarı, Yurtiçi Kargo kullanıcı adı, parolası, müşteri kodu, prefix tercihi, SMS şablonu (autoload, secret değerler için no'ya çekilir).
    * `wp_postmeta`: ürün/varyasyon başına ek kargo etiket adı override (`_yke_label_product_name`).
    * `{prefix}_yke_request_log` tablosu: yalnızca metadata (uçnokta, HTTP metodu, durum kodu, süre, hata kodu). API anahtarı, mesaj içeriği veya kişisel veri loglanmaz.
* SaaS tarafında saklananlar (özet):
    * SMS metadata (maskelenmiş telefon, segment sayısı, sonuç).
    * Proxy log metadata.
    * Mesaj içeriği veya raw SOAP body **asla** kalıcı olarak saklanmaz.
* Eklenti kaldırma sırasında **veri silme** kullanıcı seçimine bağlıdır. "Eklenti kaldırılırken tüm verileri sil" ayarı işaretliyse uninstall işlemi tüm `yke_*` option'ları, `_yke_label_product_name` postmeta kayıtlarını ve `yke_request_log` tablosunu temizler. Aksi halde veri korunur.

== Frequently Asked Questions ==

= API anahtarımı nereden alabilirim? =

https://panel.wpentegrasyon.com.tr adresinden hesap oluşturup panelde "API Anahtarları" sayfasından üretebilirsiniz. Anahtarın `relay:yurtici`, `notify:send` ve `balance:read` izinlerine sahip olması gerekir.

= Eklenti ücretli mi? =

Hayır. WordPress eklentisi tamamen ücretsizdir ve aylık abonelik ücreti yoktur. Yalnızca **opsiyonel SMS bildirim** özelliğini kullanmayı seçerseniz, gönderilen segment başına SMS bakiyesi sisteminden düşülür. SMS göndermeden de eklentinin tüm kargo özellikleri çalışır.

= SMS gönderimi nasıl ücretlendiriliyor? =

Pay-as-you-go: Segment başına sabit fiyat. GSM-7 alfabesi (Türkçe karakter içermeyen) mesajlar 160 karaktere kadar tek segmenttir. Türkçe karakterler içeren mesajlar UCS-2 olarak kodlanır ve 70 karakterde bir segment kullanır. Güncel fiyat ve minimum yükleme tutarı için: https://wpentegrasyon.com.tr/pricing

= Aynı sipariş için iki kez SMS gönderilir mi? =

Hayır. Eklenti her gönderim için sipariş kimliği + hedef durum + şablon hash'inden türetilen bir `idempotencyKey` üretir. Aynı anahtar 24 saat içinde tekrar kullanılırsa SaaS sunucu çoğaltmayı engeller.

= Eklenti raw SOAP istekleri yapıyor mu? =

Hayır. Tüm SOAP karmaşıklığı SaaS tarafında çözülür. Eklenti yalnızca JSON HTTPS istekleri yapar.

= Aynı Yurtiçi Kargo hesabını birden fazla WooCommerce sitesinde kullanabilir miyim? =

Evet, fakat aynı `cargoKey` çakışmasını önlemek için her site için ayrı bir tek harf prefix (A-Z) seçmenizi öneririz. Sınırsız çoklu site için Store-bazlı yapı yol haritamızdadır.

= Ürün adını kargo etiketinde özel olarak gösterebilir miyim? =

Ürün ve varyasyon ekranlarında "Kargo etiketinde görünecek ürün adı" alanı vardır. Şu sürümde bu alan ileride etiket/PDF çıktısı eklendiğinde kullanılmak üzere saklanır; şu an SOAP `createShipment` çağrısında payload'a dahil edilmez. Boş bırakırsanız WooCommerce ürün adı kullanılır.

= Verilerim nerede saklanıyor? =

WordPress'te ne tutulduğunu yukarıdaki "Privacy" bölümünde, SaaS tarafında ne saklandığını da yine "Privacy" ve "External services" bölümlerinde detaylı olarak belirttik.

== Screenshots ==

1. Ayarlar sayfası — API anahtarı maske, Yurtiçi kimlik bilgileri ve prefix seçimi
2. Sipariş listesinde takip numarası kolonu
3. Sipariş detayında "Kargo durumunu sorgula" düğmesi
4. SMS bakiyesi düşükse admin notice
5. Ürün edit ekranında "Kargo etiketinde görünecek ürün adı" alanı

== Changelog ==

= 1.0.0 =
* İlk sürüm
* WooCommerce sipariş "tamamlandı" kancası → otomatik kargo oluşturma
* SMS bildirim altyapısı (idempotency korumalı, opsiyonel)
* HPOS uyumluluğu (declare_compatibility)
* Admin notice — düşük bakiye / yapılandırma eksik
* API anahtarı ve Yurtiçi parola için input value içinde tam metin yerine maske / placeholder
* Çoklu site için tek harf prefix seçeneği (A-Z) ve `cargoKey` üreticisi
* Ürün/varyasyon başına kargo etiket adı override alanı (gelecekteki etiket çıktısı için)
* Uninstall sırasında opsiyonel veri temizliği (postmeta + log tablosu dahil)

== Upgrade Notice ==

= 1.0.0 =
İlk sürüm.
