Esempio n. 1
0
    def getItemDetail(self, item_id=None):
        print "retrieving results for item",
        print item_id
        print "Using ebay trading SDK version %s" % ebaysdk.get_version()
        print "===================="
        # build and execute ebay API call GetItemTransactions
        api = trading(debug=self.opts.debug,
                      config_file=self.opts.yaml,
                      appid=self.opts.appid,
                      certid=self.opts.certid,
                      devid=self.opts.devid)
        token = api.api_config.get('token')

        api.execute('GetItem', {'ItemID': item_id, 'DetailLevel': 'ReturnAll'})

        if api.error():
            print api.error()
            raise Exception(api.error())

        if api.response_content():
            print "Call Success: %s in length" % len(api.response_content())

        print "Response code: %s" % api.response_code()
        print "Response DOM: %s" % api.response_dom()
        debug_results = parseString(self.removeNonAscii(
            api.response_content()))
        print debug_results.toprettyxml()
Esempio n. 2
0
def findSimilarProducts(opts):
    api = finding(siteid='EBAY', debug=opts.debug, appid=opts.appid, config_file=opts.yaml,
                  warnings=True)

    #1. grab JSON from server
    #2. stringify JSON
    #3. api.execute(stringifiedjson)
    #4. return descriptions, etc

    api.execute('findItemsAdvanced', {
    })

    if api.error():
        raise Exception(api.error())

    if api.response_content():
        print("Call Success: %s in length" % len(api.response_content()))

    print("Response code: %s" % api.response_code())
    print("Response DOM: %s" % api.response_dom())

    dictstr = "%s" % api.response_dict()
    print("Response dictionary: %s..." % dictstr[:250])

    print("Finding samples for SDK version %s" % ebaysdk.get_version())
    (opts, args) = init_options()

    findSimilarProducts(opts)
Esempio n. 3
0
def run(opts):
    api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml,
                   warnings=True)

    print("Shopping samples for SDK version %s" % ebaysdk.get_version())

    try:
        response = api.execute('FindProducts', {'QueryKeywords': 'Harry Potter', 'MaxEntries': 2, 'AvailableItemsOnly': 'true'})

        dump(api)

        print("Matching Titles:")
        for item in response.reply.Product:
            print(item.Title)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())
Esempio n. 4
0
def run(opts):
    api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, domain=opts.domain,
                   warnings=True)

    print("Shopping samples for SDK version %s" % ebaysdk.get_version())

    try:
        response = api.execute('FindPopularItems', {'QueryKeywords': 'Python'})

        dump(api)

        print("Matching Titles:")
        for item in response.reply.ItemArray.Item:
            print(item.Title)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())
Esempio n. 5
0
def run(opts):
    api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml,
                   warnings=True)

    print("Shopping samples for SDK version %s" % ebaysdk.get_version())

    try:
        response = api.execute('FindPopularItems', {'QueryKeywords': 'Python'})

        dump(api)

        print("Matching Titles:")
        for item in response.reply.ItemArray.Item:
            print(item.Title)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())
Esempio n. 6
0
def run(opts):
    api = shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml) 
    api.execute('FindPopularItems', {'QueryKeywords': 'Python'})

    print "Shopping samples for SDK version %s" % ebaysdk.get_version()

    if api.error():
        raise Exception(api.error())

    if api.response_content():
        print "Call Success: %s in length" % len(api.response_content())

    print "Response code: %s" % api.response_code()
    print "Response DOM: %s" % api.response_dom()

    dictstr = "%s" % api.response_dict()
    print "Response dictionary: %s..." % dictstr[:50]

    print "Matching Titles:"
    for item in api.response_dict().ItemArray.Item:
        print item.Title
Esempio n. 7
0
def run(opts):
    api = shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml,
                   warnings=True)
    api.execute('FindPopularItems', {'QueryKeywords': 'Python'})

    print "Shopping samples for SDK version %s" % ebaysdk.get_version()

    if api.error():
        raise Exception(api.error())

    if api.response_content():
        print "Call Success: %s in length" % len(api.response_content())

    print "Response code: %s" % api.response_code()
    print "Response DOM: %s" % api.response_dom()

    dictstr = "%s" % api.response_dict()
    print "Response dictionary: %s..." % dictstr[:50]

    print "Matching Titles:"
    for item in api.response_dict().ItemArray.Item:
        print item.Title
