====== Bölüm 2 - Kahve Kuponu Kullandırma ====== Bölüm 1 de anlatıldığı şekilde kuponlarımızı üretebildikten sonra sıra bu kuponları kullandırmaya geldi. Kuponların kullanımı derken tam olarak Kupon ile ürün satma, kullanılan kuponların durumlarının güncelleştirilmesi ve kuponların yazdırılması gibi operasyonlardan bahsediyoruz. Bu bölümde yapacağımız işlem adımları; - Varolan Kuponları Kullanma - Kahve Kuponu ile ücretsiz Kahve satılması - Kupon Numarasının Sipariş Durumu Olarak Güncellenmesi - Adisyona Eklenen İkram Ürünü İptal etme (Almaktan vazgeçme) - Kullanılan Kuponların Kullanım Durumlarının Güncellenmesi - Kupon kullanımı sırasında operasyonel geri bildirimlerin oluşturulması ====== 1. Varolan Kuponları Kullanma ====== Kuponları adisyona ekleyebilmek 2 adımlı bir işlemi gerektiriyor. ===== 1.1 Kuponların Adisyona Çağırılması ===== Kuponları adisyona çağırma bir eylem olarak tanımlanmalıdır. {{:tr:promosyon_kpn:kupon-promosyon-16.jpg?700|}} **Eylem Bilgileri** ^Özellik^Değer^ |Eylem Adı|KPN-Adisyona Kuponu Çağır| |Eylem Tipi|Belge Varlığı Değiştir| ^Parametreler^^ |Parametre - CanCreateTicket|True| |Parametre- Entity Type Name|Kuponlar| |Parametre - Entity SearchValue|[:Kupon Numarası]| Bu eylem ile ilgili Kural tarafından çalıştırıldığın da halihazırdaki adisyonumuzun varlığını Kuponumuzun varlığı ile değiştirme işlemini yaptırıyoruz. ===== 1.2 Kuponların Adisyona Çağırılması ===== Sırada oluşturduğumuz Kupon varlığının numarasının Numaratörden elle veya barkod okuyucu ile girildiğinde yukarıdaki Eylemi çalıştıracak olan kuralı tanımlamak var. Bu işlem için Yeni bir Kural daha oluşturuyoruz. {{:tr:promosyon_kpn:kupon-promosyon-17.jpg?700|}} **Kural Değerleri** ^Özellik^Değer^ |Kural Adı|KPN-Kupon Okutulduğunda veya Elle Yazıldığında| |Olay Adı|Numaratörden Değer Girildiğinde| ^Kısıtlamalar^^^ |Eğer Kural Çalışırsa|EŞLEŞME olmalıdır| ^Özel Kısıtlama Ekle^^^ |NumberpadValue|Başlar|KP| |NumberpadValue|Uzunluk Eşittir|11| ^Eylemler^^^ |Eylem|Adisyona Kuponu Çağır| |:::|Kupon Numarası|[:NumberpadValue]| Özel Kısıtlama alanında illa Eşit olmasını istediğimiz 2 farklı değer verdik. Buna göre çağırılan Kuponların isimleri mutlaka ''KP'' ile başlamalı ve kupon adının uzunluğu tam olarak ''11'' karakter olmalıdır. Bu şartlar sağlandığı hallerde bu Kural yukarıda anlattığımız ''Adisyona Kuponu Çağır'' eylemini çalıştıracak ve bu eylemde Kupon Numarası değeri Numaratörden girilen isimli varlığı adisyona ekleyecek. ==== 2. Kahve Kuponu ile ücretsiz Kahve satılması ==== Numaratör aracılığıyla Kahve Kuponumuzun varlık numarasını girdikten sonra sistemin otomatik olarak bir Kahveyi Adisyona ücretsiz olarak ekleyebilmesini sağlamak için gerekli adımlar burada anlatılıyor. Bu işlem için 1 Eylem ve 1 de Kural tanımlamalıyız. === 2.1 Adisyona İkram Kahve Ekle Eylemi === {{:tr:promosyon_kpn:kupon-promosyon-18.jpg?700|}} **Eylem Bilgileri** ^Özellik^Değer^ |Eylem Adı|KPN-Adisyona İkram Ürünü Ekle| |Eylem Tipi|Adisyona Sipariş Ekle| ^Parametreler^^ |Parametre - Ürün Adı|[:Ürün Adı]| |Parametre - Miktar|1| |Parametre - Order State Name|GStatus| |Parametre - Sipariş Durumu|Kupon İle Ücretsiz| |Parametre - Envanteri Artır|False| |Parametre - Envanteri Azalt|True| |Parametre - Kilitli|True| |Parametre - Fiyat Hesapla|False| Bu eylem ile Ürün Adı değişkenin içine saklı bulunan üründen 1 adet adisyona eklenmesi işlemi yaptırılıyor. **Envanteri Artır:** Ürün satıldığı zaman envanterin artırılıp artırılıp artırılmayacağının seçildiği alandır. False yaparak stok envanterini artırmayı kapatıyoruz. **Envanteri Azalt:** Verilen ürün ikram da olsa, stoğumuzu etkileyeceğinden stokdan düşebilmesi için True olarak seçiyoruz. **Kilitli:** Adisyona eklenan Kahve ürünün eklendiği anda kilitleyerek İptal ve İade edilmesini engelemek için Kilit Durumunu True yapıyoruz. **Fiyat Hesapla:** İkram olarak veirleceğinden Fiyat Hesaplama parametresinin False yaparak fiyatını hesaba katmıyoruz. === 2.2. Kupon Çağırıldığında Adisyona Ücretsiz Kahve Ürünü Ekle Kuralı === {{:tr:promosyon_kpn:kupon-promosyon-19.jpg?700|}} Bu Kural ile Belge Varlığı gerekli koşullarda değiştiğinde adisyona bir adet ikram Kahve ürünü ekleme işi yapacak olan kuralımızdır. Bu kuralı adisyona aşağıdaki diğer başka eylemlerde de kullanacağız. **Kural Değerleri** ^Özellik^Değer^ |Kural Adı|KPN-Kupon Çağırıldığında Adisyona Ücretsiz Kahve Ürünü Ekle| |Olay Adı|Belge Varlığı Değişti| ^Kısıtlamalar^^^ |Eğer Kural Çalışırsa|EŞLEŞME olmalıdır| ^Özel Kısıtlama Ekle^^^ |EntityTypeName|Eşittir|Kuponlar| |EntityTypeName|Eşit Değil|*| |{ENTITY DATA:Kupon:Kupon Kullanımı}|Eşittir|Hayır| ^Eylemler^^^ |Eylem|Adisyona İkram Ürün Ekle| |:::|Ürün Adı|{ENTITY DATA:Kupon:Menü Ürün Adı}| Bu kural içinde yer alan kısıtlamamızda Varlık Adının Kuponlar olması ve bir sonraki satırda * sembolu ile diğer varlık adlarının dikkate alınmaması gerektiğini 3. kısıtlamada ise Kuponlar varlığında ver alan Özel Alanlar içindeki Kupon Kullanım alanının Hayır olması, yani kullanımamış kuponlarda çalışması gerektiğini anlatıyoruz. Şartlar oluşturğunda ise adisyona Kupon Varlığının Data alanında Kupon Ürün adı yazan ürünü eklemesini istiyoruz. ==== 3. Kupon Numarasının Sipariş Durumu Olarak Güncellenmesi ==== Bu işlem ile Kupon ile alınan kahvelerin altında alındığı kuponun numarasını sipariş durumu olarak yazmanın nasıl yapıldığını göreceğiz. === 3.1. Siparişteki Kuponun Numarasını Sipariş Etiketine Güncelle === {{:tr:promosyon_kpn:kupon-promosyon-20.jpg?700|}} **Eylem Bilgileri** ^Özellik^Değer^ |Eylem Adı|KPN-Siparişteki Kuponun Numarasını Sipariş Etiketine Güncelle| |Eylem Tipi|Sipariş Durumu Değiştir| ^Parametreler^^ |Parametre - State Name|Kupon Numarası| |Parametre - Group Order|6| |Parametre - Durum|[:Kupon Numarası]| |Parametre - State Order|6| === Sipariş Durumunu Güncellenmesi Kuralı === 2.2. maddede oluşturduğumuz Adisyona ikram Ürün ekle kuralınını güncelleştirerek, bu eylemlerimizi orada çalıştıracağız. 2.2. madde de oluşturduğumuz Kuralın içerisine daha önceden oluşturduğumuz 3 farklı eylemi daha ekleyeceğiz. == 3.2.1. Kurala Siparişteki Kupon Numarasını Güncelle Eylemi Eklenmesi == {{:tr:promosyon_kpn:kupon-promosyon-21.jpg?700|}} Bu Eylem ile Adisyona İkram Ürün eklendikten hemen sonra Siparişteki Kupon Numarasını Güncellemesi için Eylemi ekliyoruz ve Kupon Numarası değerini de {ENTITY NAME:Kupon} biçiminde veriyoruz. == 3.2.2. Kurala Kupondaki Kullanım Bilgisini Güncelle Eylemi Eklenmesi == {{:tr:promosyon_kpn:kupon-promosyon-22.jpg?700|}} İkinci olarak Kuralımıza Kupondaki Kullanım Bilgisini Güncelle Eylemini de ekliyoruz Bu eylem ile adisyona ikram olan Kahve eklendikten sonra Varlık Bilgilerindeki Kupon Kullanım alanına Adisyonda etiketini atıyoruz. Kupon Numarasını bulması için bir önceki eylemde okuduğu Kupon Numarasını değerini ''{ENTITY NAME:Kupon}'' biçiminde giriyoruz. == 3.2.3. Adisyona Kuponu Çağır Eylemi Eklenmesi == {{:tr:promosyon_kpn:kupon-promosyon-23.jpg?700|}} Son olarak da aynı kural içerisine Adisyona Kuponu Çağır eylemini ekliyoruz. Burada bulunan Kupon Numarası değişkenine Kısıtlamalarda verdiğimiz * değerini vererek kuponumuzun numarasını adisyonumuzda ürünümüzn altın sipariş etiketi olarak eklemiş oluyoruz. **//Durum Gözden Geçirme...//** Son Kuralımızıda Kaydettikten sonra Fastfood ekranında yeni bir Kupon numarası çağırdığımızda neler olduğunu bi görelim. {{:tr:promosyon_kpn:kupon-promosyon-24.jpg?700|}} Kahve Kuponumuzu barkod okuyucudan okutarak veya elle kodu girerek enter'a bastığımızda kuponun daha önce kullanılmamış olduğuna baktıktan sonra ikram Kahve'yi adisyona ekledi ve altında bulunan sipariş etiketlerinide sırasıyla güncelledi ve Kupon adını da etikete atayarak ürünün altına yazdı. Bu ekran görüntüsünde dikkat edecek olursanız, Kahve'nin fiyatı 4 TL olmasına rağmen adisyon altında herhangi bir rakam göstermedi. Çünkü ürünü bu belgenin üst taraflarında 2.1. numaralı maddede oluşturduğumuz Ürün Ekle eyleminde Fiyat Hesapla değerinin False olarak vermiştik. ==== 4. Adisyona Eklenen İkram Ürünü İptal etme (Almaktan vazgeçme) ==== Adisyona otomatik olarak eklettiğimi ikram Kahve ürünün son anda müşteri kullanmak istemeyip İptal etmek istediğinde Adisyondan çıkarıldıktan sonra kuponunun kullanım durumunun kullanılmamış olarak tekrar düzenlenmesi gerekir. {{:tr:promosyon_kpn:kupon-promosyon-26.jpg?700|}} **Kural Değerleri** ^Özellik^Değer^ |Kural Adı|KPN-Kupon Kullanım Durumunu Sipariş İptal Edildiğinde Güncelle| |Olay Adı|Sipariş İptal Edilmiş| ^Kısıtlamalar^^^ |Eğer Kural Çalışırsa|EŞLEŞME olmalıdır| ^Özel Kısıtlama Ekle^^^ |{ORDER STATE:Kupon Numarası}|Boş Değilse| | ^Eylemler^^^ |Eylem|Kupondaki Kullanım Bilgisini Güncelle| |:::|Kupon Numarası|{ORDER STATE:Kupon Numarası}| |:::|Değer|Hayır| Bu kuralda Kupon Numarası Boş Olmayan varlıklarda Kupon Numarasını tekrar sipari etiketinden okuyarak, kullanım durumu değişkenini de Hayır olarak güncelliyor. ==== 5. Kullanılan Kuponların Kullanım Durumlarının Güncellenmesi ==== Kuponlar kullanılarak ikram Kahveleri verildikten sonra tekrar kullanımlarını engellemek için Varlık Özel alanlarında yer alan Kullanım Durumu bilgisinin Evet olarak güncelleştirilmesi gerekmektedir. Bunun için Kupon Kullanım Durumunu Güncelleştir eylemini çalıştıracak yeni bir Kural daha oluşturuyoruz. {{:tr:promosyon_kpn:kupon-promosyon-27.jpg?700|}} **Kural Değerleri** ^Özellik^Değer^ |Kural Adı|KPN-Kupon Kullanılıp Gönderildikten sonra işaretle| |Olay Adı|Sipariş Durumj Değişti| ^Kısıtlamalar^^^ |Eğer Kural Çalışırsa|EŞLEŞME olmalıdır| ^Özel Kısıtlama Ekle^^^ |Durum|Eşittir|Gönderildi| |{ORDER STATE:Kupon Numarası}|Boş Değilse| | ^Eylemler^^^ |Eylem|Kupondaki Kullanım Bilgisini Güncelle| |:::|Kupon Numarası|{ORDER STATE:Kupon Numarası}| |:::|Değer|Evet| Yukarıda anlatılan kural ile tam tersi işlemi yapıyor bu yeni kural. Kupon Kullanıldığında Kullanım Durumunu Evet olarak güncelleştiriyor. ==== 6. Kupon kullanımı sırasında operasyonel geri bildirimlerin oluşturulması ==== Kuponları kullanırken aynı barkod etiketini tekrar yazmadan veya kullanılmış bir etiket tekrar okuttuğumuz zaman kullanıcıyı uyarıcı mesajlar çıkartabilmek için ihtiyacımız olan bir adımdır. 1 Eylem ve 2 kural ile iki farklı durum için Mesaj göstereceğiz, sizde buradaki durumları kullanarak farklı amaçlar için daha başka mesajlar gösterebilirsiniz. === 6.1. Mesaj Göster Eylemini Oluşturulması === {{:tr:promosyon_kpn:kupon-promosyon-29.jpg?700|}} **Eylem Bilgileri** ^Özellik^Değer^ |Eylem Adı|KPN-Kupon Mesajları| |Eylem Tipi|Mesaj Göster| ^Parametreler^^ |Parametre - Mesaj|[:KuponMesaj]| Bu eylem ile [:KuponMesaj] değişkenini kural içerisinde değiştirerek gösterecek. === 6.2. Kupon Aynı Adisyonda Tekrar Okutulduğunda Hata MesajI Göster Kuralı === Bu Kural çalıştığında Kupon Kullanım Durumu Adisyonda ise kullanıcının karşısına ''Aynı Kuponu Okuttunuz'' yazan bir mesaj çıkaracak. {{:tr:promosyon_kpn:kupon-promosyon-30.jpg?700|}} **Kural Değerleri** ^Özellik^Değer^ |Kural Adı|KPN-Kupon Aynı Adisyonda Tekrar Okutulduğunda Hata MesajI Göster| |Olay Adı|Belge Varlığı Değişti| ^Kısıtlamalar^^^ |Eğer Kural Çalışırsa|EŞLEŞME olmalıdır| ^Özel Kısıtlama Ekle^^^ |EntityTypeName|Eşittir|Kuponlar| |{ENTITY DATA:Kupon:Kupon Kullanımı}|Eşittir|Adisyonda| ^Eylemler^^^ |Eylem - 1|Adisyona Kupon Çağır| |:::|Kupon Numarası|*| |Eylem - 2|Kupon Mesajları| |:::|KuponMesaj|Aynı Kuponu okuttunuz.| === 6.3. Kullanılmış Kupon tekrar okutulduğunda Hata MesajI Göster Kuralı === Bu Kural çalıştığında Kupon Kullanım Durumu Evet ise kullanıcının karşısına ''Bu Kullanılmış bir Kupon. Tekrar Kullanılamaz.'' yazan bir mesaj çıkaracak. {{:tr:promosyon_kpn:kupon-promosyon-31.jpg?700|}} **Kural Değerleri** ^Özellik^Değer^ |Kural Adı|KPN-Kupon Aynı Adisyonda Tekrar Okutulduğunda Hata MesajI Göster| |Olay Adı|Belge Varlığı Değişti| ^Kısıtlamalar^^^ |Eğer Kural Çalışırsa|EŞLEŞME olmalıdır| ^Özel Kısıtlama Ekle^^^ |EntityTypeName|Eşittir|Kuponlar| |{ENTITY DATA:Kupon:Kupon Kullanımı}|Eşittir|Evet| ^Eylemler^^^ |Eylem - 1|Adisyona Kupon Çağır| |:::|Kupon Numarası|*| |Eylem - 2|Kupon Mesajları| |:::|KuponMesaj|Bu Kullanılmış bir Kupon. Tekrar Kullanılamaz.| **//Durum Gözden Geçirme...//** Daha önce kullanılmış bir Kupon tekrar okutulduğunda aşağıdaki gibi bir Mesajla karılaşılacaktır. {{:tr:promosyon_kpn:kupon-promosyon-32.jpg?700|}}