Product Stock¶
ProductStock Data¶
{
"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"
}
productstock yer alan verinin içerisinde;
Ürün entegrasyonu ile ilgili channel_app_template.app.tasks altında çalışan tasklar
insert_stocks
Akinon’da satış tarafına ilk defa insert edilmesi gereken ProductStockları alır ve bu verileri
channel.commands.product_stocks.SendInsertedStocks’da yer alan komut’a gönderir. Bu komut ile satış kanalına ürünün stok bilgisi oluşturulur.İstenildiği durumda aşağıda listesi verilen parametre değerleri ile Stok Verisi zenginleştirilebilir.
StockService içerisinde yer alan insert_product_stocks servisine ait parametreler ve açıklamaları aşağıdaki gibidir.
Dikkat
Stok Servisi içerisinde yer alan insert_product_stocks servisine ait parametreler
add_price : Ürün Stocklarına ürün fiyat verisi eklenir. Ürün Stock Datasına Fiyat Datası Eklemekadd_product_objects : Ürün Stocklarına ürün verisi eklenir. Ürün Stock Datasına Ürün Datası Eklemekis_sync : Stok 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 SendInsertedStocks(integration, objects=None, batch_request=None, **kwargs)[kaynak]¶
- get_data()[kaynak]¶
Bu fonksiyon ürünlerin stok bilgisini omnitron’dan satış kanalına iletmek için atılacak istekte gönderilecek veri hazırlanır. Response olarak liste içerinde ProductStock 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 stokları ü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_stocks taskında ürünlerimizin stokları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_stocks 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_stocks
Akinon’da satış tarafına güncellenmesi gereken ProductStockları alır ve bu verileri
channel.commands.product_stocks.SendUpdatedStocks’da yer alan komut’a gönderir. Bu komut ile satış kanalında bulunan ürünün stok bilgisi güncellenir.İstenildiği durumda aşağıda listesi verilen parametre değerleri ile Stok Verisi zenginleştirilebilir.
StockService içerisinde yer alan update_product_stocks servisine ait parametreler ve açıklamaları aşağıdaki gibidir.
Dikkat
Stok Servisi içerisinde yer alan insert_product_stocks servisine ait parametreler
add_price : Ürün Stocklarına ürün fiyat verisi eklenir. Ürün Stock Datasına Fiyat Datası Eklemekadd_product_objects : Ürün Stocklarına ürün verisi eklenir. Ürün Stock Datasına Ürün Datası Eklemekis_sync : Stok 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 SendUpdatedStocks(integration, objects=None, batch_request=None, **kwargs)[kaynak]¶
- get_data()[kaynak]¶
Bu fonksiyonda ürünlerin güncellenmiş stok bilgisini omnitron’dan satış kanalına iletmek için atılacak istekte gönderilecek veri hazırlanır. Response olarak liste içerinde ProductStock 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 stokları ü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 stokları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 update_product_stocks 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_stocks
Akinon’da satış tarafına asenkron olarak güncellenmiş veya yaratılmış fakat durumu bilinmeyen BatchRequesti alır ve bu verileri
channel.commands.product_stocks.CheckStocks’da yer alan komut’a gönderir. Bu komut ile satış kanalında bulunan ürünün stok bilgisinin yaratılma veya güncellenme durumunun öğrenilmesini sağlar.StockService içerisinde yer alan get_stock_batch_requests fonksiyonu kullanılır.
- class CheckStocks(integration, objects=None, batch_request=None, **kwargs)[kaynak]¶
- get_data()[kaynak]¶
Bu fonksiyonda ürünlerin satış kanalına iletilmiş stok 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 stokları 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 check_stocks taskında ürünlerimizin stokları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_stock_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 Stock Datasına Fiyat Datası Eklemek¶
{
"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",
"productprice": {
"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"
}
}
Ürün Stock Datasına Ürün Datası Eklemek¶
{
"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",
"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"
}
}