Esempio n. 8
0
    def getItemDetail(self, item_id = None):
        print "retrieving results for item",
        print item_id
        print "Using ebay trading SDK version %s" % ebaysdk.get_version()
        print "===================="
        # build and execute ebay API call GetItemTransactions
        api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid,
                      certid=self.opts.certid, devid=self.opts.devid)
        token = api.api_config.get('token')
        
        api.execute('GetItem', {'ItemID': item_id, 'DetailLevel': 'ReturnAll'})
        
        if api.error():
            print api.error()
            raise Exception(api.error())

        if api.response_content():
            print "Call Success: %s in length" % len(api.response_content())

        print "Response code: %s" % api.response_code()
        print "Response DOM: %s" % api.response_dom()
        debug_results = parseString(self.removeNonAscii(api.response_content()))
        print debug_results.toprettyxml()
Esempio n. 9
0
def run(opts):
    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid)

    api.execute('GetCharities', {'CharityID': 3897})

    # checkfor errors
    if api.error():
        raise Exception(api.error())

    print "Trading samples for SDK version %s" % ebaysdk.get_version()

    if api.response_content():
        print "Call Success: %s in length" % len(api.response_content())

    print "Response code: %s" % api.response_code()
    print "Response DOM: %s" % api.response_dom()

    dictstr = "%s" % api.response_dict()
    print "Response dictionary: %s..." % dictstr[:150]

    print api.response_dict().Charity.Name
    print api.response_content()
Esempio n. 10
0
def run(opts):

    p = parallel()
    apis = []

    api1 = finding(parallel=p, debug=opts.debug, appid=opts.appid, config_file=opts.yaml) 
    api1.execute('findItemsAdvanced', {'keywords': 'python'})
    apis.append(api1)

    api4 = html(parallel=p)
    api4.execute('http://www.ebay.com/sch/i.html?_nkw=Shirt&_rss=1')
    apis.append(api4)

    api2 = finding(parallel=p, debug=opts.debug, appid=opts.appid, config_file=opts.yaml) 
    api2.execute('findItemsAdvanced', {'keywords': 'perl'})
    apis.append(api2)

    api3 = finding(parallel=p, debug=opts.debug, appid=opts.appid, config_file=opts.yaml) 
    api3.execute('findItemsAdvanced', {'keywords': 'php'})
    apis.append(api3)

    p.wait()

    print "Parallel example for SDK version %s" % ebaysdk.get_version()

    if p.error():
        raise Exception(p.error())

    for api in apis:

        print "Call Success: %s in length" % len(api.response_content())

        print "Response code: %s" % api.response_code()
        print "Response DOM: %s" % api.response_dom()

        dictstr = "%s" % api.response_dict()
        print "Response dictionary: %s...\n" % dictstr[:50]
Esempio n. 11
0
def run(opts):
    api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml,
                   warnings=True)

    print("Shopping samples for SDK version %s" % ebaysdk.get_version())

    try:
        api.execute('FindPopularItems', {'QueryKeywords': 'Python'})

        if api.response_content():
            print("Call Success: %s in length" % len(api.response_content()))

        print("Response code: %s" % api.response_code())
        print("Response DOM: %s" % api.response_dom())

        dictstr = "%s" % api.response_dict()
        print("Response dictionary: %s..." % dictstr[:50])

        print("Matching Titles:")
        for item in api.response_dict().ItemArray.Item:
            print(item.Title)

    except ConnectionError as e:
        print e 
Esempio n. 12
0
        raise Exception(api.error())

    if api.response_content():
        print "Call Success: %s in length" % len(api.response_content())

    print "Response code: %s" % api.response_code()
    print "Response DOM: %s" % api.response_dom()

    dictstr = "%s" % api.response_dict()
    print "Response dictionary: %s..." % dictstr[:500]




