Senaryo :
Bir markaya ait tüm stokların fiyat1 değerini %15 arttırarak fiyatı güncelleyelim.
Örnekler diadevdays sunucusu üzerinde çalışmaktadır.
Örnek Kod (python):
# coding=utf-8
import simplejson
import treq
import base64
import urllib2
from datetime import datetime
from pprint import pprint
wsAdresMain = 'https://diadevdays.ws.dia.com.tr/api/v3/'
firma_kodu = 4
donem_kodu = 1
apikey = "773f9085-9dc8-4f50-b34d-f7b56da33b5f"
def callWs(wsAdres, postBody):
try:
postBody = simplejson.dumps(postBody, cls=simplejson.JSONEncoder)
req = urllib2.Request(wsAdres,
data=postBody,
headers={"Content-Type": "application/json"})
content = urllib2.urlopen(req).read()
except Exception, e:
print("Exception: {}".format(repr(e)))
wsResult = simplejson.loads(content)
return wsResult
loginBody = {"login" :
{"username": "ws",
"password": "ws",
"disconnect_same_user": True,
"lang": "tr",
"params": {"apikey": apikey}
}
}
loginResult = callWs(wsAdresMain + 'sis/json', loginBody)
sessionID = loginResult['msg']
if not sessionID:
print("Login yapilamadi")
exit(0)
stokListeleBody = {"scf_stokkart_listele" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"filters":[{"field": "durum", "operator": "=", "value": "A"},
{"field": "marka", "operator": "=", "value": "BEKO"}],
"sorts": [{"field": "stokkartkodu", "sorttype": "ASC"}],
"params": {"_key_sis_depo": 0,
"_key_sis_depo_filtre": 0,
"tarih": "2099-12-31"
},
"limit": 100,
"offset": 0
}
}
stokListeResult = callWs(wsAdresMain + 'scf/json', stokListeleBody)
for stokBilgi in stokListeResult['result']:
stokGuncelleBody = {"scf_stokkart_guncelle" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"kart":{
"_key": stokBilgi['_key'],
"m_birimler": [{
"_key": stokBilgi['anabirimkey'],
"fiyat1": float(stokBilgi['fiyat1']) + float(stokBilgi['fiyat1']) * 0.15}
]
}
}
}
stokGuncelleResult = callWs(wsAdresMain + 'scf/json', stokGuncelleBody)
print("{} kodlu stok guncellendi".format(stokBilgi['stokkartkodu']))