XML Verisinde Eksik Barkod Sorunu Nasıl Yönetilir?
XML ürün verisinde barkod alanının boş olması her zaman ürünün gerçekten barkodsuz olduğu anlamına gelmez. Tedarikçi GTIN bilgisini farklı bir alanda gönderebilir, barkod aktarımı eksik olabilir, alan eşleştirmesi hatalı olabilir veya ürüne üretici tarafından gerçekten GTIN atanmamış olabilir. Bu rehber; eksik, boş, geçersiz ve gerçekten mevcut olmayan barkod durumlarının nasıl ayrılacağını, GTIN'in hangi kaynaklardan doğrulanabileceğini, barkod uydurmadan ürünlerin nasıl sınıflandırılacağını ve web sitesi ile satış kanallarında eksik barkodlu ürünlerin nasıl yönetilebileceğini ele alıyor.
Bir tedarikçi XML'inde ürün şu şekilde gelebilir:
Ürün adı: Çelik Cezve 12 No
SKU: CZV-125
Marka: X
Barkod: boş
İlk bakışta:
“Bu ürünün barkodu yok.”
denilebilir.
Fakat aslında yalnızca bildiğimiz şey:
XML'deki barkod alanında değer bulunmadığıdır.
Bunun birkaç farklı sebebi olabilir:
- ürüne gerçekten GTIN atanmamıştır,
- GTIN vardır fakat tedarikçi XML'e koymamıştır,
- GTIN başka bir XML alanındadır,
- barkod alanının mapping'i yanlıştır,
- varyant barkodu parent üründe aranıyordur,
- barkod tedarikçi sisteminde eksiktir,
- alan vardır fakat boş veya placeholder değer içeriyordur.
Dolayısıyla xml eksik barkod yönetiminde ilk yapılması gereken:
boş alanı gerçek ürün özelliği olarak yorumlamamak
olmalıdır.
Ulu İthalat'ın XML Bayilik yapısında ürün bilgilerinin XML üzerinden satış kanallarına aktarılabildiği belirtiliyor. Ürün kimliği gibi kritik alanların eksik veya yanlış yorumlanması ise yalnızca ürün kartını değil sonraki eşleştirme ve kanal süreçlerini de etkileyebilir.
XML'de Eksik Barkod Ne Demektir?
Eksik barkod için en az şu durumları ayırmalıyız:
1. Alan hiç yok
XML ürün kaydında barkod etiketi bulunmuyor.
2. Alan var ama boş
<barcode></barcode>
3. Placeholder değer var
NULL
N/A
-
gibi.
4. Değer var ancak GTIN değil
Örneğin tedarikçi dahili kodu olabilir.
5. GTIN gerçekten ürüne atanmamış
Bu gerçek bir “identifier yok” durumudur.
6. GTIN mevcut ancak XML kaynağı sağlamıyor
Bu bir veri eksikliği durumudur.
Bu altı senaryoyu:
barcode = null
şeklinde tek bir sonuçta birleştirmek doğru değildir.
1. Barkod ile GTIN'i Aynı Kavram Olarak Kullanmayın
Pratik e-ticaret dilinde “barkod” denildiğinde çoğu zaman ürünün üzerindeki sayısal kimlik kastedilir.
Teknik açıdan ise barkod:
veriyi taşıyan semboldür.
GTIN ise:
ticari ürünü tanımlayan kimlik numarasıdır.
Dolayısıyla XML'de:
barcode
adlı alanın bulunması bu alanın mutlaka doğru bir GTIN taşıdığı anlamına gelmez.
Alan anlamı doğrulanmalıdır.
2. Önce Tedarikçinin XML Alan Sözlüğünü Kontrol Edin
Örneğin tedarikçi şunları gönderiyor olabilir:
barcode
ean
gtin
product_code
sku
stock_code
Alanlardan hangisinin gerçekten GTIN olduğu belgelenmelidir.
Tahmin üzerinden mapping yapılmamalıdır.
3. barcode Boşken ean Alanında Değer Olabilir
Örneğin:
barcode = ""
ean = 869...
geliyor olabilir.
Sistem yalnızca:
barcode
etiketine bakarsa:
barkodsuz ürün
sonucu üretir.
Bu nedenle kaynak XML'deki bütün potansiyel kimlik alanları ilk entegrasyonda çıkarılmalıdır.
4. SKU'yu Barkod Alanına Taşımayın
Örneğin:
SKU: ABC-125
GTIN: eksik
olabilir.
Buradaki çözüm:
gtin = ABC-125
yapmak değildir.
SKU ve GTIN farklı kimlik sistemleridir.
SKU mağaza veya tedarikçinin kendi stok yönetim kodu olabilir.
5. Ürün ID'sini de GTIN Yerine Kullanmayın
Tedarikçi:
product_id = 58422
gönderiyor.
Bu yalnızca tedarikçi veri tabanındaki ürün kaydı olabilir.
Sayısal olması:
GTIN olduğu
anlamına gelmez.
6. Barkod Alanı Sayısal Görünüyor Diye GTIN Kabul Etmeyin
Örneğin:
123456
sayısal bir değerdir.
Ancak:
- ERP ID,
- stok kodu,
- iç referans
olabilir.
GTIN'in kaynağı ve formatı ayrıca doğrulanmalıdır.
7. Eksik Barkod Kontrolünü Ham XML Üzerinde Yapın
Sisteminizde barkod boş görünüyorsa önce kaynak XML kontrol edilmelidir.
Çünkü sorun:
tedarikçiden veri gelmemesi
değil,
mapping sırasında alanın kaybolması
olabilir.
8. Raw ve Normalize Barkod Değerlerini Ayrı Tutun
Örneğin:
raw_barcode: " 869... "
normalized_gtin: 869...
gibi.
Bu sayede sorun çıktığında tedarikçinin gerçekten ne gönderdiği görülebilir.
9. Baştaki Sıfırları Kaybetmeyin
GTIN benzeri kimlikleri sıradan tam sayı alanı gibi işlemek risklidir.
Örneğin:
0123456789012
sayısal tipe dönüştürüldüğünde:
123456789012
haline gelebilir.
Bu durumda aynı ürün başka sistemde farklı kimlik gibi görünür.
Kimlikler genellikle string olarak korunmalıdır.
10. Gereksiz Boşlukları Kontrollü Temizleyebilirsiniz
Örneğin:
" 869123... "
değerindeki baştaki ve sondaki whitespace temizlenebilir.
Ancak kimliğin içindeki gerçek karakterlerin rastgele değiştirilmesi güvenli değildir.
11. Tire veya Boşluk Görürseniz Önce Kaynağı Doğrulayın
Bazı sistemler GTIN değerini görsel formatta:
123 456 789...
gibi gösterebilir.
Ancak global:
bütün barkodlardan tüm karakterleri sil
kuralı kullanmadan önce alanın gerçekten GTIN olduğu doğrulanmalıdır.
12. GTIN Format Kontrolü Yapın
GS1 sistemi GTIN'in farklı yapılarda kullanılmasına izin verir; GTIN-8, GTIN-12, GTIN-13 ve GTIN-14 gibi yapılar vardır. Güncel GS1 General Specifications bu kimliklerin kullanımını tanımlar.
Ancak:
uzunluk doğru → ürün kimliği kesin doğru
sonucuna gidilmemelidir.
13. Check Digit Kontrolü Faydalıdır Ama Yeterli Değildir
Bir GTIN matematiksel kontrol basamağından geçebilir.
Bu yalnızca sayının yapısal açıdan olası bir GTIN olduğunu gösterebilir.
Şunları kanıtlamaz:
Bu GTIN gerçekten bu ürüne mi ait?
Üretici tarafından gerçekten atanmış mı?
Başka üründen kopyalanmış mı?
Bunlar ayrı doğrulamalardır.
14. Geçersiz Barkodu “Eksik”ten Ayrı Tutun
Örneğin:
MISSING_GTIN
hiç değer yok.
INVALID_GTIN_FORMAT
değer var ama format geçersiz.
GTIN_PRODUCT_MISMATCH
format geçerli fakat ürünle eşleşmesi şüpheli.
Bu üç problem aynı değildir.
15. Rastgele GTIN Üretmeyin
Bu 121'in en kritik kurallarından biridir.
Barkod alanı boş diye:
- rastgele sayı,
- kendi SKU'nuz,
- başka ürünün GTIN'i,
- internetten bulunan benzer ürün kodu
kullanılmamalıdır.
Google Merchant açık biçimde yalnızca doğru ürün tanımlayıcılarının gönderilmesini ve MPN/GTIN değerlerinin tahmin edilmemesini istiyor.
16. Başka Ürünün GTIN'ini Kopyalamayın
İki ürün:
aynı marka,
aynı ürün ailesi,
aynı görsel
olabilir.
Ancak farklı:
- renk,
- ölçü,
- paket,
- model
satılabilir ürünleri olabilir.
Bir ürünün GTIN'ini başka varyanta taşımak yanlış ürün eşleştirmelerine yol açabilir.
17. Aynı Model Ailesindeki Varyantların Kimliklerini Ayrı Kontrol Edin
Örneğin:
Siyah / S
Siyah / M
Beyaz / S
ayrı satılabilir varyantlarsa kimlik bilgileri ayrı değerlendirilebilir.
Tek parent barkodunun bütün varyantlara kopyalanması doğru olmayabilir.
18. Parent Üründe Barkod Olmaması Normal Olabilir
Bazı katalog modellerinde parent kayıt:
müşterinin satın aldığı gerçek bir SKU değildir.
Asıl barkodlar alt varyantlarda bulunabilir.
Bu durumda:
parent barcode missing
otomatik hata olmak zorunda değildir.
19. Varyantta Barkod Eksikliği Daha Farklı Değerlendirilmelidir
Parent üründe barkod yok.
Ama varyantlarda:
- S → GTIN A
- M → GTIN B
- L → boş
ise problem L varyantındadır.
Kontrol ürün ailesi yerine satılabilir SKU seviyesinde yapılmalıdır.
20. Tekli Ürün ile Koli GTIN'ini Karıştırmayın
Tekli ürün ile:
12'li koli
farklı ticari birimler olabilir.
Paket seviyelerinde farklı GTIN kullanılması mümkündür.
Dolayısıyla koli üzerindeki kodu:
tekli ürün barkodu
olarak kullanmak doğru olmayabilir.
21. Set ve Multipack Ürünleri Ayrı Kontrol Edin
Örneğin:
tek bardak
ve:
6'lı bardak seti
ticari olarak farklı ürün teklifleridir.
Setin GTIN'i varsa tek ürün GTIN'inden farklı olabilir.
Eksik barkodu benzer paketin koduyla tamamlamayın.
22. Barkod Gerçekten Yoksa Bunun Ayrı Statüsü Olmalıdır
Örneğin sistem:
GTIN_PRESENT
GTIN_MISSING
GTIN_NOT_ASSIGNED
GTIN_UNKNOWN
gibi durumlar tutabilir.
Özellikle:
MISSING
ile:
NOT_ASSIGNED
aynı şey değildir.
23. “GTIN Yok” Kararı Kanıtlanabilir Olmalıdır
Tedarikçi barkodu boş gönderdi diye:
GTIN_NOT_ASSIGNED
demek erken olabilir.
Önce mümkünse:
- tedarikçi bilgisi,
- üretici bilgisi,
- ürün ambalajı,
- marka/ürün kayıtları
kontrol edilmelidir.
24. Tedarikçiye Eksik Barkodları Toplu Raporlayın
Örneğin:
10.000 ürün
↓
1.250 barkod boş.
Bunları tek tek sormak yerine:
Supplier SKU
Product name
Brand
Model
Missing field
içeren rapor hazırlanabilir.
Tedarikçiden düzeltme talep edilebilir.
25. Eksik Barkod Oranını Tedarikçi Bazında Ölçün
Supplier A:
%2 eksik.
Supplier B:
%65 eksik.
Bu fark veri kalitesini değerlendirmede önemlidir.
Ancak yüksek eksik oranı tek başına tedarikçinin kötü olduğu anlamına gelmez; ürün grubunda GTIN kullanılmayan ürünler bulunabilir.
26. Kategori Bazında Eksik Barkod Oranına Bakın
Örneğin:
markalı elektronik ürünlerde %80 barkod eksikliği
daha dikkat çekici olabilir.
El yapımı/özel ürün grubunda ise eksik tanımlayıcı daha normal olabilir.
Bu yüzden bütün katalog tek oranla değerlendirilmemelidir.
27. Markalı Seri Ürünlerde Eksikliği Daha Yüksek Öncelikli İnceleyin
Ürün:
belirli bir marka,
belirli model
ve yaygın perakende ürünü ise GTIN bulunma ihtimali daha yüksek olabilir.
Bu yine GTIN'i tahmin etmek için değil:
araştırma önceliğini artırmak
içindir.
28. Markasız Ürünlerde Otomatik Barkod Uydurmayın
Ürün gerçekten markasız olabilir.
Barkodu da olmayabilir.
Bu durumda:
“sistem alanı boş kabul etmiyor, bir sayı yazalım”
yaklaşımı kullanılmamalıdır.
Ürünün kullanılacağı kanalın tanımlayıcı politikası uygulanmalıdır.
29. Google Merchant İçin identifier_exists Mantığını Doğru Kullanın
Google Merchant, benzersiz ürün tanımlayıcılarının gerçekten bulunmadığı ürünlerde identifier_exists değerinin no/false olarak gönderilebilmesini destekliyor. Ancak bu yalnızca ürüne tanımlayıcı atanmadığından emin olunduğunda kullanılmalıdır.
Dolayısıyla:
XML'de barkod boş → identifier_exists=false
otomatik kuralı doğru değildir.
30. GTIN Varsa identifier_exists=false Göndermeyin
Google, üründe benzersiz ürün kimliği bulunduğu halde identifier_exists alanının yanlış biçimde no/false gönderilmesinin uyarı veya onay sorunlarına yol açabileceğini belirtiyor.
Bu alan eksik veriyi gizlemek için kullanılmamalıdır.
31. GTIN Yoksa Marka + MPN Durumunu Kontrol Edin
Google'ın güncel ürün verisi şartlarında bazı ürünlerde GTIN yoksa üretici MPN'i ve marka bilgisi önemli hale gelebiliyor. MPN varsa yalnızca üretici tarafından atanmış doğru değer kullanılmalıdır.
Dolayısıyla:
GTIN yok → herhangi bir MPN oluştur
yaklaşımı da yanlış olur.
32. MPN ile Tedarikçi SKU'sunu Aynı Kabul Etmeyin
Tedarikçi SKU:
TED-5987
MPN:
OM-1016-0053
olabilir.
Birincisi tedarikçinin stok kodudur.
İkincisi üreticinin model/parça numarası olabilir.
GTIN eksikliğinde bunlar birbirinin yerine rastgele kullanılamaz.
33. MPN Kaynağını Ayrı Saklayın
Örneğin:
supplier_sku
manufacturer_part_number
ayrı tutulabilir.
Böylece dış kanala MPN gönderildiğinde gerçekten üretici numarası kullanıldığı bilinir.
34. Ürün Ambalajı Doğrulama Kaynağı Olabilir
Google'ın ürün tanımlayıcı yardımında, üründe barkod bulunuyorsa GTIN'in normalde ambalaj üzerinde bulunabileceği belirtiliyor.
Elinizde fiziksel ürün veya güvenilir ambalaj görseli varsa doğrulama için kullanılabilir.
Ancak bulanık görselden sayı tahmin edilmemelidir.
35. Üretici veya Marka Kaynağını Kontrol Edin
Tedarikçi barkodu göndermiyorsa ve ürün markalıysa:
- üretici kataloğu,
- resmi ürün sayfası,
- ürün teknik dokümanı
gibi birincil kaynaklar kullanılabilir.
Ama benzer isimdeki başka ürünün kodu alınmamalıdır.
36. GS1 Doğrulama Kaynaklarından Yararlanılabilir
Google da verilen GTIN'in sahiplik bilgisini kontrol etmek için GS1 kaynaklarına başvurulmasını öneriyor.
Bu, özellikle internetten bulunan bir kodun gerçekten ilgili marka/ürünle ilişkili olup olmadığını kontrol etmek için değerlidir.
37. İnternette Tek Bir Satıcının Yazdığı Barkodu Kesin Kaynak Saymayın
Başka e-ticaret sitesi:
barkod: X
yazmış olabilir.
Bu değer yanlış olabilir.
Aynı ürünün:
- eski modeli,
- başka rengi,
- başka paket miktarı
olabilir.
Doğrulanmadan XML'e aktarılmamalıdır.
38. Birden Fazla Güvenilir Kaynak Çelişiyorsa Otomatik Karar Vermeyin
Tedarikçi:
GTIN A
üretici:
GTIN B
gösteriyor olabilir.
Bu durumda:
hangisi daha sık geçiyor?
diye çoğunluk oylaması yapmak yerine:
GTIN_CONFLICT
oluşturmak daha güvenlidir.
39. Eksik Barkodu Ürün Adından Tahmin Etmeyin
Başlık:
ABC 8691234567890 Cezve
şeklinde olabilir.
Sayısal dizi gerçekten GTIN olabilir.
Ancak otomatik çıkarılmadan önce:
- alan bağlamı,
- format,
- ürün eşleşmesi
doğrulanmalıdır.
Başlıktaki her uzun sayı barkod değildir.
40. Açıklamadan Barkod Çıkarma İşlemine Daha Düşük Güven Verin
Açıklamada:
869... barkodlu ürünlerle uyumludur
yazabilir.
Bu sayı ürünün kendi barkodu olmayabilir.
Dolayısıyla serbest metinden çıkarılan kimlikler yapılandırılmış üretici alanından daha düşük güvenli kabul edilmelidir.
41. Görselden Barkod Okumayı Birincil Sistem Yapmayın
Ürün ambalajında barkod görünüyorsa yardımcı doğrulama yapılabilir.
Ancak:
- düşük çözünürlük,
- perspektif,
- yanlış varyant görseli
nedeniyle otomatik okuma hatalı olabilir.
Yüksek hacimli feed düzeltmesini yalnızca görsel okumaya bağlamak güvenli değildir.
42. Barkodun Ürünle Eşleşmesini Marka ve Modelle Kontrol Edin
Bulunan GTIN:
marka X
ile ilişkili.
Ürün:
marka Y
ise çelişki vardır.
Benzer biçimde model veya varyant uyuşmazsa kayıt manuel incelemeye alınabilir.
43. Aynı GTIN Birden Fazla Mağaza Ürününde Görünüyorsa Kontrol Edin
Bu her zaman hata değildir; aynı fiziksel ürün birden fazla kayıt nedeniyle duplicate olmuş olabilir.
Ancak:
aynı GTIN
↓
iki farklı model
durumu daha ciddi bir kimlik çatışmasıdır.
44. Eksik GTIN Kontrolü Duplicate Ürün Tespitiyle Bağlantılıdır
GTIN yoksa sistem aynı ürünü:
- isim,
- model,
- marka,
- görsel
üzerinden daha düşük güvenle eşleştirmek zorunda kalabilir.
Bu nedenle eksik barkod doğrudan duplicate üretmez; fakat ürün eşleştirme güvenini azaltabilir.
45. Eksik Barkodlu Ürünü Otomatik Duplicate Saymayın
İki ürünün ikisinde de barkod yok.
Bu:
aynı ürün
olduklarını göstermez.
GTIN eksikliği yalnızca kimlik sinyallerinden birinin bulunmadığını gösterir.
46. SKU Eşleştirmesini Barkod Eksikliğinden Bağımsız Koruyun
Ürün:
barkodsuz olabilir.
Ama:
supplier_product_id
ve:
supplier_sku
üzerinden mevcut mağaza ürününe güvenilir mapping bulunabilir.
Barkod eksikliği bütün entegrasyonu kimliksiz hale getirmemelidir.
47. Daha Önceden Doğrulanmış Barkodu XML Boş Geldi Diye Silmeyin
Bu çok önemli.
Dün:
verified_gtin = X
vardı.
Bugün XML:
barcode = boş
geldi.
Sistem:
X → null
yapmamalıdır; tabii kaynak politikası özellikle böyle tanımlanmamışsa.
Yeni boş değer ile daha önce doğrulanmış değer ayrı değerlendirilmelidir.
48. “Boş Kaynak Değer Mevcut Değeri Ezer mi?” Politikasını Belirleyin
Örneğin:
Barkod boş
→ mevcut doğrulanmış GTIN korunabilir.
Tedarikçi açıkça GTIN'in hatalı olduğunu bildiriyor
→ review gerekebilir.
Bu davranış alan bazında belirlenmelidir.
49. Alan Kaynağını Kaydedin
Örneğin:
gtin_source = supplier_xml
gtin_source = manufacturer
gtin_source = manual_verified
gibi.
Böylece yeni XML değeri geldiğinde hangi kaynağın daha güvenilir olduğu değerlendirilebilir.
50. Doğrulama Seviyesi Tutabilirsiniz
Örneğin:
UNVERIFIED
Bir kaynaktan geldi.
FORMAT_VALID
Yapısal kontrolden geçti.
SOURCE_VERIFIED
Güvenilir üretici/GS1 kaynağıyla kontrol edildi.
CONFLICT
Kaynaklar uyuşmuyor.
Bu model barkodun sadece dolu/boş olarak değerlendirilmesini önler.
51. Eksik Barkod İçin Review Kuyruğu Oluşturun
Örneğin:
yüksek öncelik
markalı + model belli + GTIN eksik.
orta öncelik
barkod boş fakat MPN mevcut.
düşük öncelik
gerçekten tanımlayıcısız özel ürün.
Bu, manuel çalışma yükünü önceliklendirebilir.
52. Her Eksik Barkod Ürününü Manuel Araştırmak Zorunda Değilsiniz
10.000 ürünün:
3.000'inde barkod yoksa önce segmentasyon yapılabilir.
Örneğin:
- markalı ürün,
- markasız ürün,
- model kodlu ürün,
- özel üretim,
- kategori bazlı
ayrılır.
En fazla ticari ve kanal riski taşıyanlar önce ele alınabilir.
53. Eksik Barkod Oranını Raporlayın
Örneğin:
Toplam ürün: 10.000
GTIN dolu: 7.800
GTIN eksik: 2.200
Gerçekten GTIN yok olarak doğrulanan: 500
Araştırma gerekli: 1.700
Bu rapor:
“%22 barkod eksik”
ifadesinden çok daha kullanışlıdır.
54. Missing ve Not Assigned Oranlarını Ayrı Ölçün
Örneğin:
MISSING_FROM_SOURCE
tedarikçi vermedi.
NOT_ASSIGNED
ürüne gerçekten GTIN verilmemiş.
İki grubun çözümü tamamen farklıdır.
55. Yeni XML Sürümünde Toplu Barkod Kaybını İzleyin
Dün:
8.000 GTIN dolu.
Bugün:
300 GTIN dolu.
Bu muhtemelen:
7.700 ürünün GTIN'i bir gecede ortadan kalktı
anlamına gelmez.
Olası:
- XML alan adı değişti,
- mapping bozuldu,
- export problemi oluştu.
Toplu değişim alarm üretmelidir.
56. Barkod Alan Adı Değişikliğini Tespit Edin
Tedarikçi dün:
barcode
kullanıyordu.
Bugün:
ean_code
kullanıyor.
Eski parser:
bütün barkodlar boş
diyebilir.
Bu yüzden schema/alan değişiklikleri özellikle izlenmelidir.
57. Barkod Sayısındaki Ani Düşüş İçin Circuit Breaker Kullanılabilir
Örneğin normalde katalogun büyük kısmında GTIN bulunuyor.
Bir senkronizasyonda:
binlerce barkod null yapılacak
ise güncelleme otomatik durdurulup incelenebilir.
Eşik katalog davranışına göre belirlenmelidir.
58. Eksik Barkodların Mevcut Doğru GTIN'leri Silmesine İzin Vermeyin
Toplu source problemi:
barcode=""
gönderiyor.
Store database'deki doğrulanmış değerlerin tamamı silinirse dış kanallarda da veri kaybı yaşanabilir.
Bu nedenle update policy:
empty source → overwrite?
sorusunu açıkça cevaplamalıdır.
59. Barkod Değişikliklerini Fiyat Değişikliği Gibi Görmeyin
Fiyat:
100 → 110
normaldir.
Barkod:
GTIN A → GTIN B
daha ciddi kimlik değişimidir.
Bu:
- ürün değişikliği,
- varyant değişikliği,
- yanlış mapping
olabilir.
60. Mevcut GTIN Değişirse Otomatik Onay Vermeyin
Özellikle doğrulanmış GTIN:
X
iken yeni XML:
Y
gönderiyorsa:
GTIN_CHANGED
alarmı üretilebilir.
Yeni değerin gerçekten aynı ürünün güncel kimliği olduğu doğrulanmalıdır.
61. Eksik Barkod ile Değişmiş Barkodu Ayrı Hata Sınıfları Yapın
Örneğin:
GTIN_MISSING
GTIN_INVALID
GTIN_CHANGED
GTIN_DUPLICATED
GTIN_CONFLICT
GTIN_NOT_ASSIGNED
farklı aksiyonlar gerektirir.
62. Hata Loguna Ürün Kimliğini Ekleyin
Örneğin:
Supplier: A
Supplier SKU: ABC125
Store SKU: ULU500
Barcode raw: boş
GTIN state: MISSING_FROM_SOURCE
Previous verified GTIN: mevcut
Action: KEEP_VERIFIED_VALUE
gibi.
Bu çok daha izlenebilir bir sistemdir.
63. Eksik Barkod Ürünün Web Sitesinde Yayınlanmasını Her Zaman Engellemek Zorunda Değildir
Kendi mağazanızın ürün oluşturmak için barkod zorunluluğu olmayabilir.
Ürün:
- SKU,
- ad,
- fiyat,
- stok
ile satılabilir.
Dolayısıyla:
barkod eksik → ürün tamamen sil
evrensel kural değildir.
64. “Store Ready” ile “Channel Ready” Ayrımı Kullanın
Örneğin:
STORE_READY = yes
Ürün kendi sitenizde satılabilir.
CHANNEL_X_READY = no
Belirli satış kanalının ürün tanımlayıcı gereksinimi tamamlanmamış.
Bu yapı eksik barkodlu ürünlerin tamamını katalogdan çıkarmadan kanal kurallarını uygulamanızı sağlar.
65. Kanal Bazlı Barkod Gereksinimini Ayrı Tanımlayın
Her platformun ürün kimliği şartları aynı değildir.
Bu nedenle:
global required barcode
yerine:
channel requirement matrix
oluşturulabilir.
66. Google Merchant Gereksinimini Ayrı Uygulayın
Google'ın mevcut ürün spesifikasyonunda GTIN'in zorunluluğu ürünün tanımlayıcı durumuna bağlıdır ve mevcutsa doğru biçimde gönderilmesi kuvvetle önerilir/gerekli olabilir; GTIN bulunmayan ürünlerde marka, MPN ve identifier_exists kuralları devreye girer.
Bu nedenle kendi XML veri modeliniz:
Google'ın alanlarını doğrudan ana katalog şemanız sanmamalıdır.
67. Gerçekten Tanımlayıcısız Ürünleri Ayrı Grup Yapın
Örneğin:
- özel imalat,
- türünün tek örneği,
- bazı vintage ürünler
benzersiz ürün tanımlayıcısına sahip olmayabilir.
Google da bu tür ürünler için identifier bulunmaması senaryolarını açıkça destekliyor.
68. “Markasız” ile “Barkodsuz” Aynı Şey Değildir
Markasız ürünün GTIN'i olabilir.
Markalı ürünün XML'de GTIN'i eksik olabilir.
Dolayısıyla:
brand empty → GTIN yok
veya:
brand present → GTIN kesin vardır
gibi kurallar kurulamaz.
69. “MPN Yok” ile “GTIN Yok” da Aynı Değildir
Üründe:
GTIN var,
MPN yok
olabilir.
Veya:
MPN + marka var,
GTIN atanmadı
olabilir.
Her identifier alanının durumu ayrı tutulmalıdır.
70. Eksik Barkod Sorununu Ürün Veri Kalitesi Puanına Dahil Edebilirsiniz
Örneğin:
kimlik kalitesi:
GTIN verified
yüksek puan.
GTIN missing but confirmed not assigned
normal.
GTIN missing and expected
review.
Ancak tek başına barkod boşluğu bütün ürünün kalitesiz olduğu sonucunu doğurmamalıdır.
71. Barkod Eksikliği Ürün Kimliği Güven Skorunu Düşürebilir
Supplier-to-catalog eşleştirmede:
- SKU,
- model,
- marka,
- GTIN
birlikte kullanılabilir.
GTIN eksikse diğer sinyallere daha fazla ihtiyaç duyulabilir.
121 bu riski açıklamalı ancak doğrudan ürün eşleştirme rehberine dönüşmemelidir.
72. Eksik Barkodu Manuel Tamamladıktan Sonra Kaynağını Kaydedin
Örneğin:
GTIN: X
Source: manufacturer website
Verified by: operator
Date: ...
gibi.
Sonraki XML senkronizasyonunda tedarikçi boş gönderdiğinde değer neden korunduğu anlaşılır.
73. Manuel Girilen Barkodu XML'in Otomatik Olarak Silmesini Engelleyin
Örneğin:
gtin_source = manual_verified
ise source XML boş geldiğinde:
overwrite = false
kuralı kullanılabilir.
Ama tedarikçi yeni ve doğrulanmış farklı değer gönderirse review gerekebilir.
74. Alan Öncelik Sırası Oluşturabilirsiniz
Örneğin yalnızca örnek olarak:
verified manufacturer source
↓
verified supplier source
↓
manual verified
↓
unverified supplier field
gibi güven sırası oluşturulabilir.
Gerçek öncelik işletmenin veri yönetim politikasına bağlıdır.
75. GTIN Değeri İçin Değişiklik Geçmişi Tutun
Örneğin:
1 Ağustos → boş
5 Ağustos → X
20 Ağustos → XML boş
23 Ağustos → X korundu
gibi.
Bu geçmiş kimlik alanı problemlerinde oldukça faydalıdır.
76. Eksik Barkod Temizliği İçin Toplu Otomasyon Öncesi Dry-Run Yapın
Örneğin:
10.000 ürün:
No action: 7.000
Existing verified GTIN preserved: 1.000
Supplier GTIN recovered from alternate field: 500
Needs review: 1.200
Confirmed no identifier: 300
gibi bir çıktı oluşturulabilir.
77. Yeni Mapping'i Önce Küçük Ürün Grubunda Test Edin
Örneğin tedarikçinin:
ean_no
alanının GTIN olduğuna karar verildi.
Önce 50–100 farklı ürün üzerinde:
- ürün,
- marka,
- model,
- varyant,
- ambalaj
karşılaştırması yapılabilir.
Sonra bütün kataloğa uygulanabilir.
78. Barkod Kurtarma Kuralının Yanlış Ürünleri Doldurmadığını Kontrol Edin
Örneğin script:
başlıktaki 13 haneli bütün sayıları GTIN kabul ediyor.
Pilot testte bunun:
- model numarası,
- katalog numarası,
- başka ürün referansı
olduğu görülebilir.
Bu nedenle yüksek hacimli otomasyon mutlaka dry-run ile doğrulanmalıdır.
79. Feed Testine Barkod Senaryolarını Ekleyin
Yayın öncesi test setinde:
- geçerli GTIN,
- boş GTIN,
- missing field,
- invalid length,
- leading zero,
- değişmiş GTIN,
- duplicate GTIN,
- parent boş/varyant dolu,
- gerçek identifier yok
senaryoları bulunabilir.
80. Eksik Barkod Yönetimini Ölçün
Takip edilebilecek metrikler:
- GTIN doluluk oranı,
- doğrulanmış GTIN oranı,
- kaynaktan eksik GTIN,
- gerçekten identifier olmayan ürün,
- invalid GTIN sayısı,
- duplicate GTIN sayısı,
- conflict sayısı,
- manuel tamamlanan GTIN,
- sonradan tedarikçiden düzeltilen GTIN,
- kanala gönderilemeyen ürün sayısı.
Amaç:
%100 barkod doluluğu
değil,
%100 mümkün olduğunca doğru kimlik verisi
olmalıdır.
XML EKSİK BARKOD KONTROL LİSTESİ
Alan mevcut mu?
XML'de barkod/GTIN etiketi gerçekten bulunuyor mu?
Alan boş mu?
Boş değer ile missing field ayrılıyor mu?
Alternatif alan
EAN veya GTIN başka etikette olabilir mi?
Alan anlamı
barcode gerçekten GTIN mi?
SKU
GTIN yerine yanlışlıkla SKU mu kullanılıyor?
Ürün ID
Dahili ID barkod sanılıyor mu?
Raw değer
Kaynak bilgi korunuyor mu?
Leading zero
Baştaki sıfırlar kayboluyor mu?
Format
Değer GTIN formatına uygun mu?
Check digit
Yapısal kontrol yapılıyor mu?
Ürün doğrulaması
Format doğru olsa da doğru ürüne ait mi?
Marka
GTIN marka ile uyumlu mu?
Model
Doğru model/varyant mı?
Parent
Barkod alt varyantta mı?
Paket
Tekli/koli/set seviyesi doğru mu?
Kaynak
Tedarikçi, üretici veya manuel doğrulama kaynağı biliniyor mu?
Mevcut değer
Yeni XML boş geldiğinde doğrulanmış eski GTIN korunuyor mu?
Toplu kayıp
Barkod doluluk oranı aniden düşüyor mu?
Field rename
XML alan adı değişmiş olabilir mi?
Duplicate
Aynı GTIN farklı ürünlerde kullanılıyor mu?
Conflict
Birden fazla kaynak farklı GTIN mi söylüyor?
Identifier yok
Gerçekten GTIN atanmamış mı?
MPN
Üretici MPN'i varsa doğru alanda mı?
Kanal
Hedef platformun identifier şartı ne?
identifier_exists yalnızca doğru durumda mı kullanılıyor?
Log
Eski/yeni değer ve işlem nedeni görülebiliyor mu?
Dry-run
Toplu değişiklik canlıdan önce kontrol ediliyor mu?
XML'DE EKSİK BARKOD SORUNU NASIL YÖNETİLİR?
Pratik uygulama sırası şöyle kurulabilir:
1. XML'deki bütün ürün kimliği alanlarını çıkarın.
2. Hangi alanın gerçekten barkod/GTIN olduğunu tedarikçiden doğrulayın.
3. Missing, empty, invalid ve not-assigned durumlarını ayırın.
4. Ham barkod değerini değiştirmeden saklayın.
5. GTIN değerlerini string olarak işleyerek baştaki sıfırları koruyun.
6. Format ve kontrol basamağı gibi temel yapısal doğrulamaları uygulayın.
7. Yapısal olarak geçerli değerin doğru ürünle eşleştiğini ayrıca doğrulayın.
8. SKU, supplier ID ve MPN'i GTIN alanına taşımayın.
9. Parent ve varyant barkodlarını doğru seviyede kontrol edin.
10. Tekli, set ve koli kimliklerini birbirine karıştırmayın.
11. Alternatif XML alanlarında GTIN bulunup bulunmadığını kontrol edin.
12. Mevcut doğrulanmış GTIN'i yeni boş XML değeriyle otomatik silmeyin.
13. Markalı/modeli belli ürünlerde eksik GTIN'i araştırma kuyruğuna alın.
14. Gerçekten tanımlayıcı bulunmayan ürünleri ayrıca işaretleyin.
15. Google ve diğer kanalların identifier kurallarını ayrı uygulayın.
16. Eksik barkodu rastgele sayı veya başka ürünün GTIN'iyle doldurmayın.
17. Toplu GTIN kaybı için mapping/schema alarmı oluşturun.
18. Önce 50–100 farklı ürün üzerinde barkod kurtarma ve mapping kurallarını test edin.
19. GTIN kaynağını, doğrulama durumunu ve değişiklik geçmişini loglayın.
20. Sonuçlar doğrulandıktan sonra ilgili ürünleri kanal bazında yayına hazır hale getirin.
SIK SORULAN SORULAR
XML'de barkod boşsa ürünün barkodu yok diyebilir miyim?
Hayır. Yalnızca XML'in kullandığınız alanında barkod değeri bulunmadığını söyleyebilirsiniz. Ürüne üretici tarafından GTIN atanmış ancak tedarikçi XML'inde eksik olabilir veya bilgi başka alanda bulunabilir. Gerçek “GTIN yok” durumu ayrıca doğrulanmalıdır.
Eksik barkod yerine kendi SKU'mu yazabilir miyim?
GTIN alanına hayır. SKU ve GTIN farklı kimliklerdir. Kendi SKU'nuzu mağaza içi ürün takibi için kullanabilirsiniz fakat bunu üretici tarafından atanmış GTIN gibi sunmak doğru değildir.
Barkodu olmayan ürünü web sitemde satabilir miyim?
Kendi mağazanızın teknik ve yasal ürün veri gereksinimleri izin veriyorsa barkod her ürün için zorunlu olmayabilir. Ancak ürünün gönderileceği pazaryeri veya ürün feed'inin benzersiz ürün tanımlayıcı kuralları ayrıca kontrol edilmelidir. Örneğin Google Merchant bazı ürünlerde GTIN, bazılarında marka + MPN veya gerçekten tanımlayıcı bulunmadığında identifier_exists mantığını kullanır.
Google Merchant'ta GTIN yoksa identifier_exists=false yazmak yeterli mi?
Yalnızca ürünün gerçekten atanmış benzersiz ürün tanımlayıcılarına sahip olmadığından eminseniz kullanılmalıdır. Google, üründe aslında tanımlayıcı bulunduğu halde false gönderilmesinin sorun oluşturabileceğini açıkça belirtiyor.
İnternetten aynı ürünün barkodunu bulup XML'e ekleyebilir miyim?
Yalnızca ürünün aynı model, varyant ve paket seviyesi olduğundan ve kodun güvenilir bir kaynaktan doğrulandığından emin olunmalıdır. Benzer görünen üründen barkod kopyalamak yanlış GTIN kullanımına yol açabilir. Google da yalnızca doğru ve üretici tarafından atanmış GTIN'lerin kullanılmasını istiyor.
EKSİK BARKOD PROBLEMİNİN ÇÖZÜMÜ “BOŞ ALANI DOLDURMAK” DEĞİL, ÜRÜNÜN GERÇEK KİMLİK DURUMUNU BELİRLEMEKTİR
121'in en önemli mesajı budur.
Yanlış yaklaşım:
barcode boş
↓
SKU'yu barcode alanına koy
veya:
rastgele 13 haneli sayı üret
şeklindedir.
Daha kontrollü sistem:
barkod alanı boş
↓
alan gerçekten GTIN alanı mı?
↓
başka source alanında GTIN var mı?
↓
daha önce doğrulanmış GTIN var mı?
↓
ürüne üretici tarafından GTIN atanmış mı?
↓
marka/model/varyant doğru mu?
↓
paket seviyesi doğru mu?
↓
GTIN bulunursa doğrula ve kaynağı kaydet
↓
gerçekten tanımlayıcı yoksa bunu ayrı statüde tut
↓
hedef kanalın kurallarını uygula
şeklinde ilerlemelidir.
Örneğin:
Durum A
XML barkod boş.
Üreticinin resmi kaynağında aynı model için doğrulanmış GTIN var.
→ Eksik tedarikçi verisi.
Durum B
XML barkod boş.
Ürün özel imalat ve üretici GTIN atamamış.
→ Gerçek identifier yok durumu olabilir.
Durum C
XML barkod boş.
Mağazada daha önce doğrulanmış GTIN var.
→ Yeni boş XML değeri mevcut doğru veriyi otomatik silmemeli.
Durum D
XML'de 13 haneli sayı var.
Ancak farklı ürünün GTIN'i olduğu anlaşılıyor.
→ Eksik değil; yanlış identifier problemi.
Durum E
Parent ürün barkodsuz.
Her varyantın kendi GTIN'i mevcut.
→ Parent seviyesindeki boşluk hata olmak zorunda değil.
İşte 121 numaranın özgün değeri bu karar sistemidir.