if __name__ == "__main__":
    print "Finding samples for SDK version %s" % ebaysdk.get_version()
    (opts, args) = init_options()

    findQuery= {'keywords': "laptop" ,'categoryId': [{'value': "177"}],
        'itemFilter': [{'name': "Condition",'value': "New"},{'name': "LocatedIn",'value': "US"}],
        'paginationInput':{'entriesPerPage':100,'pageNumber':1}
    }      
    dict1=run(opts,findQuery)
    #for algo,val in dict1.iteritems():
    #    print algo
    #    raw_input('')
    #
    res=dict1['searchResult']
    items=res['item']#this is a list
    for element in items: 
      categoryId=element['primaryCategory']['categoryId']['value']     
Esempio n. 13
0
        api = Policies(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                       certid=opts.certid, devid=opts.devid)

        api.execute('getSellerProfiles')
        dump(api)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())


def getConsolidationJobStatus(opts):
    try:
        api = Policies(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                       certid=opts.certid, devid=opts.devid)

        api.execute('getConsolidationJobStatus')
        dump(api)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())

if __name__ == "__main__":
    (opts, args) = init_options()

    print("Business Policies API Samples for version %s" % ebaysdk.get_version())

    getSellerProfiles(opts)
    getConsolidationJobStatus(opts)
Esempio n. 14
0
        print(e)
        print(e.response.dict())


def run_unicode(opts):

    try:
        api = finding(debug=opts.debug, appid=opts.appid,
                      config_file=opts.yaml, warnings=True)

        api_request = {
            'keywords': u'Kościół',
        }

        response = api.execute('findItemsAdvanced', api_request)
        for i in response.reply.searchResult.item:
            if i.title.find(u'ś') >= 0:
                print("Matched: %s" % i.title)
                break

        dump(api)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())
    
if __name__ == "__main__":
    print("Unicode samples for SDK version %s" % ebaysdk.get_version())
    (opts, args) = init_options()
    run_unicode(opts)
Esempio n. 15
0
    parser = OptionParser(usage=usage)

    parser.add_option("-d",
                      "--debug",
                      action="store_true",
                      dest="debug",
                      default=False,
                      help="Enabled debugging [default: %default]")

    (opts, args) = parser.parse_args()
    return opts, args


def run(opts):

    try:
        api = HTTP(debug=opts.debug, method='GET')

        api.execute('http://feeds.wired.com/wired/index')

        dump(api)

    except ConnectionError as e:
        print e


if __name__ == "__main__":
    print("HTTP samples for SDK version %s" % ebaysdk.get_version())
    (opts, args) = init_options()
    run(opts)
