Skip to content
blog.mertsabribayhan.com
TR
Back to feed

WooCommerce’ta Kargo Etiketini Yeniden Basarken Mükerrer Gönderiyi Önlemek

Etiketi yeniden yazdırma işlemini yeni gönderi oluşturmaktan ayıran güvenli ve izlenebilir bir WooCommerce akışı.

Mert Sabri Bayhan✓4 min read
WooCommerce sipariş ekranı, kargo etiketi ve masaüstü etiket yazıcısını temsil eden çalışma alanı

WooCommerce’ta Kargo Etiketini Yeniden Basarken Mükerrer Gönderiyi Önlemek

WooCommerce siparişlerinde kargo etiketi bazen tekrar basılmak zorunda kalabilir. İlk çıktı okunaksız olabilir, etiket zarar görebilir veya yazıcı işlemi tamamlamayabilir. Ancak “yeniden yazdır” komutu, kargo entegrasyonunda yeni bir gönderi oluşturma isteğiyle aynı akışa bağlanmışsa tek paket için birden fazla gönderi kaydı açılabilir.

Bu sorunu önlemenin temel yolu, kargo servisinde gönderi oluşturma işlemi ile daha önce oluşturulmuş etiketi yazdırma işlemini birbirinden ayırmaktır. Güvenli bir WooCommerce akışı; gönderinin kimliğini, mevcut durumunu ve daha önce üretilen etiket dosyasını dikkate almalıdır.

Yeniden yazdırma neden yeni gönderi değildir?

Gönderi oluşturmak, sipariş ve teslimat bilgilerinin kargo servisine iletilerek yeni bir taşıma kaydı açılmasıdır. Etiket yazdırmak ise bu kayda ait belgenin yazıcıya gönderilmesidir. Kullanıcı açısından art arda gerçekleşebilen bu adımlar, sistem açısından farklı sonuçlara sahiptir.

Tek bir düğmenin her kullanımda önce gönderi oluşturup ardından etiketi yazdırması risklidir. İlk denemede etiket yazıcıdan çıkmasa bile gönderi kargo sisteminde açılmış olabilir. Kullanıcı düğmeye yeniden bastığında ikinci bir kayıt oluşabilir.

Bu nedenle yönetim ekranında eylemler açık biçimde ayrılmalıdır:

  • Yeni gönderi oluştur: Kargo servisinde yeni kayıt açar.
  • Etiketi yazdır: Mevcut gönderinin etiketini kullanır.
  • Etiketi yeniden yazdır: Yeni gönderi oluşturmadan aynı belgeyi tekrar yazdırır.
  • Gönderiyi iptal et: Mevcut kaydı iptal sürecine taşır.

Eylem adlarının sonucu tarif etmesi, operasyon sırasında yanlış seçimi de azaltır.

Sipariş numarası yerine gönderi kimliğini izlemek

WooCommerce sipariş numarası, kargo kaydını tek başına tanımlamak için yeterli olmayabilir. Bir sipariş farklı paketlere bölünebilir; ürünler ayrı depolardan çıkabilir veya iptal edilen bir paketin yerine yenisi hazırlanabilir. Böyle bir durumda aynı siparişe bağlı birden fazla geçerli gönderi bulunabilir.

Her gönderi için ayrı ve kalıcı bir kimlik saklanmalıdır. Bu kayıt en azından ilgili WooCommerce siparişini, paket ayrımını, kargo servisinden dönen gönderi kimliğini ve etiket dosyasının konumunu ilişkilendirmelidir.

Yeniden basma işlemi sipariş numarasından hareketle yeni kayıt aramak yerine doğrudan seçilen paketin gönderi kimliğini kullanmalıdır. Böylece hangi etiketin yeniden basıldığı belirsiz kalmaz.

Etiket durumlarını açık biçimde modellemek

