Exemple #1
0
def memberMessages(opts):

    api = trading(
        debug=opts.debug, config_file=opts.yaml, appid=opts.appid, certid=opts.certid, devid=opts.devid, warnings=True
    )

    now = datetime.datetime.now()

    memberData = {
        "WarningLevel": "High",
        "MailMessageType": "All",
        # "MessageStatus": "Unanswered",
        "StartCreationTime": now - datetime.timedelta(days=60),
        "EndCreationTime": now,
        "Pagination": {"EntriesPerPage": "5", "PageNumber": "1"},
    }

    api.execute("GetMemberMessages", memberData)

    dump(api)

    if api.response_dict().MemberMessage:
        messages = api.response_dict().MemberMessage.MemberMessageExchange

        if type(messages) != list:
            messages = [messages]

        for m in messages:
            print("%s: %s" % (m.CreationDate, m.Question.Subject[:50]))
Exemple #2
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()
Exemple #3
0
def memberMessages(opts):

    api = trading(debug=opts.debug,
                  config_file=opts.yaml,
                  appid=opts.appid,
                  certid=opts.certid,
                  devid=opts.devid,
                  warnings=True)

    now = datetime.datetime.now()

    memberData = {
        "WarningLevel": "High",
        "MailMessageType": "All",
        # "MessageStatus": "Unanswered",
        "StartCreationTime": now - datetime.timedelta(days=60),
        "EndCreationTime": now,
        "Pagination": {
            "EntriesPerPage": "5",
            "PageNumber": "1"
        }
    }

    api.execute('GetMemberMessages', memberData)

    dump(api)

    for m in api.response_dict().MemberMessage.MemberMessageExchange:
        print "%s: %s" % (m.CreationDate, m.Question.Subject[:50])
Exemple #4
0
def getUser(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True, timeout=20, siteid=101)

    api.execute('GetUser', {'UserID': 'biddergoat'})

    dump(api, full=True)
Exemple #5
0
def getOrders(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True, timeout=20)

    api.execute('GetOrders', {'NumberOfDays': 30})

    dump(api, full=True)
Exemple #6
0
def getUser(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True, timeout=20, siteid=101)

    api.execute('GetUser', {'UserID': 'biddergoat'})

    dump(api, full=True)
Exemple #7
0
def getOrders(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True, timeout=20)

    api.execute('GetOrders', {'NumberOfDays': 30})

    dump(api, full=True)
Exemple #8
0
def verifyAddItemErrorCodes(opts):
    """http://www.utilities-online.info/xmltojson/#.UXli2it4avc
    """

    api = trading(
        debug=opts.debug, config_file=opts.yaml, appid=opts.appid, certid=opts.certid, devid=opts.devid, warnings=False
    )

    myitem = {
        "Item": {
            "Title": "Harry Potter and the Philosopher's Stone",
            "Description": "This is the first book in the Harry Potter series. In excellent condition!",
            "PrimaryCategory": {"CategoryID": "377aaaaaa"},
            "StartPrice": "1.0",
            "CategoryMappingAllowed": "true",
            "Country": "US",
            "ConditionID": "3000",
            "Currency": "USD",
            "DispatchTimeMax": "3",
            "ListingDuration": "Days_7",
            "ListingType": "Chinese",
            "PaymentMethods": "PayPal",
            "PayPalEmailAddress": "*****@*****.**",
            "PictureDetails": {"PictureURL": "http://i1.sandbox.ebayimg.com/03/i/00/30/07/20_1.JPG?set_id=8800005007"},
            "PostalCode": "95125",
            "Quantity": "1",
            "ReturnPolicy": {
                "ReturnsAcceptedOption": "ReturnsAccepted",
                "RefundOption": "MoneyBack",
                "ReturnsWithinOption": "Days_30",
                "Description": "If you are not satisfied, return the book for refund.",
                "ShippingCostPaidByOption": "Buyer",
            },
            "ShippingDetails": {
                "ShippingType": "Flat",
                "ShippingServiceOptions": {
                    "ShippingServicePriority": "1",
                    "ShippingService": "USPSMedia",
                    "ShippingServiceCost": "2.50",
                },
            },
            "Site": "US",
        }
    }

    api.execute("VerifyAddItem", myitem)

    if api.error():

        # traverse the DOM to look for error codes
        for node in api.response_dom().getElementsByTagName("ErrorCode"):
            print("error code: %s" % ebaysdk.nodeText(node))

        # check for invalid data - error code 37
        if 37 in api.response_codes():
            print("Invalid data in request")
