altuntasmuhammet / trendyol-api-python-sdk

Unofficial Trendyol API Python SDK
MIT License
11 stars 3 forks source link

Siparişi "Picking" Olarak Update Etmek #3

Open fuchstech opened 2 years ago

fuchstech commented 2 years ago
https://api.trendyol.com/sapigw/suppliers/{supplierId}/shipment-packages/{Id}
-------------------------------------------------------------------------------------------------------
{
    "lines": [{
        "lineId": {lineId}, // long gönderilmelidir.
        "quantity": 3 // int gönderilmelidir.
    }],
    "params": {},
    "status": "Picking"
}

Merhabalar ben yaptığım uygulamada 'Created' olan siparişleri 'Picking' olarak update etmek istiyorum ve anladığım kadarıyla data = self._api.call("PUT", url, params=params, headers=None, files=None) Bu şekilde PUT isteği yollayacağım ancak göndermem gereken parametreleri nasıl gönderebileceğimi çözemedim henüz. Yardımcı olabilir misiniz ?

fuchstech commented 2 years ago

Merhabalar birkaç yorucu saatin üzerine sonunda siparişleri picking olarak update etmeyi başardım aşağıdaki kod ile Ancak kodda sebebini bilmediğim bir şekilde hata alıyorum. Bunu nasıl çözebilirim `def update_package_as_picking(self, package_id, supplier_id, lines=None, quantity=None):

endpoint = "suppliers/{supplierId}/shipment-packages/{Id}".format(
supplierId=supplier_id,
Id = package_id
)

params={
"lines": [{
    "lineId": lines, # long gönderilmelidir.
    "quantity": quantity # int gönderilmelidir.
}],
"params": {},
"status": "Picking"
}

url = urljoin(self.base_url, endpoint)

self._api.call("PUT", url, params=params, headers=None, files=None) File "/home/fuchs/.local/lib/python3.8/site-packages/trendyol_sdk/api.py", line 53, in call return response.json() File "/home/fuchs/.local/lib/python3.8/site-packages/requests/models.py", line 975, in json raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

fuchstech commented 2 years ago
    try:
        self.update = service.update_package_as_picking(package_id=id, supplier_id=supplier_id,lines=lines, quantity=quantity)
    except Exception:
        pass

Veri doğru bir şekilde dönüyor ama sadece hata veriyor. except kullanarak geçici olarak çözdüm problemi. Farklı bir çözüm öneriniz yoksa eğer kapatıyorum issueyu

sudo-do commented 1 year ago

Parametreleri ayarlayıp, daha sonra parametreleri parametrelere point edip, json'un bu sonsuz döngüyü encode etmesini bekliyoruz sonsuz döngüye giriyor. PR açıyorum.

sudo-do commented 1 year ago

@Passeportout Çalışan koda dokunulmaz ama kodunuzu güncelleyerek hem döngüden doğan performans kaybını kazanır hem de trendyolun picking olarak güncelleme isteğinizi reddetmesi halinde sebebini de bilirsiniz.