WooCommerce Eklentisi
Tarafından Talha MERT, Fuat POYRAZ, and Fatih ÇELEBİ
Tarafından Talha MERT, Fuat POYRAZ, and Fatih ÇELEBİ
WooCommerce ilk Kurulum / API Anahtarı Edinme
Kargo Entegratör eklentimizi ücretsiz bir şekilde WordPress eklenti mağazasında “Kargo Entegratör” olarak aratarak ya da ürün linki üzerinden indirebilirsiniz. API Anahtarını Edinin Kargo Entegratör eklentimizi WooCommerce mağazanıza kurduktan sonra app.kargoentegrator.com adresinden API Anahtarını edinmeniz gerekmektedir. app.kargoentegrator.com kaydınızı tamamladıktan sonra Ayarlar > Satış Kanalları / API sayfası üzerinden API Anahtarınızı Kopyalayabilirsiniz. API Anahtarınızı kopyaladıktan sonra eklentinin Ayarlar > Bağlantılar sayfası üzerinden kopyaladığınız API anahtarını girin ve ayarlarınızı kaydedin. Artık kargo firmaları ile entegre olabilir ve WooCommerce mağazanız üzerinden kargo gönderimleri sağlayabilirsiniz.
Sipariş Durumları Güncellenmiyor 'Gönderim Hazır' Durumunda Kaldı Ne Yapmalıyım ?
Cloudflare Tarafından İsteklerin Engellemesi Hakkında Bazı durumlarda sunucunuz güvenlik duvarı , saldırı koruma sistemleri veya bot filtreleme nedeniyle belirli IP adreslerinden gelen istekleri engelleyebilir. Bu sorunu çözmek için Kargo Entegratör'ün IP adresini Cloudflareda whitelist (güvenilir IP listesi) bölümüne eklemeniz gerekir. Kargo Entegratör IP adresleri IPv6 : 2a01:4f9:c012:ed4b::1 IPv4 : 37.27.30.151 Cloudflare İsteklerin Engellemesi Hakkında Cloudflare’ın IP adresinizi bot kontrolüne sokması, genellikle güvenlik ayarlarından kaynaklanır. Bu sorunu çözmek için aşağıdaki adımları izleyebilirsiniz: 1. IP Adresinizi Beyaz Listeye Ekleyin: - Cloudflare’da oturum açın. - İlgili alan adını seçin. - Security > Security Rules sekmesine gidin. - Create Rule altında Custom Rules bölümüne gidin. - Kargo Entegratörün IPV4 ve IPV6 ip adreslerini beyaz listeye ekleyin. Bunu yaparak, bizden gelen adresinden gelen tüm isteklerin engellenmemesini sağlayabilirsiniz. Bu adımları uyguladıktan sonra Cloudflare tarafından engellenip engellenmediğimizi durum değişikliğinde test edebilirsiniz.
FedEx Ship Manager ve REST API Entegrasyon Rehberi
Başlangıç Bilgisi: WooCommerce Entegrasyonu WooCommerce siparişlerinizi FedEx Ship Manager ekranınıza entegre edebilirsiniz. Bunun için gönderi hazırlama e-ticaret panelini ziyaret etmeniz önerilir. 1. Adım: Developer Portal Girişi FedEx REST API entegrasyonu için öncelikle https://www.google.com/search?q=developer.fedex.com adresine giderek kullanıcı adınız ve şifrenizle "Oturum Aç" butonuna tıklayın. 2. Adım: Projelerim Menüsü ve Kuruluş Oluşturma Sol menüden "Projelerim" sekmesine tıklayın ve yeni bir yapı kurmak için "KURULUŞ OLUŞTUR" butonuna basın. 3. Adım: API İhtiyacı ve Firma Bilgileri API erişimine neden ihtiyaç duyduğunuzu belirten seçeneği seçin ve şirketinizin resmi adı ile web sitesi bilgilerini doldurun. 4. Adım: Proje Oluşturma Seçeneği Kuruluş ayarlarınızı tamamladıktan sonra ana panelde yer alan "Bir API projesi oluştur" butonunu kullanarak teknik kurulumu başlatın. 5. Adım: Proje İsimlendirme Projenize sistemde tanınması için bir isim verin (Örn: FedEx Test Projesi) ve kullanım amacınızı tekrar teyit edin. 6. Adım: API Servislerinin Seçimi Entegrasyonda kullanacağınız "Ship API", "Track API" ve "Postal Code Validation API" gibi gerekli servisleri işaretleyerek ilerleyin. 7. Adım: Lisans Sözleşmesi Onayı FedEx Developer Portal Lisans Sözleşmesi'ni ve kullanım koşullarını kabul ettiğinizi belirten kutucukları işaretleyip "KABUL EDİYORUM" butonuna tıklayın. 8. Adım: Ülke ve Bildirim Ayarları Test hesabı atanabilmesi için ülke olarak "Türkiye"yi seçin ve e-posta bildirim tercihlerinizi yaparak "OLUŞTUR" butonuna basın. 9. Adım: Test Anahtarlarını (Sandbox) Edinme Sistem tarafından oluşturulan "API Anahtarı" ve "Gizli Anahtar" (Secret Key) bilgilerini test ortamında kullanmak üzere kaydedin. 10. Adım: Üretim (Canlı) Ortamına Geçiş Canlı API anahtarlarını almak için proje genel bakış ekranında "Üretim Anahtarı" sekmesine geçin ve "Hesap Ekle" butonuna tıklayın. 11. Adım: 9 Haneli Hesap Numarası Girişi Şirketinize ait 9 haneli FedEx hesap numarasını ve sistemde kayıtlı olan resmi fatura adres bilgilerinizi eksiksiz girin. 12. Adım: Yetki Beyanı Bu projeyi şirketiniz adına oluşturmaya ve yönetmeye yetkili olduğunuzu beyan eden onay kutucuğunu işaretleyin. 13. Adım: EULA Sözleşmesi Onayı Canlı ortam kullanımı için hazırlanan Son Kullanıcı Lisans Sözleşmesi'ni (EULA) gözden geçirin ve onaylayarak hesabı projenize dahil edin. 14. Adım: Hesabın Projeye Atanması Eklediğiniz canlı hesabı proje listesinden seçerek "Devam Et" butonuna basın ve yapılandırmayı ilerletin. 15. Adım: Canlı API Anahtarlarını Kaydetme Canlı (Production) ortamda gönderi oluşturmanızı sağlayacak olan asıl API Key ve Secret Key değerlerini kopyalayarak güvenli bir yere not edin. 16. Adım: Sertifikasyon ve Aktivasyon Tamamlama Bazı servislerin canlıda aktif olması için gereken sertifikasyon sürecini başlatmak üzere "Go to API Certification" butonuna tıklayarak işlemi bitirin.
cURL error 28: Connection timed out after 10001 milliseconds Hatası ve Çözümü
Bu hata, WooCommerce sitenizin barındığı sunucunun, Kargo Entegratör sunucularına belirlenen süre (10 saniye) içerisinde bağlanamadığını ifade eder. Teknik olarak sunucular arası iletişim bir engel nedeniyle kurulamamaktadır. Muhtemel Nedenler Güvenlik Duvarı (Firewall) Engeli: Sunucunuzun güvenlik ayarları Kargo Entegratör IP adresini "tehdit" olarak algılayıp bloklamış olabilir. Sunucu Kaynak Yetersizliği: CPU veya RAM limitlerinin dolması nedeniyle sunucu dış bağlantı isteğini başlatamıyor olabilir. DNS veya Ağ Gecikmeleri: Sunucu tarafındaki anlık ağ dalgalanmaları. Çözüm Önerileri 1. IP Adresini Beyaz Listeye (Whitelist) Ekleme En yaygın çözüm yolu budur. Sitenizin sunucusuna Kargo Entegratör'den gelen isteklere izin vermesi gerektiğini söylemelisiniz. Adım 1: Hosting sağlayıcınıza veya sistem yöneticinize bir destek bileti (ticket) açın. Adım 2: Şu mesajı iletin: "Kargo Entegrasyon servisimizin çalışabilmesi için 37.27.30.151 IP adresinin sunucu güvenlik duvarında (Firewall)gibi güvenlik katmanlarında beyaz listeye (whitelist) eklenmesini rica ederiz." 2. Sunucu Performans Kontrolü IP tanımlamasına rağmen sorun sürüyorsa sunucu yükünü kontrol edin: Sunucunuzun CPU ve RAM kullanımının %90'ın üzerinde olup olmadığını kontrol edin. WordPress tarafında çok fazla ağır eklenti kullanılıyorsa, bu durum cURL isteklerini yavaşlatabilir. 3. Zaman Aşımı Limitini Artırma (Opsiyonel) Eğer sunucunuz yanıt vermekte sadece "biraz" geç kalıyorsa, PHP max_execution_time değerinin çok düşük olmadığından emin olun (Önerilen: 60 veya 90). Bu hata doğrudan Kargo Entegratör ile ilgili değil, sitenizin barındığı sunucu ortamının dış dünyaya ulaşamaması ya da yavaş ulaşması ile ilgilidir. Sorunun kalıcı çözümü için hosting firmanızın destek ekibiyle koordineli ilerlemeniz önerilir.
Cloudflare ve Sunucu Güvenlik Duvarı Kaynaklı 403 Hatalarının Çözümü
Kargo Entegratör'ün WooCommerce sitelerine gönderdiği kargo bilgisi güncellemeleri veya API istekleri bazen 403 Forbidden hatasına düşebilir. Bu durum genellikle Cloudflare üzerindeki özel güvenlik kuralları veya sunucu tarafındaki bot koruma sistemlerinden kaynaklanır. 1. Cloudflare Güvenlik Kurallarının Yapılandırılması (WAF) Eğer sitede yurtdışı kaynaklı botları engellemek için özel kurallar (Custom Rules) tanımlıysa, Kargo Entegratör servisinden gelen istekler bu filtreye takılabilir. Çözüm: Güvenlik kuralını, güvenilir servisleri ve belirli URL yapılarını dışarıda tutacak (bypass) şekilde güncelleyin. - İstisna Tanımlanacak Alanlar: - Known Bots: Açık (On) konuma getirilmelidir. - URI Path: /gcargo içeren veya kargo API uç noktası olan yollar kuraldan muaf tutulmalıdır. - Örnek Expression: (ip.src.country ne "TR" and not cf.client.bot and not http.request.uri contains "gcargo") 2. User-Agent Eksikliği ve Header Transform Rule Bazı sunucu güvenlik yazılımları (örneğin Imunify360), gelen HTTP isteklerinde User-Agent bilgisi boş olduğunda isteği otomatik olarak reddeder (403 hatası) veya sonsuz döngüye (loop) sokar. Kargo servislerinden gelen bazı webhook veya cron isteklerinde bu başlık boş olabilir. Çözüm: Cloudflare üzerinde bir "HTTP Request Header Transform Rule" oluşturarak, belirli isteklere yapay bir User-Agent tanımlanmalıdır. - Kural Mantığı: Eğer istek URL'si kargo servisiyle ilgili anahtar kelimeleri (gcargo, wc-api vb.) içeriyorsa, bu isteğe sabit bir tarayıcı kimliği atayın. - Yapılandırma: - Field: User-Agent - Value: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 (veya benzeri güncel bir string). Özet Sonuç Bu iki adım uygulandığında; 1. Cloudflare yurtdışı bot korumasına takılan servis istekleri "istisna" kapsamına alınır. 2. Sunucu tarafında "boş User-Agent" nedeniyle oluşan engellemeler, Cloudflare üzerinden başlık manipülasyonu yapılarak aşılır.
İade barkodunu müşteriye e-posta ile nasıl ulaştırırım?
Bir siparişe iade gönderisi oluşturduğunuzda, müşteriniz iade barkodunu Hesabım → Siparişlerim alanından PDF olarak kendisi indirebilir. Bu makale, müşterinizi bu alandan haberdar etmek için WooCommerce e-postalarınıza nasıl bilgilendirme metni ekleyeceğinizi anlatır. Önce bilmeniz gerekenler - İade barkodu butonu yalnızca iade gönderisi oluşturulduktan sonra görünür. Kargo Entegratör panelinizden ilgili sipariş için "İade Oluştur" işlemini yapmadıysanız müşteri Hesabım alanında bir buton görmez. - Bu özellik Kargo Entegratör WordPress eklentisi v1.1.49 ve sonrasında mevcuttur. Daha eski bir sürüm kullanıyorsanız önce eklentinizi güncelleyin. - Müşteri barkodu iki yerden indirebilir: - Hesabım → Siparişlerim listesindeki Kargo Takibi sütunu - Siparişin detay sayfası (sipariş tablosunun altındaki Gönderi Takibi bölümü) - Butonun adı "İade Barkodu", indirilen dosya iade-barkodu-{sipariş no}.pdf şeklindedir. Yöntem 1 — Kod bilgisi gerektirmez (önerilen) WooCommerce'un her e-postasında, şablonu düzenlemeden metin ekleyebileceğiniz bir Ek içerik alanı vardır. 1. WordPress yönetim panelinde WooCommerce → Ayarlar → E-postalar yolunu izleyin. 2. Listeden metni eklemek istediğiniz e-postayı seçin (ör. İade edilen sipariş) ve Yönet butonuna tıklayın. 3. Sayfanın altındaki Ek içerik alanına, aşağıdaki "Müşteriye gösterilecek hazır metin" bölümündeki metni yapıştırın. 4. Değişiklikleri kaydet butonuna tıklayın. Not: Bu alanda PHP kodu çalışmaz, ancak WooCommerce'un yer tutucularını kullanabilirsiniz: {order_number}, {order_date}, {site_title}, {site_url}, {site_address}. Hesabım bağlantısını düz adres olarak yazmanız gerekir (ör. https://siteniz.com/hesabim/siparisler/). Yöntem 2 — E-posta şablonunu düzenleme Metnin e-postanın tam olarak istediğiniz yerinde çıkmasını istiyorsanız şablonu temanıza kopyalayıp düzenleyebilirsiniz. 1. WooCommerce → Ayarlar → E-postalar yolunu izleyin ve ilgili e-postanın Yönet butonuna tıklayın. 2. Sayfanın altındaki E-posta şablonunu kopyala butonuna tıklayın. Şablon temanızın içine kopyalanır: wp-content/themes/<temanız>/woocommerce/emails/customer-refunded-order.php 3. Aynı ekranda beliren Şablonu düzenle alanından ya da bir FTP/dosya yöneticisi ile bu dosyayı açın. 4. Metni eklemek istediğiniz yere aşağıdaki satırları yapıştırın: <p style="margin:16px 0;padding:12px;border:1px solid #ddd;border-radius:4px;"> İade barkodunuzu <strong>Hesabım → Siparişlerim</strong> alanından PDF olarak indirebilirsiniz. <a href="<?php echo esc_url( $order->get_view_order_url() ); ?>">Siparişimi görüntüle</a> </p> ⚠️ Dikkat: Şablonu ana temaya kopyalarsanız tema güncellemesinde değişikliğiniz silinir. Mutlaka bir alt tema (child theme) kullanın. Ayrıca WooCommerce güncellemelerinden sonra WooCommerce → Durum sayfasında "güncel olmayan şablon" uyarısı çıkarsa şablonu yeniden kopyalamanız gerekir. Yöntem 3 — Kod ile ekleme (tema dosyasına dokunmadan) Şablon kopyalamak istemiyorsanız, alt temanızın functions.php dosyasına veya bir kod parçacığı eklentisine aşağıdaki kodu ekleyerek metni yalnızca seçtiğiniz e-postalara ekleyebilirsiniz. add_action( 'woocommerce_email_after_order_table', function ( $order, $sent_to_admin, $plain_text, $email ) { // Yalnızca müşteriye giden iade e-postalarında göster. $hedef_epostalar = array( 'customer_refunded_order', 'customer_partially_refunded_order' ); if ( $sent_to_admin || ! in_array( $email->id, $hedef_epostalar, true ) ) { return; } printf( '<p style="margin:16px 0;">İade barkodunuzu <strong>Hesabım → Siparişlerim</strong> alanından PDF olarak indirebilirsiniz. <a href="%s">Siparişimi görüntüle</a></p>', esc_url( $order->get_view_order_url() ) ); }, 10, 4 ); Metni tam doğru anda göndermek isterseniz WooCommerce'un "İade edilen sipariş" e-postası, siparişte para iadesi yapıldığında tetiklenir — kargo iade gönderisi oluşturulduğunda değil. Bilgilendirmenin tam olarak iade barkodu oluştuğu anda gitmesini istiyorsanız Kargo Entegratör'ün kendi kancasını kullanabilirsiniz: add_action( 'gcargo_add_returned', function ( $order, $returned ) { $order->add_order_note( sprintf( 'İade barkodu oluşturuldu. Müşteri Hesabım → Siparişlerim alanından indirebilir: %s', $order->get_view_order_url() ), true // müşteriye not olarak gönderilir. ); }, 10, 2 ); $order->add_order_note( ..., true ) müşteriye WooCommerce'un "Sipariş notu" e-postasını gönderir; böylece ayrı bir e-posta şablonu hazırlamanıza gerek kalmaz. Kargo Entegratör'ün diğer kancaları için WordPress Eklentisi Kanca (Hook) Listesi makalemize bakabilirsiniz. Müşteriye gösterilecek hazır metin Aşağıdaki metni olduğu gibi kullanabilir veya markanıza göre uyarlayabilirsiniz. https://siteniz.com/hesabim/siparisler/ adresini kendi sitenizin adresiyle değiştirmeyi unutmayın. İade Barkodunuz Hazır İade talebiniz için kargo barkodunuz oluşturuldu. Barkodu indirmek için: 1. Sitemizde hesabınıza giriş yapın. 2. Hesabım → Siparişlerim alanına gidin: https://siteniz.com/hesabim/siparisler/ 3. İlgili siparişin satırındaki "İade Barkodu" butonuna tıklayın. 4. İnen PDF dosyasını yazdırıp kolinin üzerine yapıştırın ve kargo şubesine teslim edin. Barkodu yazdıramıyorsanız kargo şubesinde barkod numarasını göstermeniz de yeterlidir.