Senaryo :
Sevk edilen siparişleri alıp ilgili cariye mail atar.
Örnekler diadevdays sunucusu üzerinde çalışmaktadır.
Örnek Kod (python):
# -*- coding: utf-8 -*-
'''
Örnek çalışma:
Sevkedilen siparişleri listele ve mail gönder.
'''
import sys
import json
from pprint import pprint
import urllib2
# servis çağrısı atılacak adres ön eki
wsAdresMain = 'https://diadevdays.ws.dia.com.tr/api/v3/'
# diadevdays sunucusundaki ilgili firma kodu
firma_kodu = 4
# diadevdays sunucusundaki ilgili dönem kodu
donem_kodu = 1
def callWs(wsAdres, postBody):
# Gönderilen adrese, gönderilen json çağrısı atar,
# sonuç başarılıysa döndürür, yoksa çıkar
req = urllib2.Request(wsAdres,
data=json.dumps(postBody),
headers={"Content-Type": "application/json"})
wsResult = urllib2.urlopen(req).read()
wsResult = json.loads(wsResult)
# sonuç kodu 200 döndüyse başarılı
if wsResult and wsResult['code'] == '200':
# msg içerisinde sessin id çıkaralım
return wsResult
else:
pprint(wsResult)
sys.exit(0)
############################################
# 1. AŞAMA : SESSION ID ALALIM
# login ws parametreleri
postBody = {"login" :
{"username": 'ws',
"password": 'ws',
"disconnect_same_user": True,
"lang": 'tr',
"params": {"apikey": "773f9085-9dc8-4f50-b34d-f7b56da33b5f"}
}
}
wsResult = callWs(wsAdresMain + 'sis/json', postBody)
session_id = wsResult['msg']
print "session_id: %s" % session_id
############################################
# 2. AŞAMA : SEVK EDİLEN SİPARİŞLERİ LİSTELEYELİM.
postBody = {"scf_siparis_listele" :
{"session_id": session_id,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"filters":[{"field": "siparisdurum", "operator": "=", "value": "- Tamamı Sevk Edilmiş"}],
"sorts": [{"field": "_cdate", "sorttype": "DESC"}],
"params": "",
"limit": 1,
"offset": 0
}
}
siparisResult = callWs(wsAdresMain + 'scf/json', postBody)
siparisResult = siparisResult['result']
############################################
# 3. AŞAMA : SEVK EDİLEN SİPARİŞLER İÇİN MAIL GÖNDERELİM.
for siparis in siparisResult:
# Sipariş carisinin e-postasını bulalım.
postBody = {"scf_carikart_getir" :
{"session_id": session_id,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"filters": "",
"sorts": "",
"params": {"_key": siparis.get('_key_scf_carikart') or 0},
"limit": 1,
"offset": 0
}
}
cariResult = callWs(wsAdresMain + 'scf/json', postBody)
cariResult = cariResult['result']
subject = raw_input("Gönderilecek e-postanın konusunu giriniz: ")
body = raw_input("Gönderilecek e-postanın içeriğini giriniz: ")
if cariResult['eposta']:
# Elimizdeki bilgileri kullanarak e-postamızı oluşturup gönderelim.
postBody = {"sis_eposta_gonder" :
{"session_id": session_id,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"sender": "bilgi@dia.com.tr",
"cc": cariResult['eposta'],
"bcc": "",
"subject": subject,
"body": body
}
}
callWs(wsAdresMain + 'sis/json', postBody)
print u"'%s' ünvanlı cariye eposta gönderildi. (Eposta Adresi:%s)" % (cariResult['unvan'], cariResult['eposta'])
else:
print u"DİKKAT: '%s' ünvanlı cariye eposta adresi tanımlanmamış!" % cariResult['unvan']