Yalnızca “etiket var” veya “etiket yok” bilgisi, sorunlu işlemleri yönetmek için sınırlı kalır. Gönderi ve çıktı sürecinin aşamaları ayrı durumlarla gösterilebilir:

  • Oluşturulmadı: Kargo servisinde henüz gönderi kaydı yoktur.
  • Oluşturuldu: Gönderi kimliği alınmıştır ancak çıktı durumu kesin değildir.
  • Yazdırıldı: Etiket yazdırma komutu verilmiştir.
  • Yeniden yazdırıldı: Mevcut etiket tekrar kullanılmıştır.
  • İptal edildi: Gönderi artık yeniden basma için uygun değildir.
  • Kontrol gerekli: İstek sonucu doğrulanamamıştır.

“Yazdırıldı” durumu, fiziksel çıktının kesin olarak teslim alındığı anlamına gelmeyebilir. Bu nedenle yönetim ekranında işlem zamanı ve ilgili gönderi kimliği de görünür tutulmalıdır.

Yeniden basma akışına koruyucu kontroller eklemek

Yeniden yazdırma komutu çalıştırılmadan önce sistem şu sırayı izleyebilir:

1. Seçilen pakete ait gönderi kimliğinin bulunup bulunmadığını kontrol eder. 2. Gönderinin iptal edilmiş veya geçersiz durumda olmadığını doğrular. 3. Daha önce kaydedilmiş etiket dosyasını arar. 4. Dosya mevcutsa yeni gönderi oluşturmadan yazdırma işlemini başlatır. 5. Dosya yoksa mevcut gönderi kimliği üzerinden etiketi yeniden istemeyi dener. 6. Yeni gönderi açılması gerekiyorsa bunu ayrı bir eylem ve açık bir onay olarak sunar.

Ayrıca işlem sürerken düğmenin geçici olarak devre dışı bırakılması, çift tıklamanın aynı isteği peş peşe göndermesini önlemeye yardımcı olur. Aynı gönderi için devam eden bir işlem varsa ikinci isteğin reddedilmesi de ek bir koruma sağlar.

Hata ve zaman aşımında güvenli davranmak

Kargo servisinden zamanında yanıt gelmemesi, işlemin başarısız olduğu anlamına gelmez. İstek karşı tarafa ulaşmış, gönderi oluşturulmuş ancak yanıt WooCommerce’a dönememiş olabilir. Böyle bir durumda oluşturma isteğini doğrudan tekrarlamak mükerrer kayda yol açabilir.

Daha güvenli yaklaşım, işlemi “kontrol gerekli” durumuna almak ve önce mevcut kaydı sorgulamaktır. Kargo servisinde gönderi bulunduğu doğrulanırsa alınan kimlik WooCommerce kaydına eklenebilir. Kayıt bulunmadığı kesinleşmeden yeni oluşturma isteği gönderilmemelidir.

Yayına almadan önce sınanacak senaryolar

Akış yalnızca sorunsuz bir sipariş üzerinden değil, hata ihtimalleriyle birlikte test edilmelidir:

  • Gönderi oluşturma düğmesine çift tıklanması
  • İstek sürerken sayfanın yenilenmesi
  • Etiket yazıcısının kapalı veya erişilemez olması
  • Etiket dosyasının oluşturulup yazdırılamaması
  • Zaman aşımından sonra işlemin yeniden denenmesi
  • İptal edilmiş gönderinin etiketinin açılması
  • Tek sipariş içinde birden fazla paketin bulunması
  • Eski etiket dosyasının eksik olması
  • Aynı yönetim ekranını iki kullanıcının eş zamanlı açması

Kargo etiketi yeniden basma işlemi küçük bir özellik gibi görünse de gönderi oluşturma sürecinden ayrılmadığında operasyonel belirsizlik yaratabilir. Kalıcı gönderi kimliği, anlaşılır durumlar ve doğrulama adımlarıyla kurulan akış; kullanıcıya ihtiyaç duyduğu etiketi tekrar verirken aynı gönderinin yanlışlıkla ikinci kez oluşturulmasını önler.

JOURNAL / COMMUNITY

Join the conversation.

Your reply appears after review. No email or account is required.

Rate this post.

Notifications

No new notifications for now.

Find an idea.