Esempio n. 16
0
    def getSellerItems(self, seller_id=None, cat_id=None, days=None):
        print "retrieving items for seller/category id: ",
        print seller_id + " / ",
        print cat_id
        print "Using ebay trading SDK version %s" % ebaysdk.get_version()
        print "===================="
        if days > 0:
            earliest = datetime.datetime.now()
            latest = earliest + (datetime.timedelta(days))
            earliest_s = 'EndTimeFrom'
            latest_s = 'EndTimeTo'

        else:
            latest = datetime.datetime.now()
            earliest = latest + (datetime.timedelta(days))
            earliest_s = 'StartTimeFrom'
            latest_s = 'StartTimeTo'
        print earliest
        print latest

        # build and execute ebay API call GetItemTransaction
        api = trading(debug=self.opts.debug,
                      config_file=self.opts.yaml,
                      appid=self.opts.appid,
                      certid=self.opts.certid,
                      devid=self.opts.devid)
        token = api.api_config.get('token')

        page = 1
        api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \
                                        'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\
                                        'CategoryID': cat_id,'UserID': seller_id, \
                                        earliest_s: earliest, latest_s: latest})
        if api.error():
            print api.error()
            raise Exception(api.error())

        if api.response_content():
            print "Call Success: %s in length" % len(api.response_content())
            print "Response code: %s" % api.response_code()
            print "Response DOM: %s" % api.response_dom()

        num_pages = int(
            api.response_dict().PaginationResult.TotalNumberOfPages)

        while 1:
            if self.opts.debug:
                debug_results = parseString(
                    self.removeNonAscii(api.response_content()))
                print debug_results.toprettyxml()
            if api.error():
                print api.error()
                raise Exception(api.error())
            elif api.response_dict().ItemArray != None:
                for item in api.response_dict().ItemArray.Item:
                    id = item.ItemID
                    cat = item.PrimaryCategory.CategoryID
                    list_date, time = item.ListingDetails.StartTime.split('T')
                    quantity = item.Quantity
                    sold = item.SellingStatus.QuantitySold
                    cprice = item.SellingStatus.ConvertedCurrentPrice.value
                    try:
                        item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value
                    except:
                        sprice = 'NA'
                    else:
                        sprice = item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value
                    title = item.Title
                    SKU = item.SKU
                    hits = item.HitCount
                    print "ItemID> %(item)s >Category> %(cat)s >SKU> %(SKU)s  >Title> %(title)s >Quantity> %(quantity)s >Price> %(price)s >ShipCost> %(ship)s >Sold> %(sold)s >Listed> %(list_date)s >PageHits> %(hits)s" % \
                    {'item': id, 'cat' : cat, 'SKU' : SKU, 'title': title, 'quantity' : quantity, 'price': cprice, 'ship': sprice, 'sold': sold, 'list_date': list_date, 'hits': hits }
            #determine if we need another pass
            page += 1
            sys.stdout.flush()
            if page <= num_pages:
                api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \
                        'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\
                        'CategoryID': cat_id,'UserID': seller_id, \
                        earliest_s: earliest, latest_s: latest, \
                        'OutputSelector': 'ItemArray.Item.ItemID,ItemArray.Item.PrimaryCategory.CategoryID,\
ItemArray.Item.ListingDetails.StartTime,ItemArray.Item.Quantity,ItemArray.Item.SellingStatus.QuantitySold,\
ItemArray.Item.SellingStatus.ConvertedCurrentPrice,ItemArray.Item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost,\
ItemArray.Item.Title,ItemArray.Item.SKU,ItemArray.Item.HitCount'                                                                })
            else:
                break
        print(e)
        print(e.response.dict())


def run_unicode(opts):

    try:
        api = finding(debug=opts.debug, appid=opts.appid,
                      config_file=opts.yaml, warnings=True)

        api_request = {
            'keywords': u'Kościół',
        }

        response = api.execute('findItemsAdvanced', api_request)
        for i in response.reply.searchResult.item:
            if i.title.find(u'ś') >= 0:
                print("Matched: %s" % i.title)
                break

        dump(api)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())
    
if __name__ == "__main__":
    print("Unicode samples for SDK version %s" % ebaysdk.get_version())
    (opts, args) = init_options()
    run_unicode(opts)
Esempio n. 18
0
import ebaysdk
from ebaysdk.http import Connection as HTTP
from ebaysdk.exception import ConnectionError

def init_options():
    usage = "usage: %prog [options]"
    parser = OptionParser(usage=usage)

    parser.add_option("-d", "--debug",
                      action="store_true", dest="debug", default=False,
                      help="Enabled debugging [default: %default]")

    (opts, args) = parser.parse_args()
    return opts, args

def run(opts):

    try:
        api = HTTP(debug=opts.debug, method='GET')

        api.execute('http://feeds.wired.com/wired/index')
        dump(api)

    except ConnectionError as e:
        print(e)

if __name__ == "__main__":
    print("HTTP samples for SDK version %s" % ebaysdk.get_version())
    (opts, args) = init_options()
    run(opts)
Esempio n. 19
0
                       certid=opts.certid, devid=opts.devid)

        api.execute('getSellerProfiles')
        dump(api)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())


def getConsolidationJobStatus(opts):
    try:
        api = Policies(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                       certid=opts.certid, devid=opts.devid)

        api.execute('getConsolidationJobStatus')
        dump(api)

    except ConnectionError as e:
        print(e)
        print(e.response.dict())

if __name__ == "__main__":
    (opts, args) = init_options()

    print("Business Policies API Samples for version %s" %
          ebaysdk.get_version())

    getSellerProfiles(opts)
    getConsolidationJobStatus(opts)
