İçeriğe geç

WooCommerce siparişleri

Markdown

Sayproof'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.

  • 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.

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 ve Authorization header’ını silmemelidir.

Bir Sayproof kanalı için her platformda tek bağlantı kurulabilir.

  1. WordPress yönetiminde WooCommerce › Settings › Advanced › REST API sayfasını açın ve Add key düğmesine basın.
  2. Description alanına anahtarın amacını yazın (örneğin “Sayproof”).
  3. User alanında siparişleri görebilen bir kullanıcı seçin (Administrator ya da Shop manager).
  4. Permissions alanında Read seçin ve Generate API key düğmesine basın.
  5. 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.

  1. Entegrasyon › Sipariş aktarımı sekmesinin Platformdan okuma bölümünde Bağlantı kur düğmesine basın.
  2. Nereden okunacak adımında platform olarak WooCommerce seçeneğini ve Sayproof kanalını seçin.
  3. 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.
  4. 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.
  5. 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=1
Authorization: Basic <base64(consumer key:consumer secret)>
Accept: application/json
  • _fields ile 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.

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_email alanı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_phone alanı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.

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.
  • 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şsa date_modified_gmt değ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.
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.

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

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>';
} );
  • src ve data-review-site-key değ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çin data-review-scope="group" ekleyin ve data-review-product değerini $product->get_id() yapın; grup kodu WooCommerce’teki ürün numarasıdır.

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.

  • Consumer secret şifreli saklanır ve panelde ya da API yanıtlarında bir daha gösterilmez.
  • Yalnızca https adreslerine 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.