Tek cümlelik sürüm notlarına zaafım vardır. WooCommerce 10.9.4 sürümü 7 Temmuz’da tek satırlık bir düzeltmeyle yayınlandı — “Blok ödeme sayfasında oturum açmış müşteriler için is_vat_exempt bayrağının doğru uygulanmasını sağlar” — ve kurumsal müşteriye satış yapıyorsanız bu, dışarıdan çok sessiz görünen ama içeride epeyce gürültülü bir hikâye barındırıyor.

Çünkü Avrupa Birliği’nde, Birleşik Krallık’ta veya Türkiye’de KDV muafiyeti olan işletme müşterilerine satış yapıyorsanız ve mağazanız Blok Ödeme kullanıyorsa, yaklaşık altı hafta boyunca bu müşterilerinizden sessizce fazla vergi almış olabilirsiniz. Yalnızca Blok Ödeme’de. Yalnızca müşteri oturum açmışken. Bu tür bir hata anında destek talebi yaratmaz — müşteri ya yutar, ya iade talep eder, ya da hiçbir şey söylemeden başka bir mağazaya geçer.

Bu aynı zamanda WooCommerce’in on beş gün içinde çıkardığı dördüncü nokta sürüm — 10.9.2, 10.9.3, 10.9.4 — ve dördünde de kök neden 10.9.0 ile gelen niyeti iyi ama üretimle karşılaşınca kırılan bir iyileştirmeydi. Bu örüntü tek başına konuşmayı hak ediyor.

Gerçekten yeni olan ne

WooCommerce 10.9.4 sürümü 7 Temmuz 2026’da Brian Coords tarafından WooCommerce Developer Blog üzerinde duyuruldu. Güvenlik güncellemesi değil, veritabanı güncellemesi de gerektirmiyor. Değişiklik günlüğünde tek bir satır var: Blok Ödeme’de oturum açmış müşteriler için KDV muafiyeti düzeltmesi.

Düzeltme PR #66342 olarak kalessil tarafından hazırlandı ve 7 Temmuz’da ana dala birleştirildi. Yama, aynı geliştiricinin Nisan 2026’da yazdığı ve WooCommerce 10.9.0 sürümüyle 23 Haziran’da yayına giren bir Store API başarım iyileştirmesinin — PR #64392 — bir parçasını geri alıyor. O iyileştirme gerçek bir iş yapıyordu: POST /checkout ortanca yanıt süresi yaklaşık yüzde 20 iyileşti, P90 gecikmesi yüzde 27 düştü. Bunu yapabilmek için WC_Customer::save() içine erken çıkış eklendi; müşteri nesnesinde değişiklik yoksa veritabanı yazımı atlanıyordu.

Sorun şuradaydı: müşteri nesnesinde değişen her şey set_prop() üzerinden geçmiyor. Üç özellik bu yolun dışında kalıyor: password, calculated_shipping ve is_vat_exempt. Blok Ödeme isteği, oturum açmış bir müşterinin KDV muafiyet bayrağını değiştirdiğinde, değişiklik kontrolü bunu göremiyor, erken çıkış tetikleniyor ve sipariş vergi hesabı yapmadan önce bayrak sessizce yok oluyordu. Klasik (kısa kod) ödeme sayfası etkilenmedi. Misafir ödemesi etkilenmedi. Yalnızca kesişim — Blok Ödeme artı oturum açmış müşteri — etkilendi.

10.9.4 iki şey yapıyor. Birincisi, WC_Customer::save() içindeki erken çıkış kısa devresini kaldırıyor, böylece kayıt her koşulda veritabanına yazılıyor. İkincisi, WC_Customer için birim testler ekliyor ve tutarlılık için is_paying_customer değerini boole türüne dönüştürüyor. Değişen dosya plugins/woocommerce/includes/class-wc-customer.php, buna eşlik eden bir test dosyası da eklenmiş. Sürümün tamamı bu kadar.

Tempoyu görmek için: bu, on beş gündeki dördüncü 10.9.x nokta sürümü. 10.9.2 (3 Temmuz) güncelleme sırasında ayarlar SDK’sında yaşanan bir ölümcül hatayı düzeltip anlık bildirim özellik bayrağını emekliye ayırdı. 10.9.3 (yine 3 Temmuz) WC_Email::send_notification() içinde filtre kancasının boole olmayan değer döndürmesinden kaynaklı ölümcül hatayı düzeltti. 10.9.4 (7 Temmuz) bu KDV düzeltmesi. WooCommerce 11.0 sürümü 28 Temmuz’da bekleniyor.

WordPress ve WooCommerce ile çalışanlar için neden önemli

