def update_items(): """Update the prices, quantities, and availability of all items in the database""" items = list(ITEM_DB.fetch()) items = [Item(**i) for i in items[0]] api = Connection(appid=app.config['EBAY_APP_ID'], config_file=None) for item in items: try: r = api.execute('GetSingleItem', { 'ItemID': str(item.ebay_id), 'IncludeSelector': 'Details' }) except: print('call failed for {}'.format(item.ebay_id)) continue d = r.dict() if d['Item']['ListingStatus'] == 'Completed': ITEM_DB.delete(item.key) else: item.price = float(d['Item']['ConvertedCurrentPrice']['value']) quantity = int(d['Item']['Quantity']) - int( r.dict()['Item']['QuantitySold']) item.quantity = quantity item.available = True if quantity > 0 else False item.picture_url = d['Item']['PictureURL'][0] item.seller = d['Item']['Seller']['UserID'] ITEM_DB.put(item.dict())
def update_item(ebay_id): """Update the info for the specified item""" api = Connection(appid=app.config['EBAY_APP_ID'], config_file=None) item = next(ITEM_DB.fetch(query={"ebay_id": ebay_id})) if item: item = Item(**item[0]) try: r = api.execute('GetSingleItem', { 'ItemID': str(item.ebay_id), 'IncludeSelector': 'Details' }) except: print('call failed for {}'.format(item.ebay_id)) return item.price = float(r.dict()['Item']['ConvertedCurrentPrice']['value']) quantity = int(r.dict()['Item']['Quantity']) - int( r.dict()['Item']['QuantitySold']) item.quantity = quantity item.available = True if quantity > 0 else False item.picture_url = r.dict()['Item']['PictureURL'][0] item.seller = r.dict()['Item']['Seller']['UserID'] ITEM_DB.put(item.dict()) else: print('No item with that ID')
from ebaysdk.shopping import Connection if __name__ == '__main__': api = Connection(config_file='ebay.yaml', siteid="EBAY-US") request = { 'ItemID': '324258671850', 'outputSelector': 'SellerInfo', } response = api.execute('GetSingleItem', request) with open('data_byitemID.xml', 'w') as f: f.write(response.text)