Esempio n. 20
0
    print "Response code: %s" % api.response_code()
    print "Response DOM: %s" % api.response_dom()

    dictstr = "%s" % api.response_dict()
    print "Response dictionary: %s..." % dictstr[:250]


def run2(opts):
    api = finding(debug=opts.debug, appid=opts.appid, config_file=opts.yaml)
    api.execute('findItemsByProduct',
                '<productId type="ReferenceID">53039031</productId>')

    if api.error():
        raise Exception(api.error())

    if api.response_content():
        print "Call Success: %s in length" % len(api.response_content())

    print "Response code: %s" % api.response_code()
    print "Response DOM: %s" % api.response_dom()

    dictstr = "%s" % api.response_dict()
    print "Response dictionary: %s..." % dictstr[:50]


if __name__ == "__main__":
    print "Finding samples for SDK version %s" % ebaysdk.get_version()
    (opts, args) = init_options()
    run(opts)
    run2(opts)
Esempio n. 21
0
    except ConnectionError as e:
        print(e)
        print(e.response.dict())

'''
api = trading(domain='api.sandbox.ebay.com')
api.execute('GetCategories', {
    'DetailLevel': 'ReturnAll',
    'CategorySiteID': 101,
    'LevelLimit': 4,
})
'''

if __name__ == "__main__":
    (opts, args) = init_options()

    print("Trading API Samples for version %s" % ebaysdk.get_version())

    run(opts)
    feedback(opts)
    verifyAddItem(opts)
    getTokenStatus(opts)
    verifyAddItemErrorCodes(opts)
    uploadPicture(opts)
    uploadPictureFromFilesystem(opts, "c:/temp/samplefile.jpg")
    memberMessages(opts)
    categories(opts)
    getUser(opts)
    getOrders(opts)
Esempio n. 22
0
    def getItemTrans(self, item_id = None):
        print "retrieving results for item",
        print item_id
        print "Using ebay trading SDK version %s" % ebaysdk.get_version()
        print "===================="


        # build and execute ebay API call GetItemTransactions
        api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid,
                      certid=self.opts.certid, devid=self.opts.devid)
        token = api.api_config.get('token')
        
        api.execute('GetItemTransactions', {'ItemID': item_id, 'NumberOfDays': 30})

     

        if api.error():
            print api.error()
            raise Exception(api.error())

        if api.response_content():
            print "Call Success: %s in length" % len(api.response_content())

        print "Response code: %s" % api.response_code()
        print "Response DOM: %s" % api.response_dom()

        seller = api.response_dict().Item.Seller.UserID
        title = self.removeNonAscii(api.response_dict().Item.Title)
        sold = api.response_dict().Item.SellingStatus.QuantitySold

        if self.opts.debug:
            debug_results = parseString(self.removeNonAscii(api.response_content()))
            with open(item_id + "_full_results.xml", "w") as f:
                f.write( debug_results.toprettyxml() )

        print "Listing" + title 
        print "Seller: " + seller 
        print "Quanitiy Sold: " + sold 
        print "==========================================================================="
        print "========================= Sales History (30 days)=========================="
        print "==========================================================================="
        # output all transactions
        if api.response_dict().TransactionArray != None:
            if type(api.response_dict().TransactionArray.Transaction) is list:
                for trans in api.response_dict().TransactionArray.Transaction:
                    date = trans.CreatedDate
                    user = trans.Buyer.UserID
                    paid = trans.ConvertedTransactionPrice.value 
                    
                    print "Date: %(date)s \t Price: %(price)s \t User: %(user)s " % \
                                 {'date': date, 'price' : paid, 'user' : user}
            else:
                # if only one transaction, we have to deal with a list instead of dict
                trans = api.response_dict().TransactionArray.Transaction
                date = trans.CreatedDate
                user = trans.Buyer.UserID
                paid = trans.ConvertedTransactionPrice.value 
                shipping = trans.ShippingDetails.ShippingServiceOptions.ShippingService
                
                print "Date: %(date)s \t Price: %(price)s \t User: %(user)s \t Shipping: %(ship)s" % \
                             {'date': date, 'price' : paid, 'user' : user, 'ship' : shipping}
