# Veri Şifreleme Formatı ve Testi


Aşağıdaki tabloda, Satış Verisi’ndeki alanların hangilerinin zorunlu olduğu ve hangilerinin şifrelenmesi (hash) gerektiği bilgisi örnekleri ile birlikte yer almaktadır.

# Alanlar Tablosu

Column Name Description Mandatory Needs to be Hashed Example
Email - Include a domain name for all email addresses
- Remove spaces
- All lowercase letters
Strongly recommended Y user1@gmail.com
user2@yahoo.com
First Name - Lowercase, accents allowed
- Remove unnecessary spaces
Optional Y şükran, çağrı, mehmet ali
Last Name - Lowercase, accents allowed
- Remove unnecessary spaces
Optional Y yılmaz, şahin yıldız
Gender f/m tek harf Optional Y f, m
City Lowercase, accents allowed Optional N istanbul, paris
State 2-letter US / district for TR Optional N TR, CA, NY
Zip US/International zip formats Optional N 06420, 94109
Country ISO two-letter country code Required N TR, US, DE
Phone Number E.164 format (+cc) Strongly recommended Y +90555112233
Conversion Name Name of conversion action Required N Store Sales
Conversion Time yyyy-MM-dd HH:mm:ss+z Required N 2023-08-14T13:00:00+0300
Conversion Value Numeric (no symbols) Required N 100, 99.90
Conversion Currency 3-char ISO 4217 Required N TRY, USD, EUR
Order Id Unique ID for each transaction Optional N ATN10001, 123456
Store Code ERP/store code Optional N A1234, Shop77
Contents Products in transaction Optional N -
Contents_ID_# Unique product ID Conditionally required N product123
Contents_Quantity_# Quantity of item sold Conditionally required N 1, 10
Contents_Price_# Price per item Conditionally required N 100, 99.90
Contents_Category_# Category of item Optional N Shoes
Contents_Brand_# Brand name of item Optional N Nike

# Kontrol Listesi

İlgili veri ekibinizin, veri hash’lemenin doğru yapıldığını teyit etmesi gerekir. Önerilen kontrol:

  1. Ham değerleri normalize edin.

    • E-posta: küçük harf, boşluksuz, geçerli bir posta adresi olmalı
      • uSeR1@GMAIL.COM user1@gmail.com
    • Telefon: E.164 formatı, boşluk/tire yok, ülke kodu ile başlamalı
      • 0535 123 45 67+905351234567
      • (535) 123 45 67+905351234567
    • İsimler: küçük harf, gereksiz boşlukları silin, aksan korunur
      • Mehmet Alimehmet ali
      • Şükran şükran
      • YILMAZyılmaz
      • VELİveli
    • Cinsiyet: f/m tek harf
      • Femalef
      • Kadınf
      • erkekm
  2. SHA-256 ile hash’leyin.

    • UTF-8 girdi
    • salt/HMAC yok
    • Çıktı: 64 karakterlik küçük harf hex
  3. Örnek çift karşılaştırması

    • Ham: user1@gmail.com → Hash: b45c... (64 karakter)
    • Ham: +90555112233 → Hash: 0a3e...
  4. CSV karşılaştırması

    • non-hashed.csv içindeki hücre ile hashed.csv aynı satır/sütunda tutarlı olmalı
    • Boş değerler boş kalmalı, hash’lenmemeli

İpucu: Terminal/Powershell ile tek değer testi yapıp sonucun 64 karakterlik hex olduğundan emin olun. (Örn. echo -n "user@x.com" | shasum -a 256)


# Not

Tarafınıza gönderilen hashed ve unhashed örnek datasetlerin amacı, önce unhashed veriyi kendi tarafında SHA-256 ile şifrelemesini sağlamak ve çıkan sonucu bizim gönderdiğimiz hashed veriyle karşılaştırarak doğrulamaktır.

Bu adım atlandığında ve doğrudan şifreleme yapıldığında, doğru eşleşmenin teyiti sağlanamayacağından ölçümleme sürecinde hatalar ve uyumsuzluklar yaşanabilir.

📂 Örnek Dosyalar
Aşağıdaki linklerden örnek dosyalara ulaşabilirsiniz.

Aşağıdaki linkler debug amacıyla eklenmiş hash'lenmemiş bir dosya bulunmaktadır; bu dosya, sizlerden talep edilen versiyon değildir. Gönderim için gerekli olan versiyon hash'lenmiş olan formattır.

Aşağıda, satılan ürün ve mağaza kodu gibi isteğe bağlı sipariş alanlarını, kullanıcı cinsiyeti alanlarını içeren formatlar yer almaktadır. Sütun adlarındaki sayısal değişikliklere (örneğin, Contents_Quantity_1, Contents_Quantity_2) dikkat ediniz.

🧪 Örnek Test Senaryoları
Aşağıdaki linkte istenen formattan farklı olmak üzere çeşitli normalizasyon/temizlik senaryolarını test etmek amacıyla eklenmiş bir test dosyası bulunmaktadır; bu dosya, sizlerden talep edilen versiyon değildir. Adım adım doğru formatı uygulayabilmeniz için referans olarak kullanabilirsiniz.

{column}, {column}_normalized ve {column}_hashed şeklinde adım adım verinin dönüşümlerini ve beklediğimiz sonuçları içeren sütunları içermektedir.