XML ile Fiyat Yuvarlama Kuralları Nasıl Uygulanır?
XML entegrasyonunda fiyat kuralları uygulandıktan sonra 183,472849 TL gibi hassas sonuçlar oluşabilir. Bu fiyatların doğrudan satış kanalına gönderilmesi yerine kuruş hassasiyeti, belirli fiyat adımları, yukarı veya en yakına yuvarlama, psikolojik fiyat sonları ve minimum satış fiyatı gibi kurallar kullanılabilir. Bu rehber; kaynak fiyat ile hesaplanan fiyatın ayrılması, yuvarlamanın hangi aşamada yapılacağı, 0,01 / 0,10 / 0,50 / 1 / 5 TL gibi fiyat adımları, .90 ve .99 sonları, kategori ve kanal bazlı politikalar, dövizli fiyatlar, tekrar hesaplama ve yuvarlama sonrası kârlılık kontrolünü ele alıyor.
XML entegrasyonunda tedarikçiden gelen fiyatın doğrudan müşteriye gösterilmesi her zaman gerekli değildir.
Örneğin kaynak maliyet:
137,42 TL
olabilir.
Fiyat motorunuz:
- kâr kuralı,
- komisyon,
- kargo,
- paketleme,
- KDV yapısı
gibi işlemleri uyguladıktan sonra:
183,472849 TL
sonucunu üretebilir.
Müşteriye ise:
183,47 TL
183,50 TL
183,90 TL
184,00 TL
veya işletmenin stratejisine göre başka bir satış fiyatı gösterilebilir.
Burada önemli olan:
“Hangisi daha güzel görünüyor?”
sorusundan önce:
“Hangi yuvarlama kuralını uyguladığımız açık, tekrarlanabilir ve minimum fiyat sınırımızla uyumlu mu?”
sorusunu cevaplamaktır.
Canlı XML Fiyat Kuralları Nasıl Oluşturulur? rehberinde de fiyat motorunun sonunda yuvarlama katmanı bulunabileceği, ara işlemlerde tekrar tekrar yuvarlamak yerine nihai fiyatın son aşamada yuvarlanmasının daha kontrollü olduğu ve aşağı yuvarlamanın minimum fiyat sınırını bozabileceği belirtiliyor.
115'in amacı bu üç kısa başlığı ayrı bir fiyat yuvarlama sistemi haline getirmektir.
XML Fiyat Yuvarlama Nedir?
XML fiyat yuvarlama, kaynak veya hesaplanan ürün fiyatının önceden belirlenmiş bir kurala göre satış kanalında kullanılacak son fiyat biçimine dönüştürülmesidir.
Örneğin:
Hesaplanan fiyat: 183,472849 TL
Farklı kurallar farklı sonuçlar verebilir:
İki ondalığa en yakın → 183,47 TL
0,50 TL adımına en yakın → 183,50 TL
1 TL yukarı → 184,00 TL
Bir sonraki uygun .90 fiyatı → 183,90 TL
Bunların hiçbiri tek başına “doğru” yöntem değildir.
Doğru yöntem işletmenin fiyatlandırma politikasına göre belirlenmelidir.
1. Kaynak Fiyatı Yuvarlanmış Fiyatın Üzerine Yazmayın
Tedarikçi:
137,4275 TL
gönderiyorsa bu değer mümkünse kaynak veri olarak korunmalıdır.
Ayrı alanlarda:
Kaynak fiyat: 137,4275
Hesaplanan fiyat: 183,472849
Yayın fiyatı: 183,50
tutulabilir.
Böylece:
Tedarikçi ne gönderdi?
Fiyat motoru ne hesapladı?
Müşteriye ne gösterdik?
sorularının üçü de cevaplanabilir.
2. Ham Fiyat ile Yayın Fiyatını Birbirinden Ayırın
Bu ayrım 115'in temelidir.
Ham/kaynak fiyat
Tedarikçinin XML'den gönderdiği değer.
Hesaplanan fiyat
Kâr, komisyon veya diğer kurallar uygulandıktan sonraki hassas sonuç.
Yuvarlanmış yayın fiyatı
Web sitesi veya pazaryerine gönderilecek son değer.
Üç alanın aynı değişkende sürekli değiştirilmesi hata araştırmasını zorlaştırır.
3. Yuvarlamayı Mümkün Olduğunca Hesaplamanın Sonuna Bırakın
Örneğin:
maliyet
↓
kur dönüşümü
↓
KDV veya fiyat yapısı
↓
kargo
↓
komisyon
↓
kâr kuralı
↓
yuvarlama
şeklinde çalışılabilir.
Canlı 107 içeriği de ara işlemlerin yeterli hassasiyetle yapılıp yuvarlamanın nihai satış fiyatında uygulanmasını öneriyor.
4. Her Ara İşlemde Yuvarlama Yapmayın
Örneğin üç farklı hesaplama adımı varsa her adımın ardından iki ondalığa yuvarlamak nihai sonucu değiştirebilir.
Daha kontrollü model:
ara hesaplamaları yeterli hassasiyetle sakla
↓
nihai hesaplanan fiyatı bul
↓
tek fiyat yuvarlama politikasını uygula
şeklindedir.
5. Önce Kaç Ondalık Basamak Kullanacağınızı Belirleyin
Örneğin sistem içinde:
183,472849
saklanabilir.
Müşteri fiyatında ise:
183,47
kullanılabilir.
Ancak bu karar:
- para birimi,
- satış kanalı,
- muhasebe/fatura sistemi,
- fiyat stratejisi
ile uyumlu olmalıdır.
Yuvarlama politikası ile yalnızca ekrandaki sayı formatını birbirine karıştırmamak gerekir.
6. Sayı Formatlama ile Matematiksel Yuvarlamayı Ayırın
Ekranda:
183,50 TL
göstermek,
veri tabanında gerçek fiyatın:
183,50
olarak kaydedildiği anlamına gelmeyebilir.
Sistem bazen:
183,5
değerini yalnızca iki ondalıklı:
183,50
olarak görüntüler.
Bu bir formatlama işlemidir.
183,472 → 183,47
ise gerçek bir yuvarlama işlemidir.
7. En Yakına Yuvarlama Kuralı Tanımlayabilirsiniz
Örneğin:
183,47 TL
fiyatını en yakın:
0,50 TL
adımına yuvarlarsanız:
183,50 TL
sonucu elde edilebilir.
Bu yaklaşım fiyatı bazen yukarı, bazen aşağı taşır.
Bu nedenle minimum satış fiyatı ayrıca korunmalıdır.
8. Her Zaman Yukarı Yuvarlama Ayrı Bir Politikadır
Örneğin:
183,12 TL
hesaplandı.
Kural:
bir sonraki 0,50 TL değerine yukarı yuvarla
ise:
183,50 TL
olabilir.
Amaç hesaplanan fiyatın altına düşmemektir.
Bu özellikle hesaplanan değerin aynı zamanda minimum güvenli fiyat olduğu sistemlerde değerlendirilebilir.
9. Aşağı Yuvarlama Ayrı Bir Politikadır
Örneğin:
183,87 TL
fiyat:
0,50 TL aşağı
kuralıyla:
183,50 TL
seviyesine inebilir.
Ancak bu işlem kârlılık sınırını azaltabilir.
Bu nedenle aşağı yuvarlama kullanılıyorsa minimum satış fiyatı kontrolü zorunlu bir güvenlik adımı haline gelebilir.
10. “Yukarı” ile “En Yakına” Aynı Şey Değildir
Örneğin:
183,21
için 1 TL adımı kullanıldığında:
En yakına
183 TL
Yukarı
184 TL
olabilir.
Bu iki algoritmanın katalog genelinde binlerce ürün üzerinde büyük fiyat farkı oluşturabileceği unutulmamalıdır.
11. Tam Ortadaki Değerlerin Nasıl Yuvarlanacağını Belirleyin
Örneğin tam olarak:
10,005
gibi bir değer oluşabilir.
İki ondalık basamağa yuvarlarken:
10,00
veya:
10,01
sonuçlarının hangisinin seçileceği kullanılan rounding mode'a bağlı olabilir.
Oracle'ın BigDecimal dokümantasyonunda HALF_UP, HALF_DOWN, HALF_EVEN, CEILING, FLOOR gibi yöntemler ayrı ayrı tanımlanmıştır.
12. Yazılım Dilinin Varsayılan Yuvarlama Davranışına Güvenmeyin
Bir geliştirici:
“round() kullanıyoruz.”
diyebilir.
Ancak asıl soru:
Hangi rounding mode?
olmalıdır.
Özellikle tam orta değerlerde kullanılan yöntem sonucu değiştirebilir.
Bu nedenle fiyat motorunda yuvarlama politikası açıkça yazılmalıdır.
13. Para Hesaplarında Kontrollü Decimal Yapısı Kullanın
Fiyat hesabı yapılırken kullanılan sayı tipinin hassasiyeti önemlidir.
Java'nın BigDecimal yapısında örneğin ölçek ve rounding mode açık biçimde belirlenebilir ve yuvarlama politikaları programatik olarak seçilebilir.
Amaç belirli programlama dilini zorunlu tutmak değildir.
Ana fikir:
para hesabında hangi hassasiyet ve yuvarlama politikasının kullanıldığı bilinmelidir.
14. Metin Olarak Formatlanmış Fiyatı Yeni Hesaplamalara Sokmayın
Örneğin:
183,90 TL
kullanıcıya gösterilen metindir.
Sonraki hesaplama için:
"183,90 TL"
metnini tekrar parse etmek yerine sayısal satış fiyatı kullanılmalıdır.
Bu yaklaşım:
- para birimi metni,
- binlik ayırıcı,
- ondalık ayırıcı
kaynaklı problemleri azaltır.
15. Virgül ve Nokta Formatını Yuvarlamadan Önce Doğru Çözün
XML:
1.250,50
gönderiyor olabilir.
Başka feed:
1250.50
gönderebilir.
Yanlış parse edilen:
1.250,50
değerini ne kadar doğru yuvarlarsanız yuvarlayın sonuç yanlış olacaktır.
Bu nedenle sıra:
parse → normalize → hesapla → yuvarla
olmalıdır.
16. Yuvarlama Kuralı Veri Normalizasyonunun Yerine Geçmez
XML:
125,50 TL
gönderiyorsa önce:
125.50 + TRY
gibi güvenilir veri modeline dönüştürülmelidir.
Sonrasında fiyat kuralı ve yuvarlama uygulanmalıdır.
Yuvarlama bozuk veya belirsiz kaynak veriyi düzeltme yöntemi değildir.
17. Önce Fiyat Motoru, Sonra Yuvarlama Çalışmalıdır
Örneğin:
Kaynak maliyet → 100 TL
Fiyat motoru → 143,2746 TL
Yuvarlama → 143,50 TL
şeklinde olabilir.
Burada:
hangi marj uygulanacak?
sorusunun cevabı 107'nin konusudur.
143,2746 hangi satış fiyatına dönüşecek?
sorusunun cevabı ise 115'in konusudur.
Canlı 107 içeriği fiyat motorunun kategori, kanal, minimum kâr ve benzeri kuralları kapsadığını doğruluyor.
XML Fiyat Kuralları Nasıl Oluşturulur?
18. Minimum Güvenli Fiyatı Yuvarlamadan Önce Hesaplayın
Örneğin bütün maliyetler sonrası minimum kabul edilen fiyat:
200,30 TL
olsun.
Yuvarlama bundan sonra uygulanmalıdır.
Sistem:
hesaplanan fiyat
ve:
minimum güvenli fiyat
değerlerini ayrı tutmalıdır.
19. Yuvarlama Sonrasında Minimum Fiyatı Tekrar Kontrol Edin
Bu çok önemli.
Minimum:
200,30
Yuvarlanmış sonuç:
199,90
ise ürün minimum sınırın altına düşmüştür.
Canlı 107 rehberinde de bu durum açık biçimde örnekleniyor ve yuvarlama sonrasında minimum fiyat kontrolünün tekrar yapılması gerektiği belirtiliyor.
20. Minimum Fiyatın Altındaki Sonucu Bir Sonraki Geçerli Fiyata Taşıyabilirsiniz
Örneğin izin verilen fiyat sonları:
x9,90
olsun.
Minimum güvenli fiyat:
210,20 TL
ise:
209,90
kullanılamaz.
Bir sonraki kuralınıza uygun fiyat:
219,90
olabilir.
Buradaki rakamlar yalnızca algoritma örneğidir.
İşletmenin gerçekten x9,90 kullanması gerektiği anlamına gelmez.
21. Psikolojik Fiyatlandırmayı Matematiksel Yuvarlamadan Ayırın
Matematiksel yuvarlama:
183,47 → 183,50
olabilir.
Psikolojik fiyat dönüşümü:
183,47 → 183,90
gibi farklı bir ticari kural olabilir.
Bu nedenle sistemde:
rounding rule
ve:
price-ending rule
ayrı tutulabilir.
22. .90, .95 veya .99 Sonları Ayrı Fiyat Şablonlarıdır
İşletme fiyatları:
199,90
299,90
gibi bitirmek isteyebilir.
Başka işletme:
199,99
kullanabilir.
Bu değerlerin hangisinin daha iyi olduğuna dair evrensel bir XML kuralı yoktur.
Bunlar ticari fiyatlandırma tercihleridir.
23. Psikolojik Fiyat Sonunu Körü Körüne Aşağı Uygulamayın
Hesaplanan minimum fiyat:
200,40
ise:
199,90
güzel göründüğü için seçilmemelidir.
Önce:
minimum fiyat şartı
korunmalıdır.
Sonra kuralın izin verdiği sonraki güvenli fiyat bulunabilir.
24. Sabit Fiyat Adımları Kullanabilirsiniz
Örneğin satış fiyatları yalnızca:
0,10 TL
0,50 TL
1 TL
5 TL
veya:
10 TL
adımlarına getirilebilir.
Örneğin:
183,47 TL
için:
0,10 yukarı → 183,50
0,50 yukarı → 183,50
1 TL yukarı → 184
5 TL yukarı → 185
sonuçları oluşabilir.
25. Fiyat Adımı ile Ondalık Basamak Aynı Şey Değildir
İki ondalık basamak
kullanmak:
183,47
gibi değerleri kabul eder.
0,50 TL adımı
kullanmak ise yalnızca:
183,00
183,50
184,00
gibi belirli değerleri kabul edebilir.
Bu iki ayar farklıdır.
26. Düşük Fiyatlı Ürünlerde Küçük Yuvarlama Farkları Oransal Olarak Daha Büyüktür
Örneğin:
10,20 TL → 10,90 TL
değişimi:
500,20 TL → 500,90 TL
değişimine göre ürün fiyatının daha büyük yüzdesini oluşturur.
Bu nedenle bütün fiyat bantlarında aynı yuvarlama adımı kullanılmak zorunda değildir.
27. Fiyat Bandına Göre Yuvarlama Kuralı Oluşturabilirsiniz
Tamamen örnek olarak:
0–100 TL → 0,10 veya 0,50 adımı
100–500 TL → 0,50 veya 1 TL adımı
500 TL üzeri → farklı politika
kullanılabilir.
Bunlar önerilen rakamlar değildir.
Gerçek sınırlar işletmenin fiyat stratejisine göre belirlenmelidir.
28. Kategori Bazlı Yuvarlama Kullanılabilir
Elektronik ürünlerde bir fiyat biçimi,
küçük ev ürünlerinde başka,
hırdavatta başka
kullanılabilir.
Ancak gereksiz sayıda kategori kuralı oluşturmak sistemi yönetilemez hale getirebilir.
Bu nedenle kategori istisnaları gerçekten ticari ihtiyaç varsa kullanılmalıdır.
29. Satış Kanalına Göre Yuvarlama Kuralı Farklı Olabilir
Kendi sitenizde:
249,90 TL
kullanırken başka satış kanalında:
250 TL
fiyatlandırma tercih edebilirsiniz.
Ancak kanal fiyatı ayrı oluşturuluyorsa:
aynı ürünün neden farklı fiyatlandığı
kayıt altına alınmalıdır.
30. Ana Fiyat ile Kanal Fiyatını Ayrı Saklayabilirsiniz
Örneğin:
Merkez hesaplanan fiyat: 243,72
Web fiyatı: 243,90
Kanal A: 244,00
Kanal B: 249,90
olabilir.
Bu durumda her satış kanalının fiyat üretim zinciri açık biçimde izlenebilir.
31. Para Birimine Göre Farklı Hassasiyet Gerekebilir
XML'de:
TRY,
USD,
EUR
gibi farklı para birimleri bulunabilir.
Yuvarlama kuralı para birimi bilgisi çözüldükten sonra uygulanmalıdır.
Örneğin bütün dövizleri önce TL'ye dönüştürüp daha sonra TL fiyat politikası uygulanabilir veya işletme farklı bir model kullanabilir.
32. Döviz Kurunu Yuvarladıktan Sonra Fiyat Hesaplamayın
Örneğin gerçek kullanılan kur:
42,6738
iken önce bunu:
42,67
seviyesine yuvarlayıp bütün ürünleri hesaplamak ile hassas kur üzerinden hesaplayıp nihai satış fiyatını yuvarlamak aynı sonucu vermeyebilir.
Daha kontrollü yaklaşım ara verileri yeterli hassasiyetle kullanıp nihai yayın fiyatını yuvarlamaktır.
33. KDV Hesabıyla Satış Fiyatı Yuvarlamasını Birbirine Karıştırmayın
KDV/vergi hesaplaması muhasebe ve belge sürecinin ayrı bir bölümüdür.
115'in amacı:
satış fiyatının ticari yayın biçimini
yönetmektir.
KDV dahil/hariç fiyatın doğru yorumlanması ise ayrı kontroldür.
Canlı XML KDV ve Vergi Alanları Nasıl Kontrol Edilir? rehberi bu ayrımı derinlemesine ele alıyor.
XML KDV ve Vergi Alanları Nasıl Kontrol Edilir?
34. KDV Dahil/Hariç Dönüşümü Tamamlandıktan Sonra Ticari Yuvarlama Uygulayın
Örneğin kaynak fiyatın KDV durumu önce çözümlenmeli.
Ardından satış fiyatı oluşturulmalı.
En son:
mağaza fiyat yuvarlama kuralı
uygulanmalıdır.
Yanlış sıra:
ham fiyatı yuvarla → KDV ekle → tekrar yuvarla → komisyon ekle → tekrar yuvarla
gibi zincirler farklı sonuçlar oluşturabilir.
35. Liste Fiyatını ve Aktif Satış Fiyatını Ayrı Yuvarlayın
Üründe:
liste fiyatı
ve:
satış fiyatı
bulunabilir.
İkisinin aynı algoritmayla yuvarlanması şart değildir.
Ancak nihai değerlerin kendi aralarında mantıklı olması gerekir.
Örneğin yuvarlama sonrasında:
satış fiyatı > liste fiyatı
gibi istenmeyen sonuç oluşmamalıdır.
36. Kampanya Fiyatına İkinci Bir Kontrol Uygulayın
Normal satış fiyatı:
249,90
olabilir.
Kampanya hesaplaması:
212,415
üretebilir.
Bu değer ayrıca:
212,40
212,50
212,90
gibi kampanya politikasına göre dönüştürülebilir.
Ancak kampanya fiyatı da minimum güvenli fiyatın altına düşmemelidir.
37. Yuvarlama Sonrası Gerçek İndirim Oranını Yeniden Hesaplayın
Liste fiyatı ve satış fiyatı ayrı ayrı yuvarlanırsa başlangıçta hedeflenen indirim yüzdesi küçük ölçüde değişebilir.
Bu nedenle müşteriye gösterilecek:
indirim yüzdesi
varsa yuvarlanmış gerçek fiyatlardan yeniden hesaplanması daha tutarlı olabilir.
38. Yuvarlama Sonrası Kâr Marjını Yeniden Kontrol Edin
Örneğin hesaplanan fiyat:
200,30
iken:
199,90
seviyesine inildi.
Bu fark küçük görünebilir.
Ancak ürün zaten minimum kâr sınırındaysa sonucu değiştirebilir.
Bu nedenle fiyat motorunun son kontrolü:
rounded_price ≥ minimum_safe_price
mantığını kullanabilir.
39. Aynı XML Tekrar Çalıştığında Fiyat Tekrar Tekrar Yuvarlanmamalıdır
Örneğin:
İlk çalışma:
183,47 → 183,90
İkinci çalışma:
183,90 → 184,90
olmamalıdır.
Yuvarlama her zaman:
önceden yuvarlanmış satış fiyatına
değil,
yeniden hesaplanan temel fiyata
uygulanmalıdır.
40. İyi Bir Yuvarlama Kuralı Tekrar Çalıştırıldığında Kararlı Olmalıdır
Aynı kaynak fiyat ve aynı kurallar:
bugün → 183,90
yarın → 183,90
üretmelidir.
Her senkronizasyonda farklı sonuca gidiyorsa kural zincirinde sorun olabilir.
Bu özellikle otomatik XML güncellemelerinde önemlidir.
41. Küçük Kaynak Fiyat Değişiklikleri Yuvarlanmış Fiyatı Değiştirmeyebilir
Örneğin:
hesaplanan fiyat:
183,41 → 183,44
değişti.
Kural:
0,50 TL'ye yuvarla.
İki sonuç da:
183,50
olabilir.
Bu durumda müşteriye gösterilen fiyatın tekrar güncellenmesi gerekmeyebilir.
42. Kaynak Fiyat ile Yayın Fiyatının Değişimini Ayrı İzleyin
Örneğin kaynak maliyet üç kez değişti:
137,40
137,42
137,45
ancak üçü de aynı:
183,90 TL
satış fiyatını oluşturuyor olabilir.
Loglarda:
source changed
ama:
published price unchanged
şeklinde ayrım yapılabilir.
43. Yuvarlama Sınırında Sürekli Fiyat Açılıp Kapanmasını İzleyin
Hesaplanan fiyat:
199,89
199,91
199,88
199,92
şeklinde küçük değişiklikler gösteriyorsa fiyat sonu kuralına bağlı olarak yayın fiyatı sık hareket edebilir.
Bu durum:
- kur hareketleri,
- küçük maliyet değişimleri
nedeniyle yaşanabilir.
Sistem gereksiz fiyat dalgalanmasını ölçmelidir.
44. Gerekirse Fiyat Değişim Eşiği Kullanabilirsiniz
Yuvarlanmış yeni fiyat eski yayın fiyatıyla aynıysa:
kanala update gönderme
gerekmeyebilir.
Ayrıca işletme çok küçük fiyat farklılıklarında farklı bir güncelleme politikası tanımlayabilir.
Ancak fiyat değişikliklerini görmezden gelme eşiği kârlılığı tehlikeye atmamalıdır.
45. Çoklu Tedarikçide Yeni Kaynak Seçildiğinde Fiyat Baştan Hesaplanmalıdır
Ürün önce:
Tedarikçi A
üzerinden fiyatlandırılmış olabilir.
Sonra:
Tedarikçi B
aktif kaynak haline geldi.
Yeni kaynak maliyet farklıysa sistem:
eski yuvarlanmış fiyatı değiştirmeye
çalışmamalıdır.
Yeni kaynak maliyetten:
fiyat motoru → minimum fiyat → yuvarlama
zinciri yeniden çalışmalıdır.
46. Varyantları Aynı Fiyata Zorla Yuvarlamayın
Bir ürünün:
S → 174,20
M → 179,40
L → 189,70
hesaplanan fiyatları olabilir.
Her varyant gerçek maliyetine göre fiyatlandırılıyorsa yuvarlama da kendi hesaplanan fiyatına uygulanmalıdır.
Ana ürün fiyatını bütün varyantlara kopyalamak farklı bir fiyatlandırma problemidir.
47. Set Ürünlerde Önce Set Maliyetini Oluşturun
Ürün:
A + B + C
setinden oluşuyor.
Önce:
set toplam maliyeti
ve diğer giderler hesaplanmalıdır.
Sonra setin satış fiyatı bulunmalı.
Yuvarlama en sonunda uygulanmalıdır.
Her bileşeni ayrı yuvarlayıp daha sonra toplamak farklı sonuç üretebilir.
48. Sıfır, Boş veya Negatif Fiyatı Yuvarlama Motoruna Sokmayın
XML:
price = 0
veya:
price = -100
gönderiyorsa:
“nasıl yuvarlayacağım?”
sorusundan önce:
“bu geçerli kaynak fiyat mı?”
sorusu cevaplanmalıdır.
Yuvarlama veri doğrulamanın yerine geçmez.
49. Anormal Fiyat Düşüşlerini Yuvarlama ile Gizlemeyin
Kaynak maliyet:
1.500 → 150
düştü.
Yuvarlama motoru:
150 → 149,90
yaptı.
Fakat asıl problem:
kaynağın 150 TL olmasının doğru olup olmadığıdır.
Dolayısıyla sıra:
fiyat validation → fiyat motoru → yuvarlama
olmalıdır.
50. Yuvarlama Kuralını Loglayın
Örneğin:
SKU: ABC125
Source price: 137,42
Calculated price: 183,472849
Rounding rule: NEXT_0_50
Rounded price: 183,50
Minimum price: 181,20
Result: PASS
şeklinde kayıt tutulabilir.
Bu sayede:
“Bu ürün neden 183,50 TL?”
sorusu cevaplanabilir.
51. Kural Versiyonunu Kaydedin
Bugün:
ROUNDING_V1
kullanılıyor.
Bir ay sonra:
ROUNDING_V2
ile .90 fiyat sonuna geçilmiş olabilir.
Eski ve yeni ürün fiyatlarının neden farklı oluştuğunu anlamak için hangi versiyonun kullanıldığı kaydedilebilir.
52. SKU Bazlı Yuvarlama İstisnası Kullanabilirsiniz
Genel kural:
0,50 TL yukarı
olabilir.
Ancak belirli ürün:
tam fiyat
kullanmak isteyebilir.
Bu durumda:
global rule
kategori rule
SKU override
gibi öncelik sistemi kurulabilir.
53. Kural Önceliğini Açıkça Belirleyin
Örneğin ürün aynı anda:
- genel
.90kuralına, - elektronik kategori kuralına,
- kanal kuralına,
- SKU özel kuralına
uyuyor olabilir.
Hangisi geçerli?
Örneğin:
SKU > kanal > kategori > genel
gibi bir öncelik tanımlanabilir.
Gerçek sıralama işletmeye göre değişebilir.
54. İki Yuvarlama Kuralının Üst Üste Çalışmasını Engelleyin
Örneğin:
önce:
0,50 TL yukarı
sonra:
.90 sonuna getir
uygulanıyorsa nihai fiyat beklenmedik biçimde daha fazla yükselebilir.
Bu gerçekten isteniyorsa sorun yoktur.
Ancak çoğu durumda yuvarlama kuralları:
birbirinin alternatifi
olmalıdır.
55. Yuvarlama Motorunu Canlıdan Önce Simüle Edin
Örneğin 10.000 ürün için:
mevcut fiyat
hesaplanan hassas fiyat
yeni yuvarlanmış fiyat
değişim TL
değişim %
minimum fiyat kontrolü
raporlanabilir.
Bu sayede yanlış .90 veya 5 TL adımı bütün kataloğa uygulanmadan önce görülür.
56. Sınır Değerlerini Özellikle Test Edin
Örneğin 0,50 TL kuralında:
183,24
183,25
183,26
183,49
183,50
183,51
gibi değerler denenebilir.
Amaç normal değerleri değil kararın değiştiği sınırları test etmektir.
57. Tam Orta Noktaları Test Edin
Örneğin:
10,005
10,015
gibi değerlerde kullanılan rounding mode farklı sonuç verebilir.
Bu nedenle yazılım testlerinde özellikle:
tie cases
bulunmalıdır.
Oracle dokümantasyonu da farklı rounding mode'ların tam orta noktalardaki farklı davranışlarını ayrı biçimde tanımlıyor.
58. Minimum Fiyatın Hemen Altı ve Üstünü Test Edin
Minimum:
200,30
olsun.
Test:
200,29
200,30
200,31
ve bunların yuvarlanmış sonuçlarını karşılaştırmalıdır.
Böylece psikolojik fiyat veya aşağı yuvarlamanın güvenlik sınırını aşmadığı doğrulanabilir.
59. İkinci Senkronizasyonda Aynı Sonucu Ürettiğini Test Edin
Feed değişmedi.
İlk sync:
183,90
üretti.
İkinci sync:
yine 183,90
üretmelidir.
Bu test yuvarlama işleminin daha önceki yuvarlanmış değeri tekrar girdi olarak kullanmadığını doğrular.
60. Yuvarlama Politikasını Ölçerek Geliştirin
Bir fiyat kuralı teknik olarak doğru olabilir ancak ticari sonuçları ayrıca izlenebilir.
Örneğin:
- ortalama fiyat artışı,
- minimum fiyat ihlalleri,
- yeniden fiyatlama sayısı,
- kanal bazlı fiyat farkları,
- fiyat değişikliklerinin sıklığı
takip edilebilir.
Böylece yuvarlama sistemi:
bir kere yazılıp unutulan kod
yerine:
ölçülebilir fiyat politikası
haline gelir.
XML FİYAT YUVARLAMA KONTROL LİSTESİ
Kaynak fiyat
Orijinal XML değeri korunuyor mu?
Hesaplanan fiyat
Yuvarlama öncesi hassas sonuç ayrı tutuluyor mu?
Yayın fiyatı
Müşteriye gönderilecek son fiyat ayrı mı?
Ondalık hassasiyet
Kaç basamak kullanılacağı belirli mi?
Fiyat adımı
0,01 / 0,10 / 0,50 / 1 / 5 gibi bir adım kullanılıyor mu?
Yuvarlama yönü
En yakına mı, yukarı mı, aşağı mı?
Tie rule
Tam orta nokta nasıl çözülecek?
Decimal hesap
Para hesabında kontrollü hassasiyet kullanılıyor mu?
İşlem sırası
Yuvarlama gerçekten hesaplamanın sonunda mı?
Minimum fiyat
Yuvarlama öncesi hesaplanıyor mu?
Son kontrol
Yuvarlanmış fiyat minimum fiyatın üzerinde mi?
Psikolojik fiyat
.90, .95 veya .99 ayrı kural mı?
Fiyat bandı
Ucuz ve pahalı ürünler farklı mı?
Kategori
Kategori bazlı istisna gerekiyor mu?
Kanal
Her satış kanalının kuralı belli mi?
Para birimi
Yuvarlamadan önce currency doğrulanıyor mu?
KDV
Ticari yuvarlama ile vergi hesabı ayrılıyor mu?
Liste fiyatı
Satış fiyatından ayrı mı?
Kampanya
İndirim fiyatı minimum sınırdan geçiyor mu?
Varyant
Her varyant doğru fiyat üzerinden yuvarlanıyor mu?
Çoklu tedarikçi
Kaynak değişince fiyat yeniden hesaplanıyor mu?
Idempotency
Aynı feed ikinci kez çalışınca fiyat değişmiyor mu?
Log
Kaynak, hesaplanan ve yuvarlanmış fiyat görülebiliyor mu?
Versiyon
Hangi yuvarlama kuralının kullanıldığı belli mi?
Dry-run
Toplu uygulamadan önce sonuç simüle ediliyor mu?
XML FİYAT YUVARLAMA SİSTEMİ NASIL KURULUR?
1. XML'deki gerçek kaynak fiyat alanını belirleyin.
2. Fiyatın para birimini doğrulayın.
3. KDV dahil/hariç yapısını doğrulayın.
4. Kaynak fiyatı değiştirmeden saklayın.
5. Fiyat motorunun hassas hesaplanan sonucunu ayrı oluşturun.
6. Minimum güvenli satış fiyatını hesaplayın.
7. Yayın fiyatında kullanılacak ondalık hassasiyeti belirleyin.
8. Matematiksel yuvarlama yöntemini seçin.
9. Gerekliyse fiyat adımını belirleyin.
10. Psikolojik fiyat sonu kullanılacaksa ayrı kural olarak tanımlayın.
11. Fiyat bandı veya kategori istisnalarını oluşturun.
12. Kanal bazlı fiyat kurallarını tanımlayın.
13. Kural öncelik sırasını belirleyin.
14. Yuvarlama sonrasında minimum fiyatı tekrar doğrulayın.
15. Liste ve kampanya fiyatlarını ayrıca kontrol edin.
16. Aynı feed'in ikinci çalışmasında fiyatın değişmediğini test edin.
17. Tam orta ve sınır değer testlerini çalıştırın.
18. Önce 50–100 çeşitli ürün üzerinde dry-run yapın.
19. Kaynak, hesaplanan ve yayın fiyatını loglayın.
20. Sonuç doğruysa kademeli biçimde bütün kataloğa uygulayın.
SIK SORULAN SORULAR
XML fiyatı doğrudan iki ondalığa yuvarlanmalı mı?
Her zaman değil. Önce XML'deki değerin kaynak maliyet mi yoksa satış fiyatı mı olduğu belirlenmelidir. Fiyat motoru uygulanacaksa yuvarlama genellikle nihai hesaplanan fiyat üzerinde yapılmalıdır. Ara aşamalarda tekrar tekrar yuvarlama nihai sonucu değiştirebilir.
Fiyatı her zaman yukarı yuvarlamak daha güvenli midir?
Minimum fiyatın altına düşmeyi önlemeye yardımcı olabilir ancak bütün ürünlerde otomatik olarak en uygun ticari yöntem olduğu söylenemez. Fiyat bandı, rekabet, kategori ve satış stratejisi ayrıca değerlendirilmelidir.
183,47 TL fiyatı 183,90 TL yapmak normal yuvarlama mıdır?
Bu daha çok bir fiyat sonu veya psikolojik fiyatlandırma kuralıdır. Matematiksel olarak en yakın 0,50 TL değerine yuvarlama örneğinde 183,50 TL oluşabilir. .90 sonuna getirme ayrı bir ticari dönüşüm olarak tanımlanmalıdır.
Yuvarlama sonrası kâr azalabilir mi?
Evet. Özellikle aşağı yönlü veya belirli psikolojik fiyat sonlarına yapılan dönüşüm hesaplanan güvenli fiyatın altına düşebilir. Bu nedenle yuvarlamadan sonra minimum satış fiyatı ve hedef kârlılık yeniden kontrol edilmelidir. Canlı 107 rehberinde de bu risk doğrudan ele alınıyor.
Aynı XML fiyatı her senkronizasyonda yeniden yuvarlanmalı mı?
Hesaplama yeniden yapılabilir ancak yuvarlama önceki yuvarlanmış fiyata uygulanmamalıdır. Aynı kaynak veri ve aynı kurallar aynı yayın fiyatını üretmelidir. Kaynak fiyat değişmediyse fiyatın her senkronizasyonda yukarı doğru kayması bir uygulama hatasına işaret edebilir.
FİYAT YUVARLAMANIN AMACI SAYIYI GÜZELLEŞTİRMEK DEĞİL, HESAPLANMIŞ FİYATI TUTARLI BİR YAYIN KURALINA DÖNÜŞTÜRMEKTİR
XML fiyat yuvarlamada riskli yaklaşım:
“Son iki rakamı .90 yap.”
şeklinde düşünmektir.
Çünkü bunun öncesinde:
- gerçek kaynak fiyat,
- KDV yapısı,
- para birimi,
- fiyat motoru,
- minimum güvenli fiyat
doğru belirlenmemiş olabilir.
Daha kontrollü sistem:
kaynak fiyatı doğrula → hassas hesaplama yap → minimum güvenli fiyatı belirle → yuvarlama modunu seç → fiyat adımını uygula → gerekiyorsa psikolojik fiyat sonunu uygula → minimum fiyatı tekrar kontrol et → yayın fiyatını kaydet → satış kanalına gönder → sonucu logla
şeklinde çalışmalıdır.
Örneğin:
Kaynak fiyat: 137,42 TL
Fiyat motoru sonucu: 183,472849 TL
Minimum güvenli fiyat: 181,20 TL
Yuvarlama kuralı: bir sonraki 0,50 TL
Yayın fiyatı: 183,50 TL
şeklinde bütün zincir görülebiliyorsa fiyatın neden 183,50 TL olduğunu açıklamak mümkündür.
Ama sistem yalnızca:
“183,50 TL oldu.”
diyorsa birkaç ay sonra fiyatın hangi işlem sonucunda oluştuğunu anlamak zorlaşabilir.
115'in ana mesajı:
Önce fiyatı doğru hesaplayın; yuvarlama yalnızca hesaplanan doğru fiyatın son yayın katmanı olsun.