Blok Sepet ve Blok Ödeme üzerinden çalışan bir kurumsal mağazanız varsa — ki bu WooCommerce 10.9’dan bu yana yeni kurulumların varsayılanı — bu bir arayüz hatası değil, veri bütünlüğü hatasıdır. 23 Haziran ile 7 Temmuz arasında, KDV muafiyeti Blok Ödeme sırasında belirlenen veya güncellenen her oturum açmış müşteriden, faturada yasal olarak olmaması gereken vergi tahsil edilmiş olabilir. Sipariş kaydı yanlış toplamı gösteriyor. Vergi raporu, aslında kazanmadığınız bir geliri gösteriyor. AB’de üç aylık KDV beyannamesi veriyorsanız, en az bir hafta için yanlış beyan vermiş olma ihtimaliniz çok yüksek.

Daha dar soru şu: mağazanızda muafiyeti neyin tetiklediği. wp-admin üzerindeki müşteri profilinde bulunan yerleşik “Vergi muafiyetini etkinleştir” seçeneğini kullanıyorsanız, o yol normal yönetici kaydından geçtiği için etkilenmedi. Kırılan yol, set_is_vat_exempt() çağrısının doğrudan ödeme isteği sırasında yapıldığı yol — en sık da AB KDV numarası doğrulama eklentisi, ödeme alanından KDV numarasını okuyup bayrağı çeviren bir B2B müşteri eklentisi ya da kendi woocommerce_store_api_checkout_update_customer_from_request kancanız üzerinden. Kurulumunuz buysa, etkilendiniz demektir.

Daha geniş örüntü ise açıkça adlandırmayı hak ediyor. On beş günde dört nokta sürüm, her birinde 10.9.0 ile gelen iyi bir mühendisliğin bir parçası geri alındı veya sağlamlaştırıldı: ayarlar SDK yükleyicisi, e-posta filtre sözleşmesi ve şimdi de müşteri kayıt kısa devresi. Her biri PR incelemesinde makul görünüyordu. Her biri üretim verisinin gerçek şekliyle karşılaşınca çöktü. Ana sürüm gerçekten iddialı olduğunda — 10.9.0 duyurusuna göre 65 katılımcıdan 464 PR — böyle olur. Bu da neden yalnızca üretim kodunu değil, üretim müşteri profillerini de yansıtan bir hazırlık ortamına ihtiyacınız olduğunun kanıtıdır.

Ne yapardım (veya yapmazdım)

Bugün 10.9.4 sürümüne geçin. Beklemek için bir sebep yok. Tek satırlık işlevsel değişiklik ve testler, veritabanı göçü yok, şema değişikliği yok, ertelemenin tek riski KDV muafiyetli müşterilere yanlış fatura kesmeye devam etmek. 10.9.0, 10.9.1, 10.9.2 veya 10.9.3 üzerindeyseniz 10.9.4 hepsinin yerine geçiyor.

Üretimde güncellemeden önce denetimi yapın. 23 Haziran ile 7 Temmuz arasında verilen ve müşterisi şu anda KDV muafiyetli olan ya da e-posta alan adı bir işletme KDV kaydıyla eşleşen siparişleri çıkarın. Blok Ödeme üzerinden verilen siparişlere filtreleyin. Alınan vergiyi, vergi kurallarının söylediği vergiyle karşılaştırın. Aralarında fark olan her sipariş, kısmi iade ve düzeltilmiş fatura adayıdır — ve evet, AB üye devletlerinin çoğunda yasal olarak yükümlülüğünüz sessizce farkı iade etmek değil, düzeltilmiş faturayı kesmektir. Türkiye’de de KDV mevzuatı aynı ilkeyi işletir.

Kod tarafında, set_is_vat_exempt(), set_password() veya set_calculated_shipping() çağıran bir eklenti ya da özel kod yönetiyorsanız, savunma amaçlı bir save() çağrısı ekleyin ve “önce setter, sonra bir yerlerde save” davranışının değeri kaydedeceğini varsaymayın. Doğru örüntü zaten bu yöndü; 10.9.0 kısa süreliğine kestirmeyi ödüllendirdi. Bundan sonrası için bu davranış üzerine kod yazmayın — düzeltme bilinçli olarak save() metodunun değişiklik olsun olmasın her seferinde yazmasını sağlıyor.

Sürüm yönetimi tarafında ise şu üst üste dördüncü haftadır Woo 10.9 üzerindeki bir müşteriye söyleyeceğim şey aynı: üretimi ana dalın bir nokta sürüm gerisinde tutun ve dalgalanmayı hazırlık ortamının emmesine izin verin. WooCommerce 11.0 sürümü 28 Temmuz’da varsayılan olarak ürün nesne önbelleklemesi ve Action Scheduler 4.0.0 ile geliyor — ikisi de anlamlı değişiklikler. Hazırlık denemesini 11.0 yayınlandıktan sonra değil, aday sürümü üzerinde yapın.

İyi haber şu ki bu iş çözüldü, test edildi ve küçük. Daha az iyi haber ise, son iki haftada Blok Ödeme üzerinden çalışan bir kurumsal mağazanız varsa, bakmanız gereken bazı faturalar var demektir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Close Search Window