Exemple #9
0
def getTokenStatus(opts):
    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=False)

    api.execute('GetTokenStatus')

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

    dump(api)
Exemple #10
0
def getTokenStatus(opts):
    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=False)

    api.execute('GetTokenStatus')

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

    dump(api)
Exemple #11
0
def verifyAddItemErrorCodes(opts):
    """http://www.utilities-online.info/xmltojson/#.UXli2it4avc
    """

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=False)

    myitem = {
        "Item": {
            "Title": "Harry Potter and the Philosopher's Stone",
            "Description": "This is the first book in the Harry Potter series. In excellent condition!",
            "PrimaryCategory": {"CategoryID": "377aaaaaa"},
            "StartPrice": "1.0",
            "CategoryMappingAllowed": "true",
            "Country": "US",
            "ConditionID": "3000",
            "Currency": "USD",
            "DispatchTimeMax": "3",
            "ListingDuration": "Days_7",
            "ListingType": "Chinese",
            "PaymentMethods": "PayPal",
            "PayPalEmailAddress": "*****@*****.**",
            "PictureDetails": {"PictureURL": "http://i1.sandbox.ebayimg.com/03/i/00/30/07/20_1.JPG?set_id=8800005007"},
            "PostalCode": "95125",
            "Quantity": "1",
            "ReturnPolicy": {
                "ReturnsAcceptedOption": "ReturnsAccepted",
                "RefundOption": "MoneyBack",
                "ReturnsWithinOption": "Days_30",
                "Description": "If you are not satisfied, return the book for refund.",
                "ShippingCostPaidByOption": "Buyer"
            },
            "ShippingDetails": {
                "ShippingType": "Flat",
                "ShippingServiceOptions": {
                    "ShippingServicePriority": "1",
                    "ShippingService": "USPSMedia",
                    "ShippingServiceCost": "2.50"
                }
            },
            "Site": "US"
        }
    }

    api.execute('VerifyAddItem', myitem)

    if api.error():

        # traverse the DOM to look for error codes
        for node in api.response_dom().getElementsByTagName('ErrorCode'):
            print("error code: %s" % ebaysdk.nodeText(node))

        # check for invalid data - error code 37
        if 37 in api.response_codes():
            print("Invalid data in request")
Exemple #12
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})

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

    dump(api)

    print(api.response_dict().Charity.Name)
Exemple #13
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})

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

    dump(api)

    print(api.response_dict().Charity.Name)
Exemple #14
0
	def __init__(self, **kwargs):
		"""
		Initialization method.

		Parameters
		----------
		sandbox : boolean
		see Ebay class

		Returns
		-------
		New instance of :class:`Trading` : Trading

		Examples
		--------
		>>> trading = Trading(sandbox=True)
		>>> trading  #doctest: +ELLIPSIS
		<app.api.Trading object at 0x...>
		>>> trading.api.config.values['siteid']
		0
		>>> trading = Trading(sandbox=True, country='UK')
		>>> trading.api.config.values['siteid']
		3
		"""
		super(Trading, self).__init__(**kwargs)

		# for travis.ci since the token is too large for travis encrypt
		env_file = 'envs.yml'

		if self.sandbox:
			domain = 'api.sandbox.ebay.com'
			certid = kwargs.get('certid', getenv('EBAY_SB_CERT_ID'))
			token = kwargs.get('token', getenv('EBAY_SB_TOKEN'))
			token = (token or getenv_from_file('EBAY_SB_TOKEN', env_file))
		else:
			domain = 'api.ebay.com'
			certid = kwargs.get('certid', getenv('EBAY_LIVE_CERT_ID'))
			token = kwargs.get('token', getenv('EBAY_LIVE_TOKEN'))
			token = (token or getenv_from_file('EBAY_LIVE_TOKEN', env_file))

		# TODO: add KeyError exception handling
		new = {
			'siteid': self.global_ids[self.kwargs['country']]['countryid'],
			'domain': domain,
			'certid': certid,
			'token': token,
			'version': 861,
			'compatibility': 861,
		}

		self.kwargs.update(new)
		self.api = trading(**self.kwargs)