Esempio n. 23
0
    callData = {
        'categoryId': [str(category_id)],
        'outputSelector': 'CategoryHistogram'
    }

    response = api.execute('findItemsByCategory', callData).dict()

    return response


if __name__ == "__main__":
    (opts, args) = init_options()

    # Get the service resource.

    print("Trading API Samples for version %s" % ebaysdk.get_version())

    result_list = []
    url_set = set()
    category_dict = {}
    error_log = []

    url = "http://pages.ebay.com/sellerinformation/news/categorychanges.html"

    response = requests.get(url)
    soup = BeautifulSoup(response.text)
    div_left = soup.findAll("div", {"class": "listleft"})
    li = div_left[1].findAll("li")
    for tag in li:
        a = tag.find("a")
        url_set.add(a['href'])
Esempio n. 24
0
    def getItemTrans(self, item_id=None):
        print "retrieving results for item",
        print item_id
        print "Using ebay trading SDK version %s" % ebaysdk.get_version()
        print "===================="

        # build and execute ebay API call GetItemTransactions
        api = trading(debug=self.opts.debug,
                      config_file=self.opts.yaml,
                      appid=self.opts.appid,
                      certid=self.opts.certid,
                      devid=self.opts.devid)
        token = api.api_config.get('token')

        api.execute('GetItemTransactions', {
            'ItemID': item_id,
            'NumberOfDays': 30
        })

        if api.error():
            print api.error()
            raise Exception(api.error())

        if api.response_content():
            print "Call Success: %s in length" % len(api.response_content())

        print "Response code: %s" % api.response_code()
        print "Response DOM: %s" % api.response_dom()

        seller = api.response_dict().Item.Seller.UserID
        title = self.removeNonAscii(api.response_dict().Item.Title)
        sold = api.response_dict().Item.SellingStatus.QuantitySold

        if self.opts.debug:
            debug_results = parseString(
                self.removeNonAscii(api.response_content()))
            with open(item_id + "_full_results.xml", "w") as f:
                f.write(debug_results.toprettyxml())

        print "Listing" + title
        print "Seller: " + seller
        print "Quanitiy Sold: " + sold
        print "==========================================================================="
        print "========================= Sales History (30 days)=========================="
        print "==========================================================================="
        # output all transactions
        if api.response_dict().TransactionArray != None:
            if type(api.response_dict().TransactionArray.Transaction) is list:
                for trans in api.response_dict().TransactionArray.Transaction:
                    date = trans.CreatedDate
                    user = trans.Buyer.UserID
                    paid = trans.ConvertedTransactionPrice.value

                    print "Date: %(date)s \t Price: %(price)s \t User: %(user)s " % \
                                 {'date': date, 'price' : paid, 'user' : user}
            else:
                # if only one transaction, we have to deal with a list instead of dict
                trans = api.response_dict().TransactionArray.Transaction
                date = trans.CreatedDate
                user = trans.Buyer.UserID
                paid = trans.ConvertedTransactionPrice.value
                shipping = trans.ShippingDetails.ShippingServiceOptions.ShippingService

                print "Date: %(date)s \t Price: %(price)s \t User: %(user)s \t Shipping: %(ship)s" % \
                             {'date': date, 'price' : paid, 'user' : user, 'ship' : shipping}
Esempio n. 25
0
                        shop = Shopping(debug=opts.debug, appid=opts.appid,
                                        config_file=opts.yaml, warnings=False)

                        prim_resp = shop.execute('GetMultipleItems',
                                                 {'IncludeSelector': 'ItemSpecifics',
                                                  'ItemID': item_ids[0:20]})

                        for j in range(20, len(item_ids), 20):
                            sub_resp = shop.execute('GetMultipleItems',
                                                    {'IncludeSelector': 'ItemSpecifics',
                                                     'ItemID': item_ids[j:j+20]})
                            prim_resp.dom().extend(sub_resp.dom().xpath('//Item'))


                        xml_file = open(os.path.join(directory, str(page)), 'w+')
                        stylesheet_tag = '<?xml-stylesheet type="text/xsl" href="/ebay-data/xslItemSpecifics.xsl"?>\n'
                        xml_file.write(stylesheet_tag)
                        xml_file.write(lxml.etree.tostring(prim_resp.dom(),
                                                           pretty_print=True))
                        xml_file.close()


                except ConnectionError as e:
                        print(e)
                        print(e.response.dict())


