Esempio n. 1
0
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())
Esempio n. 2
0
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')
Esempio n. 3
0
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)