Exemple #15
0
def verifyAddItem(opts):
    """http://www.utilities-online.info/xmltojson/#.UXli2it4avc
    """

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=False)

    myitem = {
        "Item": {
            "Title": "Harry Potter and the Philosopher's Stone",
            "Description": "This is the first book in the Harry Potter series. In excellent condition!",
            "PrimaryCategory": {"CategoryID": "377"},
            "StartPrice": "1.0",
            "CategoryMappingAllowed": "true",
            "Country": "US",
            "ConditionID": "3000",
            "Currency": "USD",
            "DispatchTimeMax": "3",
            "ListingDuration": "Days_7",
            "ListingType": "Chinese",
            "PaymentMethods": "PayPal",
            "PayPalEmailAddress": "*****@*****.**",
            "PictureDetails": {"PictureURL": "http://i1.sandbox.ebayimg.com/03/i/00/30/07/20_1.JPG?set_id=8800005007"},
            "PostalCode": "95125",
            "Quantity": "1",
            "ReturnPolicy": {
                "ReturnsAcceptedOption": "ReturnsAccepted",
                "RefundOption": "MoneyBack",
                "ReturnsWithinOption": "Days_30",
                "Description": "If you are not satisfied, return the book for refund.",
                "ShippingCostPaidByOption": "Buyer"
            },
            "ShippingDetails": {
                "ShippingType": "Flat",
                "ShippingServiceOptions": {
                    "ShippingServicePriority": "1",
                    "ShippingService": "USPSMedia",
                    "ShippingServiceCost": "2.50"
                }
            },
            "Site": "US"
        }
    }

    api.execute('VerifyAddItem', myitem)

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

    dump(api)
Exemple #16
0
def feedback(opts):
    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=False)

    api.execute('GetFeedback', {'UserID': 'tim0th3us'})

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

    dump(api)

    if int(api.response_dict().FeedbackScore) > 50:
        print("Doing good!")
    else:
        print("Sell more, buy more..")
Exemple #17
0
def feedback(opts):
    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=False)

    api.execute('GetFeedback', {'UserID': 'tim0th3us'})

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

    dump(api)

    if int(api.response_dict().FeedbackScore) > 50:
        print("Doing good!")
    else:
        print("Sell more, buy more..")
Exemple #18
0
def getOrders(opts):

    api = trading(
        debug=opts.debug,
        config_file=opts.yaml,
        appid=opts.appid,
        certid=opts.certid,
        devid=opts.devid,
        warnings=True,
        timeout=20,
    )

    api.execute("GetOrders", {"NumberOfDays": 30})

    dump(api, full=False)
Exemple #19
0
def categories(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True, timeout=20, siteid=101)

    now = datetime.datetime.now()

    callData = {
        'DetailLevel': 'ReturnAll',
        'CategorySiteID': 101,
        'LevelLimit': 4,
    }

    api.execute('GetCategories', callData)

    dump(api, full=True)
Exemple #20
0
def categories(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True, timeout=20, siteid=101)

    now = datetime.datetime.now()

    callData = {
        'DetailLevel': 'ReturnAll',
        'CategorySiteID': 101,
        'LevelLimit': 4,
    }

    api.execute('GetCategories', callData)

    dump(api, full=True)