if __name__ == "__main__":
        print("FindItem samples for SDK version %s" % ebaysdk.get_version())
        (opts, args) = init_options()
        run(opts)
Esempio n. 26
0
    def getSellerItems(self, seller_id = None, cat_id = None, days = None):
        print "retrieving items for seller/category id: ",
        print seller_id + " / ",
        print cat_id
        print "Using ebay trading SDK version %s" % ebaysdk.get_version()
        print "===================="
        if days > 0:
            earliest = datetime.datetime.now()
            latest = earliest + (datetime.timedelta(days))
            earliest_s = 'EndTimeFrom'
            latest_s = 'EndTimeTo'
            
        else:
            latest = datetime.datetime.now()
            earliest = latest + (datetime.timedelta(days))
            earliest_s = 'StartTimeFrom'
            latest_s = 'StartTimeTo'
        print earliest
        print latest

        # build and execute ebay API call GetItemTransaction
        api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid,
                      certid=self.opts.certid, devid=self.opts.devid)
        token = api.api_config.get('token')
        
        page = 1
        api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \
                                        'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\
                                        'CategoryID': cat_id,'UserID': seller_id, \
                                        earliest_s: earliest, latest_s: latest})
        if api.error():
            print api.error()
            raise Exception(api.error())

        if api.response_content():
            print "Call Success: %s in length" % len(api.response_content())
            print "Response code: %s" % api.response_code()
            print "Response DOM: %s" % api.response_dom()
            
        num_pages = int(api.response_dict().PaginationResult.TotalNumberOfPages)

        while 1:
            if self.opts.debug:
                debug_results = parseString(self.removeNonAscii(api.response_content()))
                print debug_results.toprettyxml()
            if api.error():
                print api.error()
                raise Exception(api.error())
            elif api.response_dict().ItemArray != None:
                for item in api.response_dict().ItemArray.Item:
                    id = item.ItemID
                    cat = item.PrimaryCategory.CategoryID
                    list_date, time = item.ListingDetails.StartTime.split('T')
                    quantity = item.Quantity
                    sold = item.SellingStatus.QuantitySold
                    cprice = item.SellingStatus.ConvertedCurrentPrice.value
                    try:
                        item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value
                    except:
                        sprice = 'NA'
                    else:
                        sprice = item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value
                    title = item.Title
                    SKU = item.SKU
                    hits = item.HitCount
                    print "ItemID> %(item)s >Category> %(cat)s >SKU> %(SKU)s  >Title> %(title)s >Quantity> %(quantity)s >Price> %(price)s >ShipCost> %(ship)s >Sold> %(sold)s >Listed> %(list_date)s >PageHits> %(hits)s" % \
                    {'item': id, 'cat' : cat, 'SKU' : SKU, 'title': title, 'quantity' : quantity, 'price': cprice, 'ship': sprice, 'sold': sold, 'list_date': list_date, 'hits': hits }
            #determine if we need another pass
            page+=1
            sys.stdout.flush()
            if page <= num_pages:
                api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \
                        'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\
                        'CategoryID': cat_id,'UserID': seller_id, \
                        earliest_s: earliest, latest_s: latest, \
                        'OutputSelector': 'ItemArray.Item.ItemID,ItemArray.Item.PrimaryCategory.CategoryID,\
ItemArray.Item.ListingDetails.StartTime,ItemArray.Item.Quantity,ItemArray.Item.SellingStatus.QuantitySold,\
ItemArray.Item.SellingStatus.ConvertedCurrentPrice,ItemArray.Item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost,\
ItemArray.Item.Title,ItemArray.Item.SKU,ItemArray.Item.HitCount'})
            else:break