WooCommerce siparişleri
MarkdownSayproof'un siparişleri WooCommerce'ten kendisinin okuması; REST API anahtarı, kurulum, durum eşlemesi, teslim kuralı ve ürün sayfasında gösterim.
WooCommerce kullanan bir mağazada siparişlerin Sayproof’a ulaşması için kod yazılması gerekmez. Sayproof, sizin oluşturduğunuz bir REST API anahtarıyla WooCommerce REST API’sine bağlanır ve yeni ya da değişen siparişleri belli aralıklarla (varsayılan olarak 15 dakikada bir) kendisi okur. Okunan siparişler, mağaza sisteminden gönderilen siparişlerle aynı biçimde kaydedilir; yorum yazma hakkı ve davetler aynı kurallarla çalışır.
Bu sayfadaki WordPress ve WooCommerce ekran adları İngilizce yönetim panelindeki adlardır; yönetim paneliniz Türkçeyse aynı yerler Türkçe adlarıyla görünür.
Ne zaman kullanılır
Bölüm başlığı “Ne zaman kullanılır”- Mağazanız WordPress üzerinde WooCommerce ile çalışıyorsa bu sayfadaki bağlantıyı kurun.
- Hazır bağlantısı olmayan bir sistem kullanıyorsanız siparişleri mağaza sisteminiz gönderir: Sipariş ve teslimat aktarımı.
Panelde iki yol Entegrasyon › Sipariş aktarımı sekmesinde alt alta gösterilir: Platformdan okuma ve Mağazadan gönderim.
Gerekenler
Bölüm başlığı “Gerekenler”| Bilgi | Açıklama |
|---|---|
| Mağaza adresi | WordPress sitenizin adresi, örneğin https://markaniz.com. Yalnızca alan adı kullanılır; adrese yol yazılmışsa atılır. Bu nedenle WordPress alan adının kökünde kurulu olmalıdır. Site https ile açılmalıdır. |
| Consumer key ve Consumer secret | Bu iş için oluşturduğunuz, yalnızca Read izni olan REST API anahtarı. |
| Sayproof kanalı | Okunan siparişlerin yazılacağı kanal. Siparişin pazarı bu kanalın pazarıdır. |
- WordPress’te Settings › Permalinks ayarı Plain dışında bir seçenekte olmalıdır; Plain seçiliyken REST API adresleri açılmaz.
- Güvenlik eklentisi, güvenlik duvarı ya da önbellek katmanı
/wp-json/adreslerini engellememeli veAuthorizationheader’ını silmemelidir.
Bir Sayproof kanalı için her platformda tek bağlantı kurulabilir.
WooCommerce’te anahtar oluşturma
Bölüm başlığı “WooCommerce’te anahtar oluşturma”- WordPress yönetiminde WooCommerce › Settings › Advanced › REST API sayfasını açın ve Add key düğmesine basın.
- Description alanına anahtarın amacını yazın (örneğin “Sayproof”).
- User alanında siparişleri görebilen bir kullanıcı seçin (Administrator ya da Shop manager).
- Permissions alanında Read seçin ve Generate API key düğmesine basın.
- Gösterilen Consumer key (
ck_ile başlar) ve Consumer secret (cs_ile başlar) değerlerini kopyalayın. WooCommerce Consumer secret’ı yalnızca bu ekranda bir kez gösterir.
Anahtarı aynı sayfadan istediğiniz an iptal edebilirsiniz; iptal edilen anahtarla okuma durur.
Panelde kurulum
Bölüm başlığı “Panelde kurulum”- Entegrasyon › Sipariş aktarımı sekmesinin Platformdan okuma bölümünde Bağlantı kur düğmesine basın.
- Nereden okunacak adımında platform olarak WooCommerce seçeneğini ve Sayproof kanalını seçin.
- Bağlantı bilgileri adımında Mağaza adresi, Consumer key ve Consumer secret alanlarını doldurun. İlk okumada kaç gün geriye gidilsin alanı 1 ile 365 arasında bir değer alır; varsayılan 30 gündür.
- Deneyin adımında Bağlantıyı dene düğmesine basın. Sayproof WooCommerce’e bağlanır ve seçilen gün sayısı içindeki siparişlerin ilk sayfasını (en fazla 100 sipariş) okur. Sonuçta okunan sipariş sayısı, okunamayan siparişler ve en fazla beş örnek sipariş gösterilir: Sipariş no, Sipariş tarihi, Ödeme, Ürün sayısı, Kargo durumu, E-posta var mı. Müşteri e-posta adresi gösterilmez. Bu adımda hiçbir şey kaydedilmez.
- Kaydet ve okumayı başlat düğmesi yalnızca başarılı bir denemeden sonra açılır. Deneme sonrasında bir bilgi değiştirilirse bağlantı yeniden denenmelidir.
Kayıttan sonra bağlantı Platform bağlantıları kartında görünür. Kartta Okuma sıklığı, Son okuma, Son okumada (okunan ve yeni gelen sipariş sayısı), Okunamayan ve Son hata bilgileri yer alır. Düğmeler:
| Düğme | İşlevi |
|---|---|
| Şimdi oku | Sıradaki okumayı beklemeden okumayı başlatır. Duraklatılmış bağlantıda ve kanal kapalıyken kullanılamaz. |
| Bağlantıyı dene | Kayıtlı bilgilerle denemeyi tekrarlar; hiçbir şey kaydetmez. |
| Duraklat / Sürdür | Okumayı durdurur ya da yeniden başlatır. |
| Bağlantıyı düzenle | Mağaza adresi ve Okuma sıklığı (5 ile 1440 dakika arası) değiştirilir. Okuma kaldığı yerden sürer; daha önce aktarılan siparişler yeniden okunmaz. Adres başka bir sunucuyu gösteriyorsa Consumer key ve Consumer secret da aynı formda yeniden girilir; kayıtlı anahtar yeni adrese gönderilmez (400 invalid / address_needs_credentials). Sayproof kanalı bu formda değişmez. |
| Giriş bilgilerini değiştir | Yeni Consumer secret değerini kaydeder; Consumer key boş bırakılırsa mevcut değer korunur. |
| Bağlantıyı kaldır | Okumayı sonlandırır. Daha önce okunan siparişler ve gönderilen davetler silinmez. |
- Okuma varsayılan olarak 15 dakikada bir yapılır; sıklık Bağlantıyı düzenle ile 5 ile 1440 dakika arasında değiştirilebilir. İlk okuma, değişiklik zamanı seçilen gün sayısı içinde kalan siparişleri alır.
- Sonraki okumalar, bir önceki okumanın başladığı andan 10 dakika öncesine kadar değişen siparişleri alır. Aynı siparişin tekrar okunması güvenlidir: sipariş güncellenir, kopyası oluşmaz.
- Bir bağlantı için aynı anda tek okuma çalışır.
- Bir okuma en fazla 50 sayfa (sayfa başına 100 sipariş) alır; 100’den az sipariş içeren sayfa son sayfa sayılır. Siparişler bitmeden sınıra ulaşılırsa kartta “Son okuma sayfa sınırına takıldı” notu görünür ve sonraki okuma son okunan siparişin değişiklik zamanından (10 dakika payla) devam eder.
- Okuma başarısız olursa kaldığı yer ilerlemez; sonraki okuma, okuma sıklığı kadar sonra aynı aralığı yeniden dener ve nedeni Son hata satırında görünür.
Sayproof sipariş listesini değişiklik zamanına göre sıralı okur. Anahtar HTTP Basic kimlik doğrulamasıyla, Consumer key kullanıcı adı ve Consumer secret parola olarak gönderilir:
GET https://markaniz.com/wp-json/wc/v3/orders?modified_after=2026-09-02T12:00:00&dates_are_gmt=true&orderby=modified&order=asc&per_page=100&_fields=id,number,status,date_created_gmt,date_modified_gmt,date_completed_gmt,customer_id,billing.email,billing.phone,line_items,meta_data&page=1Authorization: Basic <base64(consumer key:consumer secret)>Accept: application/json_fieldsile yalnızca aşağıdaki tabloda kullanılan alanlar istenir.- Tüm tarihler GMT alanlarından okunur.
- Her isteğin zaman aşımı 30 saniye, yanıt sınırı 20 MB’tır.
Okunan alanlar
Bölüm başlığı “Okunan alanlar”Her satırda sırayla bakılan alanlar listelenir; dolu olan ilk alan kullanılır.
| Sayproof’taki bilgi | WooCommerce’te okunan alan |
|---|---|
| Sipariş numarası | number, id |
| Sipariş durumu | status |
| Sipariş tarihi | date_created_gmt |
| Değişiklik zamanı | date_modified_gmt |
| Teslim tarihi | date_completed_gmt, date_modified_gmt |
| Müşteri e-postası | billing.email |
| Müşteri telefonu | billing.phone |
| Müşteri kimliği | customer_id (misafir siparişte boş) |
| Dil | meta_data içindeki wpml_language (WPML); yoksa kanalın dili |
| Ürün satırları | line_items |
| Satır kimliği | Satırdaki id |
| Ürün kodu | sku, variation_id, product_id |
| Grup kodu | product_id |
| Ürün adı | name |
| Adet | quantity |
- Müşteri e-postası, mağaza sisteminden gönderilen sipariş verisindeki
customer_emailalanıyla aynı işi görür: davet bu adrese gönderilir ve sipariş doğrulamasında bu adres kullanılır. - Müşteri telefonu, sipariş verisindeki
customer_phonealanıyla aynı işi görür: numara WhatsApp ile davet için kullanılacak. WhatsApp ile davet v2 sürümüyle gelene kadar telefon numarası saklanmaz. - Ürün kodu, ürün kaynağınızdaki ürün anahtarıyla ve ürün sayfasındaki container’a verilen kodla aynı olmalıdır.
- Siparişin adres, fiyat ve ödeme bilgileri Sayproof’a kaydedilmez.
Durum eşlemesi
Bölüm başlığı “Durum eşlemesi”WooCommerce’te satır bazında durum yoktur; siparişin status değeri hem ödemeye hem siparişin tüm satırlarına uygulanır. Tablo panelde bağlantı kartındaki Durumların karşılığı bölümünde de görünür.
| WooCommerce kodu | WooCommerce’teki anlamı | Ödeme | Kargo durumu |
|---|---|---|---|
pending |
Ödeme bekleniyor | Ödeme bekliyor | Sipariş verildi |
on-hold |
Beklemede (örneğin havale bekleniyor) | Ödeme bekliyor | Sipariş verildi |
processing |
Ödeme alındı, sipariş hazırlanıyor | Ödendi | Hazırlanıyor |
completed |
Tamamlandı | Ödendi | Teslim edildi |
cancelled |
İptal edildi | İptal edildi | İptal edildi |
failed |
Ödeme başarısız | İptal edildi | İptal edildi |
refunded |
İade edildi | İade edildi | İade edildi |
- Eklentilerin eklediği özel durumlar (örneğin
shipped) tabloda yoktur; bu durumdaki siparişler okunmaz ve Okunamayan satırında “durumu tanınmıyor” olarak sayılır. - Ödeme sayfasında oluşan taslak siparişler (
checkout-draft), otomatik taslaklar (auto-draft) ve çöpe atılmış siparişler (trash) okunmaz ve sayılmaz.
Teslim kuralı
Bölüm başlığı “Teslim kuralı”- WooCommerce’te teslimat durumu yoktur. Sayproof
completed(Tamamlandı) durumundaki siparişin tüm satırlarını Teslim edildi sayar; bu bir platform sinyalidir. - Teslim tarihi
date_completed_gmt, boşsadate_modified_gmtdeğeridir. - Siparişleri kargoya verirken Completed durumuna alıyorsanız davetin teslimattan önce gitmemesi için Davet gönderimi ekranındaki bekleme süresini kargo süresini kapsayacak şekilde ayarlayın.
- Davet ve yorum yazma hakkı için satırın Teslim edildi, siparişin Ödendi olması gerekir. Davet, Davet gönderimi ekranındaki bekleme süresi dolduğunda gönderilir.
Okunamayan siparişler
Bölüm başlığı “Okunamayan siparişler”| Panelde | Nedeni |
|---|---|
| numarası ya da tarihi eksik | Siparişte numara, date_created_gmt ya da line_items listesi yok |
| durumu tanınmıyor | Siparişin durumu tabloda yok; sipariş atlanır |
| ürün satırında ürün kodu eksik | Satırda id yok ya da sku, variation_id ve product_id boş; satır atlanır |
| okunabilen ürün satırı yok | Siparişin okunabilen hiçbir satırı kalmadı |
| Sayproof’a kaydedilemedi | Sipariş okundu ama Sayproof’ta kaydedilemedi (örneğin kanalın pazarı için tanımlı kural yok) |
Okunamayan ya da kaydedilemeyen siparişler okumayı durdurmaz; diğer siparişler kaydedilir. Okunan siparişlerin hiçbiri kaydedilemezse okuma başarısız sayılır ve kaldığı yer ilerlemez; neden Son hata satırında görünür.
Hata durumları
Bölüm başlığı “Hata durumları”| Panelde | Anlamı |
|---|---|
| bağlantı için gereken anahtar bilgileri eksik | Consumer key ya da Consumer secret boş |
| platform anahtar bilgilerini kabul etmedi | WooCommerce 401 döndü: anahtar yanlış, iptal edilmiş ya da Read izni yok; sunucu Authorization header’ını iletmiyor da olabilir |
| alan adına ulaşılamadı | Mağaza adresi çözümlenemedi |
| bu adrese internetten ulaşılamıyor | Adres özel bir ağ adresine çıkıyor; bu tür adreslere bağlanılmaz |
| sunucuya bağlanılamadı, güvenli bağlantı kurulamadı | Bağlantı ya da TLS el sıkışması başarısız |
| kaynak zamanında yanıt vermedi | İstek 30 saniyede yanıt almadı |
| adres başka bir yere yönlendiriyor; doğrudan adresi yazın | Site yönlendirme döndürdü (örneğin www olan ve olmayan adres arasında); yönlendirmeler izlenmez |
| karşı sistem hata verdi, durum kodu | WooCommerce 200 dışında bir yanıt verdi (örneğin REST API kapalıysa ya da Plain kalıcı bağlantı seçiliyse http_status: 404, bir güvenlik katmanı engelliyorsa http_status: 403) |
| platformun yanıtı okunamadı, platformun yanıtı çok büyük | Yanıt bir sipariş listesi değil (örneğin HTML sayfası) ya da 20 MB’tan büyük |
| kayıtlı giriş bilgileri okunamadı; yeniden girin | Kayıtlı anahtar çözülemedi; Giriş bilgilerini değiştir ile yeniden girin |
| okuma beklenmeyen bir hatayla durdu | Beklenmeyen bir hata oluştu; okuma, okuma sıklığı kadar sonra yeniden denenir |
Ürün sayfasında gösterim
Bölüm başlığı “Ürün sayfasında gösterim”Yorumlar ürün sayfasında script ile gösterilir. WooCommerce’te script ve container, alt temanın (child theme) functions.php dosyasına ya da bir kod parçacığı eklentisine eklenen kısa bir kodla ürün sayfasına yerleştirilir:
add_action( 'woocommerce_after_single_product_summary', function () { global $product; printf( '<div data-review-mount data-review-product="%s" data-review-product-name="%s"></div>', esc_attr( $product->get_sku() ?: $product->get_id() ), esc_attr( $product->get_name() ) );}, 15 );
add_action( 'wp_footer', function () { if ( ! is_product() ) { return; } echo '<script type="module" src="https://cdn.sayproof.example/sayproof.js" data-review-site-key="SITE-ANAHTARINIZ" data-review-base="https://api.sayproof.example" data-review-locale="tr"></script>';} );srcvedata-review-site-keydeğerleri panelde Entegrasyon › Sitede gösterim sekmesindeki Yorumları ürün sayfasında gösterin kartında, Script (tarayıcıda) yolu seçildiğinde Kurulumda kullanılacak değerler listesinde yer alır.- Container ürün özetinin altına, ilgili ürünlerin üstüne eklenir. Başka bir yere koymak için temanızın kullandığı başka bir WooCommerce kancasını seçin.
data-review-product, ürünün SKU’sudur; SKU boşsa ürün numarası kullanılır. Basit ürünlerde bu, Sayproof’un siparişten okuduğu ürün koduyla aynıdır.- Varyasyonlu ürünlerde siparişe varyasyonun SKU’su yazılır, ürün sayfasındaki
$product->get_sku()ise ana ürünün SKU’sunu verir. Böyle ürünlerde tüm varyasyonların yorumlarını birlikte göstermek içindata-review-scope="group"ekleyin vedata-review-productdeğerini$product->get_id()yapın; grup kodu WooCommerce’teki ürün numarasıdır.
Alan adı doğrulama
Bölüm başlığı “Alan adı doğrulama”Yorumlar yalnızca doğrulanmış alan adlarındaki sayfalarda görünür. Alan adını panelde ekleyip doğrulayın: Alan adı doğrulama. WordPress’te doğrulama dosyası sunucunun dosya yöneticisiyle ya da FTP ile sitenin köküne konur; dosya koyamıyorsanız Doğrulama yolu olarak DNS kaydı’nı seçip alan adınızın DNS yönetiminde TXT kaydı ekleyin.
Güvenlik
Bölüm başlığı “Güvenlik”- Consumer secret şifreli saklanır ve panelde ya da API yanıtlarında bir daha gösterilmez.
- Yalnızca
httpsadreslerine bağlanılır; özel ağ adresleri ve yönlendirmeler reddedilir. - Anahtarın yalnızca Read izni olmalıdır; Sayproof WooCommerce’te hiçbir şeyi değiştirmez. Bağlantıyı tamamen kesmek için anahtarı WooCommerce’te iptal edin.
- Bağlantılar yalnızca panelde oturum açmış ve “Ayarları değiştirebilir” iznine sahip bir kullanıcı tarafından görülür ve yönetilir; API anahtarıyla bu işlemler yapılamaz.
- Kurma, değiştirme, deneme, elle okuma ve kaldırma işlemleri İşlem geçmişi ekranına kaydedilir.