Exemple #21
0
def getUser(opts):

    api = trading(
        debug=opts.debug,
        config_file=opts.yaml,
        appid=opts.appid,
        certid=opts.certid,
        devid=opts.devid,
        warnings=True,
        timeout=20,
        siteid=101,
    )

    api.execute("GetUser", {"UserID": "biddergoat"})

    dump(api, full=True)
Exemple #22
0
    def getCategories(self):
        # 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('GetCategories', {'DetailLevel': 'ReturnAll', 'ViewAllNodes': 'true'})
        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()
Exemple #23
0
def uploadPicture(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True)

    pictureData = {
        "WarningLevel": "High",
        "ExternalPictureURL": "http://developer.ebay.com/DevZone/XML/docs/images/hp_book_image.jpg",
        "PictureName": "WorldLeaders"
    }

    api.execute('UploadSiteHostedPictures', pictureData)

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

    dump(api)
Exemple #24
0
def uploadPicture(opts):

    api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid,
                  certid=opts.certid, devid=opts.devid, warnings=True)

    pictureData = {
        "WarningLevel": "High",
        "ExternalPictureURL": "http://developer.ebay.com/DevZone/XML/docs/images/hp_book_image.jpg",
        "PictureName": "WorldLeaders"
    }

    api.execute('UploadSiteHostedPictures', pictureData)

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

    dump(api)
Exemple #25
0
def categories(opts):

    api = trading(
        debug=opts.debug,
        config_file=opts.yaml,
        appid=opts.appid,
        certid=opts.certid,
        devid=opts.devid,
        warnings=True,
        timeout=20,
        siteid=101,
    )

    now = datetime.datetime.now()

    callData = {"DetailLevel": "ReturnAll", "CategorySiteID": 101, "LevelLimit": 4}

    api.execute("GetCategories", callData)

    dump(api, full=True)
Exemple #26
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()
Exemple #27
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()
Exemple #28
0
    def getCategories(self):
        # 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('GetCategories', {
            'DetailLevel': 'ReturnAll',
            'ViewAllNodes': 'true'
        })
        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()
