Product Price¶
ProductPrice Data¶
{
"pk": 2,
"product": 913,
"price": "62.44",
"price_list": 1,
"currency_type": "try",
"tax_rate": "8.00",
"retail_price": "249.75",
"extra_field": {},
"discount_percentage": "75.00",
"modified_date": "2017-01-23T18:29:23.716095Z"
}
productprice yer alan verinin içerisinde;
Ürün entegrasyonu ile ilgili channel_app_template.app.tasks altında çalışan tasklar
insert_prices
Akinon’da satış tarafına ilk defa insert edilmesi gereken ProductPriceları alır ve bu verileri
channel.commands.product_prices.SendInsertedPrices’da yer alan komut’a gönderir. Bu komut ile satış kanalına ürünün fiyat bilgisi oluşturulur.İstenildiği durumda aşağıda listesi verilen parametre değerleri ile Fiyat Verisi zenginleştirilebilir.
PriceService içerisinde yer alan insert_product_prices servisine ait parametreler ve açıklamaları aşağıdaki gibidir.
Dikkat
Fiyat Servisi içerisinde yer alan insert_product_prices servisine ait parametreler
add_stock : Ürün Fiyatına ürün stok verisi eklenir. Ürün Fiyat Datasına Stock Datası Eklemekadd_product_objects : Ürün Fiyatına ürün verisi eklenir. Ürün Fiyat Datasına Ürün Datası Eklemekis_sync : Ürün Fiyatı satış kanalına yollandığında durumu hemen mi ediniliyor Senkron veya Asenkron Satış Kanalı Süreç yoksa asenkron bir şekilde mi ediniliyor olduğudur.
- class SendInsertedPrices(integration, objects=None, batch_request=None, **kwargs)[kaynak]¶
- get_data()[kaynak]¶
Bu fonksiyon ürünlerin fiyat bilgisini omnitron’dan satış kanalına iletmek için atılacak istekte gönderilecek veri hazırlanır. Response olarak liste içerinde ProductPrice döndürülmesi gerekir.
- validated_data(data)[kaynak]¶
Parametre olarak get_data fonksiyonunun döndüğü cevabı alır. Eğer satış kanalına gönderilecek ürün fiyatları üzerinde bir değrulama yapılması gerekiyor ise kullanılır. Doğrulama yapılmayacak ise parametre olarak verilen data’nın döndürülmesi gerekir.
- transform_data(data)[kaynak]¶
Parametre olarak validated_data fonksiyonunun döndürdüğü cevabı alır. Eğer satış kanalına veri göndermeden önce veri üzerinde değişiklik yapılması gerekiyor ise kullanılır. Cevap olarak iletilmek istenen verinin son halini döndürür.
- send_request(transformed_data)[kaynak]¶
Parametre olarak transform_data fonksiyonunun döndürdüğü cevabı alır. Bu fonksiyon aldığı veriyi satış kanalının ilgili uç noktasına isteğin atılacağı yerdir. Cevap olarak response veya response ile gelen veriyi dönmesi gerekir.
Dikkat
Bu kısımda dönülecek cevap normalize_response fonksiyonuna iletileceği için veri döndürürken veri tipleri konusunda dikkat etmek gerekmektedir.
- normalize_response(data, validated_data, transformed_data, response)[kaynak]¶
Bu fonksiyon insert_prices adımında ürünlerimizin fiyatını satış kanalına iletmek için kullanmış olduğumuz verileri toplayıp son haline getirdiğimiz yerdir. Bu fonksiyonun döneceği cevap doğrudan insert_product_prices fonksiyonunda kullanılacaktır.
Bu methoda süreç asenkron ise satış kanalından dönen remote_batch_id batch_request’e işlenmelidir.
>>> remote_batch_id = response.get("remote_batch_request_id") >>> self.batch_request.remote_batch_id = remote_batch_id >>> return "", report, dataDikkat
Bu kısımda dönülecek cevap 3 parçadan oluşmalıdır.
response_data: Satış kanalından dönen verinin işlenmiş halidir. Tipi string veya liste olabilir. Dönen cevapda kullanılacak bir veri yok ise boş string dönülmesi yeterlidir. Dönen response kullanılacak ise dönen veri liste tipinde ve içerisindeki elemanların tipi BatchRequestResponseDto olmak zorundadır.report: Satış kanalından dönen cevabı işlerken oluşturduğumuz hata raporlarıdır.data: Fonksiyonumuzun aldığı ilk parametre, get_data fonksiyonundan aldığımız cevap.# örnek return return response_data, report, data
update_prices
Akinon’da satış tarafına güncellenmesi gereken ProductPriceları alır ve bu verileri
channel.commands.product_prices.SendUpdatedPrices’da yer alan komut’a gönderir. Bu komut ile satış kanalında bulunan ürünün fiyat bilgisi güncellenir.İstenildiği durumda aşağıda listesi verilen parametre değerleri ile Fiyat Verisi zenginleştirilebilir.
PriceService içerisinde yer alan update_product_prices servisine ait parametreler ve açıklamaları aşağıdaki gibidir.
Dikkat
Fiyat Servisi içerisinde yer alan insert_product_prices servisine ait parametreler
add_stock : Ürün Fiyatına ürün stok verisi eklenir. Ürün Fiyat Datasına Stock Datası Eklemekadd_product_objects : Ürün Fiyatına ürün verisi eklenir. Ürün Fiyat Datasına Ürün Datası Eklemekis_sync : Ürün satış kanalına yollandığında durumu hemen mi ediniliyor Senkron veya Asenkron Satış Kanalı Süreç yoksa asenkron bir şekilde mi ediniliyor olduğudur.
- class SendUpdatedPrices(integration, objects=None, batch_request=None, **kwargs)[kaynak]¶
- get_data()[kaynak]¶
Bu fonksiyonda ürünlerin güncellenmiş fiyat bilgisini omnitron’dan satış kanalına iletmek için atılacak istekte gönderilecek veri hazırlanır. Response olarak liste içerinde ProductPrice döndürülmesi gerekir.
- validated_data(data)[kaynak]¶
Parametre olarak get_data fonksiyonunun döndüğü cevabı alır. Eğer satış kanalına gönderilecek ürün fiyatları üzerinde bir değrulama yapılması gerekiyor ise kullanılır. Doğrulama yapılmayacak ise parametre olarak verilen data’nın döndürülmesi gerekir.
- transform_data(data)[kaynak]¶
Parametre olarak validated_data fonksiyonunun döndürdüğü cevabı alır. Eğer satış kanalına veri göndermeden önce veri üzerinde değişiklik yapılması gerekiyor ise kullanılır. Cevap olarak iletilmek istenen verinin son halini döndürür.
- send_request(transformed_data)[kaynak]¶
Parametre olarak transform_data fonksiyonunun döndürdüğü cevabı alır. Bu fonksiyon aldığı veriyi satış kanalının ilgili uç noktasına isteğin atılacağı yerdir. Cevap olarak response veya response ile gelen veriyi dönmesi gerekir.
Dikkat
Bu kısımda dönülecek cevap normalize_response fonksiyonuna iletileceği için veri döndürürken veri tipleri konusunda dikkat etmek gerekmektedir.
- normalize_response(data, validated_data, transformed_data, response)[kaynak]¶
Bu fonksiyon update_prices adımında ürünlerimizin fiyatını satış kanalına iletmek için kullanmış olduğumuz verileri toplayıp son haline getirdiğimiz yerdir. Bu fonksiyonun döneceği cevap doğrudan insert_product_prices fonksiyonunda kullanılacaktır.
Bu methoda süreç asenkron ise satış kanalından dönen remote_batch_id batch_request’e işlenmelidir.
>>> remote_batch_id = response.get("remote_batch_request_id") >>> self.batch_request.remote_batch_id = remote_batch_id >>> return "", report, dataDikkat
Bu kısımda dönülecek cevap 3 parçadan oluşmalıdır.
response_data: Satış kanalından dönen verinin işlenmiş halidir. Tipi string veya liste olabilir. Dönen cevapda kullanılacak bir veri yok ise boş string dönülmesi yeterlidir. Dönen response kullanılacak ise dönen veri liste tipinde ve içerisindeki elemanların tipi BatchRequestResponseDto olmak zorundadır.report: Satış kanalından dönen cevabı işlerken oluşturduğumuz hata raporlarıdır.data: Fonksiyonumuzun aldığı ilk parametre, get_data fonksiyonundan aldığımız cevap.# örnek return return response_data, report, data
check_prices
Akinon’da satış tarafına asenkron olarak güncellenmiş veya yaratılmış fakat durumu bilinmeyen BatchRequesti alır ve bu verileri
channel.commands.product_prices.CheckPrices’da yer alan komut’a gönderir. Bu komut ile satış kanalında bulunan ürünün fiyat bilgisinin yaratılma veya güncellenme durumunun öğrenilmesini sağlar.İstenildiği durumda aşağıda listesi verilen parametre değerleri ile Fiyat Verisi zenginleştirilebilir.
PriceService içerisinde yer alan get_price_batch_requests fonksiyonu kullanılır.
- class CheckPrices(integration, objects=None, batch_request=None, **kwargs)[kaynak]¶
- get_data()[kaynak]¶
Bu fonksiyonda ürünlerin satış kanalına iletilmiş fiyat bilgisinin durumunu öğrenmek için atılacak istekte gönderilecek veri hazırlanır. Response olarak liste içerinde BatchRequest döndürülmesi gerekir.
- validated_data(data)[kaynak]¶
Parametre olarak get_data fonksiyonunun döndüğü cevabı alır. Eğer satış kanalına gönderilmiş ürün fiyatları verisi üzerinde bir değrulama yapılması gerekiyor ise kullanılır. Doğrulama yapılmayacak ise parametre olarak verilen data’nın döndürülmesi gerekir.
- transform_data(data)[kaynak]¶
Parametre olarak validated_data fonksiyonunun döndürdüğü cevabı alır. Eğer satış kanalına veri göndermeden önce veri üzerinde değişiklik yapılması gerekiyor ise kullanılır. Cevap olarak iletilmek istenen verinin son halini döndürür.
- send_request(transformed_data)[kaynak]¶
Parametre olarak transform_data fonksiyonunun döndürdüğü cevabı alır. Bu fonksiyon aldığı veriyi satış kanalının ilgili uç noktasına isteğin atılacağı yerdir. Cevap olarak response veya response ile gelen veriyi dönmesi gerekir.
Dikkat
Bu kısımda dönülecek cevap normalize_response fonksiyonuna iletileceği için veri döndürürken veri tipleri konusunda dikkat etmek gerekmektedir.
- normalize_response(data, validated_data, transformed_data, response)[kaynak]¶
Bu fonksiyon get_price_batch_requests adımında ürünlerimizin fiyatının işlenme durumunu kontrol etmek için satış kanalına sorgu atarken kullanmış olduğumuz verileri ve dönen cevabı toplayıp son haline getirdiğimiz yerdir. Bu fonksiyonun döneceği cevap doğrudan get_price_batch_requests fonksiyonunda kullanılacaktır.
Dikkat
Bu kısımda dönülecek cevap 3 parçadan oluşmalıdır.
response_data: Satış kanalından dönen verinin işlenmiş halidir. Tipi string veya liste olabilir. Dönen cevapda kullanılacak bir veri yok ise boş string dönülmesi yeterlidir. Dönen response kullanılacak ise dönen veri liste tipinde ve içerisindeki elemanların tipi BatchRequestResponseDto olmak zorundadır.report: Satış kanalından dönen cevabı işlerken oluşturduğumuz hata raporlarıdır.data: Fonksiyonumuzun aldığı ilk parametre, get_data fonksiyonundan aldığımız cevap.# örnek return return response_data, report, data
Ürün Fiyat Datasına Stock Datası Eklemek¶
{
"pk": 2,
"product": 913,
"price": "62.44",
"price_list": 1,
"currency_type": "try",
"tax_rate": "8.00",
"retail_price": "249.75",
"extra_field": {},
"discount_percentage": "75.00",
"modified_date": "2017-01-23T18:29:23.716095Z",
"productstock":{
"pk": 1,
"product": 2250,
"stock": 46,
"stock_list": 1,
"unit_type": "qty",
"extra_field":{},
"sold_quantity_unreported": 0,
"modified_date": "2017-01-23T13:37:31.947171Z"
}
}
Ürün Fiyat Datasına Ürün Datası Eklemek¶
{
"pk": 2,
"product": 913,
"price": "62.44",
"price_list": 1,
"currency_type": "try",
"tax_rate": "8.00",
"retail_price": "249.75",
"extra_field": {},
"discount_percentage": "75.00",
"modified_date": "2017-01-23T18:29:23.716095Z",
"product": {
"pk": 12227,
"name": "Kırmızı Tişört",
"base_code": "1KBATC0231",
"sku": "1KBATC0231001",
"product_type": "0",
"is_active": true,
"parent": null,
"attributes": {
"boyut": "34X34",
"renk": "001",
"uretim_yeri": "Türkiye",
"materyal": "%100 POLYESTER",
},
"productimage_set": [
{
"pk": 20044,
"status": "active",
"image": "http://localhost:8001/media/products/2021/10/17/12227/1bfe74b4-175e-4c1a-80f2-b355feae498c.jpg"
}
],
"attribute_set": 2,
"productization_date": "2017-01-23T16:40:58.578504Z"
}
}