İçindekiler

Örnek 15

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']))