def main():
    api = trading(domain='api.sandbox.ebay.com', 
                  appid="ding18d4c-56fe-45dd-9320-d17523ee18b", devid="6a3e6a37-1763-49a2-810b-68bc6a15ee26", certid="356d53fe-7910-4247-9e99-61727cc3a4da", token="AgAAAA**AQAAAA**aAAAAA**X3bWUg**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4GhC5eHowSdj6x9nY+seQ**ZH4CAA**AAMAAA**dsAoBo/3vv1yuOd4aPGBtq5ilPzSLM+3vsnOHfYuTn47JcoylH6TTyp1jH4yICQcQ6VL9FQ/0FN5YWpGy1UhM5fD5pEFIcYSUD2aECDOP55HW2KIlG4+in/NSJmp89DNj2FK1GDQzuZT3xy0pDI2yfHLW3CL1HcCIsWCNzkG0FVDJp8w5u3Nu7PVDkqQpIn5eUFMSrwyk3NalGYbPuHXkyMmS9KmGSmvrPthbhucNi1H0ihirPfQ5SaAW7O4T1r8EHfZa430655/VayOydUSovBnCnRE+WwZGg/ZRRWHIZJxbotCmD1kCH0ymE6FUl2QLm1hjkaESpKAmtFgpjhsaCVdt7vCUAt23A23P+7LBkfLsBrPwDIaeEVDEjGjFojEqliQfhq/lAcJhpO6Xi2db55fvZX/V8+7IpaHyzwtioXW8Azx8N7v+sx2mQ2spG7OWzGc+gdwW4a8lUVl3TRp0BywDqhOCXPKN94DK+Vrh6LvmzxjLvFzdWxz4YDjQ98Osyih66EfX1R0umXJPu2B3HTOpFHBtvS/TrpJzr8oOOVGgjDbyXL8yZd40PRnxi6Rkvyhj77hrGjzeowkaboLTWuqwjLTgkg9loWqQWoLjKAtVBmpasfP61bGR5y9vZhyM/b7SeHCAae1+/IJ+GB8y8d1RW022WFKZtcTiBAEvka2URU0TX7pmgEqDX1nM3a2TMlehriD8bx6WvIdEbqM7IzjFLcQ8kI+0kcOn13PIWsvHuwMHz6capQ5jYsZEu1S")
                  # api.execute('GetCategories', {
                                  # # 'CategorySiteID':0 \
                                  # 'LevelLimit':1 \
                                  # ,'DetailLevel':'ReturnAll'                                  
                                    # })
    # api.execute('GetStore', {
                                  # # 'CategorySiteID':0 \
                                  # 'LevelLimit':1 \
                                  # ,'DetailLevel':'ReturnAll'                                  
                                    # })
    # api.execute('AddItem', { \
                                  # 'Title':'LI Junjie Harry Potter and the Philosopher\'s Stone' \
                                  # , 'Description': ' This is the first book in the Harry Potter series. In excellent condition!' \
                                  # , 'PrimaryCategory':'607504'  \
                                  # , 'StartPrice' : '1.0' \
                                  # , 'CategoryMappingAllowed' : 'true' \
                                  # , 'Country' : 'US' \
                                  # , 'Currency' : 'USD' \
                                  # , 'DispatchTimeMax' : '3' \
                                  # , 'ListingDuration' : 'Days_7' \
                                  # , 'ListingType' : 'Chinese' \
                                  # , 'PaymentMethods' : 'PayPal' \
                                  # , 'PayPalEmailAddress' : '*****@*****.**' \
                                  # , 'PictureDetails' : 'http://pics.ebay.com/aw/pics/dot_clear.gif' \
                                  # , 'PostalCode' : '95125' \
                                  # , 'Quantity' : '1' \
                                  # , 'ReturnPolicy' : {'ReturnsAcceptedOption' : 'ReturnsAccepted' \
                                                      # , 'RefundOption' : 'MoneyBack' \
                                                      # , 'ReturnsWithinOption' : 'Days_30' \
                                                      # , 'Description' : 'If you are not satisfied, return the book for refund.' \
                                                      # , 'ShippingCostPaidByOption' : 'Buyer' \
                                                      # } \
                                  # , 'ShippingDetails' : {'ShippingType' : 'Flat' \
                                                      # , 'ShippingServiceOptions' : { 'ShippingServicePriority' : '1' \
                                                                                  # , 'ShippingService' : 'USPSMedia' \
                                                                                  # , 'ShippingServiceCost' : '2.50' \
                                                                                  # , 'ShippingCostPaidByOption' : 'Buyer' \
                                                                                  # } \
                                                        # } \
                                  # , 'Site' : 'US' \
                                    # })
    '''if True:
        api.execute('AddItem', { 'Item' : { \
                                  'Title':'Bill eBay test \'s Stone' \
                                  , 'Description': ' This is a test example.!' \
                                  , 'PrimaryCategory': {'CategoryID': '20936' }  \
                                  , 'ConditionID' : '1000' \
                                  , 'StartPrice' : '1.0' \
                                  , 'CategoryMappingAllowed' : 'true' \
                                  , 'Country' : 'US' \
                                  , 'Currency' : 'USD' \
                                  , 'DispatchTimeMax' : '3' \
                                  , 'ListingDuration' : 'Days_7' \
                                  , 'ListingType' : 'Chinese' \
                                  , 'PaymentMethods' : 'PayPal' \
                                  , 'PayPalEmailAddress' : '*****@*****.**' \
                                  , 'PictureDetails' : 'http://pics.ebay.com/aw/pics/dot_clear.gif' \
                                  , 'PostalCode' : '95125' \
                                  , 'Quantity' : '1' \
                                  , 'ReturnPolicy' : {'ReturnsAcceptedOption' : 'ReturnsAccepted' \
                                                      , 'RefundOption' : 'MoneyBack' \
                                                      , 'ReturnsWithinOption' : 'Days_30' \
                                                      , 'Description' : 'If you are not satisfied, return the book for refund.' \
                                                      , 'ShippingCostPaidByOption' : 'Buyer' \
                                                      } \
                                  , 'ShippingDetails' : {'ShippingType' : 'Flat' \
                                                      , 'ShippingServiceOptions' : { 'ShippingServicePriority' : '1' \
                                                                                  , 'ShippingService' : 'USPSMedia' \
                                                                                  , 'ShippingServiceCost' : '2.50' \
                                                                                  } \
                                                        } \
                                  , 'Site' : 'US' \
                                   } })'''
    if True:
        api.execute('GetSellerList',{
            'StartTimeFrom':'2014-01-01T19:09:02.768Z',
            'StartTimeTo':'2014-01-15T23:23:02.768Z',
            'DetailLevel': 'ItemReturnAttributes',
            'Pagination':{
                'EntriesPerPage':'10',
                'PageNumber':'1'},
        })
    print api.response_dict()
Exemple #30
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}
	api.execute('GetCategories', {'LevelLimit' : 1, 'DetailLevel' : 'ReturnAll'})
	return api.response_dict()

def get_sub_category(parent_c_id, api):
	pass

def get_top_selling_products(c_id, api):
	#api.execute('getTopSellingProducts', {})
	api.execute('findItemsByCategory', {
			'categoryId' : c_id
		})
	return api.response_dict()

trade = trading(domain='api.sandbox.ebay.com',
			    appid="MatthewB-33a9-4d50-b56e-4398cece88d6",
			    devid="41d63e06-0775-4692-b656-896a9a4b39d8",
			    certid="5707a4f4-912d-4154-ac6e-d59ec72d3e75",
			    token="AgAAAA**AQAAAA**aAAAAA**wtLjUg**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4GhC5iCowudj6x9nY+seQ**a4ECAA**AAMAAA**bz7sLZhXIMpFSPQQ/Jjkj8XQLJ5IeP/mLRf5oCVeXBmeX91trkLKBR9adYukIDIBwqpT+RxJwGBcdY8DiOu2Va3CWquDpDcGr32NrjS3tlDJp4z09e5vvJChiWD4jAlVgu0NVZKKOSMO/Uc5rYuZQQO0JPdTGbg+r4Lut7JwVJL5IthVTTv7Ec/53E0CAbjVGFBcWvquyeLJ4GUH5sNJM7a0yeNLIv8k4O8x+Aas3igY4LfLaDAOwziFrO83+7UHU9cyf4juHhxPTPvRhGvMdBwFJihLosQ7OPh8HNOecRnnm1cK5cziwjQCqGSJJpK9fB/7EtpKOK015Et2tHF18TWyYkSrbq7TPNoGVE7kAOLK8Q/dEEdlTyJrSq4gM/aBKKHzMwkTyYfzY0Fn+/wRTz6IlExWt6NLjJf6ByzZzk7jgh98VxQMgnYxaPyZ1sNlCuLaTbt2Ui866kIZsSJr7beY2cn6+58/cZuLaJgJoaYAtW526VUGSIHB1RE88cuXfafBgeviqjC6TDUVu1w9KGdGlQFPj38RFXXDbCriIe6P1jDtdl4vt02w9uVPWBDqxnVB+7q+N6sYSrMymhMHKXNr47y06drZdAqw3/ZCx2UMdMGYjyNjbZCg7LJUx5ZRCUPgJSPFSyaTv6c8viu8LLYwaH/QSKGpC8gFkGPqbvC1zUoq5E8H26NyKAO4+9ZqFnTqZxFAv82Ik94ybqGUYkC6TSBqvEBV/OC435/sVZZ+4+/GGCfCMPCuM2AlcvqM")

merch = merchandising(domain='svcs.sandbox.ebay.com',
					  appid='MatthewB-33a9-4d50-b56e-4398cece88d6')

find = finding(domain='svcs.sandbox.ebay.com',
			   appid='MatthewB-33a9-4d50-b56e-4398cece88d6')

shop = shopping(domain='open.api.sandbox.ebay.com',
				appid='MatthewB-33a9-4d50-b56e-4398cece88d6')

#pprint.pprint(get_categories(trade))
top_selling_products = get_top_selling_products(246, find)
pprint.pprint(top_selling_products)
Exemple #32
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}
Exemple #33
0
 def auth(self):
     self.api = trading(domain='api.sandbox.ebay.com', appid=self.appid, devid=self.devid, certid=self.certid, token=self.token)
Exemple #34
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
Exemple #35
0
 def auth(self):
     self.api = trading(domain='api.sandbox.ebay.com', appid=self.appid, devid=self.devid, certid=self.certid, token=self.token)
Exemple #36
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
Exemple #37
0
# 用来创建一个ebay的产品页
from ebaysdk import trading
import httplib, ConfigParser, urlparse
from xml.dom.minidom import parse, parseString
import datetime

eBayDomain = 'api.sandbox.ebay.com'
eBayAppId ="ding18d4c-56fe-45dd-9320-d17523ee18b"
eBayDevId="6a3e6a37-1763-49a2-810b-68bc6a15ee26"
eBayCertId="356d53fe-7910-4247-9e99-61727cc3a4da"
eBayToken="AgAAAA**AQAAAA**aAAAAA**X3bWUg**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4GhC5eHowSdj6x9nY+seQ**ZH4CAA**AAMAAA**dsAoBo/3vv1yuOd4aPGBtq5ilPzSLM+3vsnOHfYuTn47JcoylH6TTyp1jH4yICQcQ6VL9FQ/0FN5YWpGy1UhM5fD5pEFIcYSUD2aECDOP55HW2KIlG4+in/NSJmp89DNj2FK1GDQzuZT3xy0pDI2yfHLW3CL1HcCIsWCNzkG0FVDJp8w5u3Nu7PVDkqQpIn5eUFMSrwyk3NalGYbPuHXkyMmS9KmGSmvrPthbhucNi1H0ihirPfQ5SaAW7O4T1r8EHfZa430655/VayOydUSovBnCnRE+WwZGg/ZRRWHIZJxbotCmD1kCH0ymE6FUl2QLm1hjkaESpKAmtFgpjhsaCVdt7vCUAt23A23P+7LBkfLsBrPwDIaeEVDEjGjFojEqliQfhq/lAcJhpO6Xi2db55fvZX/V8+7IpaHyzwtioXW8Azx8N7v+sx2mQ2spG7OWzGc+gdwW4a8lUVl3TRp0BywDqhOCXPKN94DK+Vrh6LvmzxjLvFzdWxz4YDjQ98Osyih66EfX1R0umXJPu2B3HTOpFHBtvS/TrpJzr8oOOVGgjDbyXL8yZd40PRnxi6Rkvyhj77hrGjzeowkaboLTWuqwjLTgkg9loWqQWoLjKAtVBmpasfP61bGR5y9vZhyM/b7SeHCAae1+/IJ+GB8y8d1RW022WFKZtcTiBAEvka2URU0TX7pmgEqDX1nM3a2TMlehriD8bx6WvIdEbqM7IzjFLcQ8kI+0kcOn13PIWsvHuwMHz6capQ5jYsZEu1S"


api = trading(domain=eBayDomain,
              appid=eBayAppId,
              devid=eBayDevId,
              certid=eBayCertId,
              token=eBayToken)


    
def ebayGetSellerList(DetailLevel = 'ReturnAll',EntriesPerPage = '10' ,PageNumber = '1'):
    today = datetime.date.today()
    oneday = datetime.timedelta(days=1)
    tomorrow = today + oneday
    now = str(datetime.datetime.now())
    StartTimeTo = str(tomorrow)+"T"+now[11:23]+"Z"
    #print StartTimeTo
    api.execute('GetSellerList',{
            'StartTimeFrom':'2014-01-01T19:09:02.768Z',
            'StartTimeTo':StartTimeTo,#'2014-01-15T23:23:02.768Z',