代码之家  ›  专栏  ›  技术社区  ›  ilmetu

在ebay上列出FixedPriceItem的示例代码

  •  15
  • ilmetu  · 技术社区  · 8 年前

    我在Linux环境中使用Python 2.7,我的应用程序使用ebay交易API和sdk: ebaysdk-python 我的目标是列出固定价格,我没有找到正确的方法。。。

    易趣网站上的开发者示例似乎也不起作用。

    这就是我尝试的:

    def AddFixedPriceItem(log,country):
    
    try:
        try:
            t = Connection(config_file='ebay.yaml',debug=True)
        except Exception:
            t = Connection(config_file='../ebay.yaml',debug=True)
    
        myitem = {
            'ErrorLanguage': 'en_US',
            'WarningLevel': 'High',
            'Item': {
                'PayPalEmailAddress': 'paypal@xxx.it',
                'ShipToLocations': 'IT',
                'ReservePrice': '0.0',
                'Title': 'TEST AUCTION 1',
                'Description': 'TEST AuCTION 1',
                'ProxyItem': 'false',
                'HitCounter': 'NoHitCounter',
                'BuyerRequirementDetails': {
                    'ShipToRegistrationCountry': 'true'
                },
                'Location': 'Lombardia',
                'ReturnPolicy': {
                    'ReturnsWithin': '30 giorni',
                    'Description': 'Puoi rendere il prodotto che non ti soddisfa entro e non oltre 30 giorni di calendario dalla data di consegna. Ti invitiamo a provare i prodotti senza rimuovere i cartellini e i sigilli oppure rompere la confezione poichè non potranno essere resi articoli che non siano nelle stesse condizioni in cui li hai ricevuti.\n\nVerranno rimborsati solo ed esclusivamente i prodotti effettivamente ricevuti dal magazzino. Nel caso in cui non venissero rispettate le condizioni appena descritte ed eventualmente accertato il difetto, ti informiamo che il pacco reso ti verrà restituito e il rimborso non verrà accreditato.\n\nPer tutte le richieste di autorizzazione al reso pervenute al nostro Servizio Clienti, il reso è gratuito. Nel caso in cui il pacco venga restituito al magazzino senza autorizzazione al reso e senza il tracking da noi fornito, non sarà effettuato alcun rimborso per le spese di reso sostenute.',
                    'ShippingCostPaidBy': 'Buyer',
                    'ReturnsWithinOption': 'Days_30',
                    'ShippingCostPaidByOption': 'Buyer',
                    'ReturnsAcceptedOption': 'ReturnsAccepted',
                },
                'BusinessSellerDetails': {
                    'LegalInvoice': 'true',
                    'Fax': '0',
                    'Address': {
                        'FirstName': 'xxx',
                        'CompanyName': 'xxxxxxxxx',
                        'Street1': 'Via delle xxx 26',
                        'CityName': 'xxx della riviera',
                        'CountryName': 'Italia',
                        'Phone': '. .',
                        'LastName': 'xxx',
                        'PostalCode': '25080',
                        'StateOrProvince': 'MI'
                    },
                    'Email': 'ebay@xxx.it',
                    'VATDetails': {
                        'VATSite': 'IT',
                        'VATID': '0976543233'
                    }
                },
                'ListingDuration': 'GTC',
                'PictureDetails': {
                    'GalleryType': 'Plus',
                    'PhotoDisplay': 'SuperSize',
                    'ExternalPictureURL': 'http://ecx.images-amazon.com/images/I/41xZFac6ZsL.jpg'
                },
                'BuyerProtection': 'ItemEligible',
                'StartPrice': '28.99',
                'eBayPlusEligible': 'false',
                'BuyItNowPrice': '0.0',
                'PrimaryCategory': { 'CategoryID': '324' },
                'GetItFast': 'false',
                'ListingType': 'FixedPriceItem',
                'Country': 'IT',
                'HideFromSearch': 'true',
                'ConditionID': '1000',
                'PaymentMethods': 'PayPal',
                #'SecondaryCategory': { 'CategoryID': '324' },
                'AutoPay': 'true',
                'OutOfStockControl': 'true',
                'ReasonHideFromSearch': 'OutOfStock',
                'Quantity': '1',
                'eBayPlus': 'false',
                'DispatchTimeMax': '3',
                'GiftIcon': '0',
                'PostCheckoutExperienceEnabled': 'false',
                'Site': 'Italy',
                'BuyerGuaranteePrice': '20000.0',
                'Currency': 'EUR',
                'HitCount': '8',
                'ConditionDisplayName': 'Nuovo',
                'PrivateListing': 'false',
                'ShippingPackageDetails': {
                    'ShippingIrregular': 'false',
                    'ShippingPackage': 'None',
                    'WeightMajor': '0',
                    'WeightMinor': '0'
                },
                'ShippingDetails': {
                    'InsuranceFee': '5.0',
                    'InternationalShippingDiscountProfileID': '0',
                    'ShippingServiceOptions': {
                        'ShippingTimeMax': '2',
                        'ShippingServiceCost': '0.0',
                        'ShippingServicePriority': '1',
                        'ShippingService': 'IT_ExpressCourier',
                        'ExpeditedService': 'true',
                        'ShippingTimeMin': '1'
                    },
                    'InsuranceDetails': {
                        'InsuranceFee': '5.0',
                        'InsuranceOption': 'Optional'
                    },
                    'InsuranceOption': 'Optional',
                    'ShippingDiscountProfileID': '0',
                    'CalculatedShippingRate': {
                        'WeightMinor': '0',
                        'WeightMajor': '0'
                    },
                    'SellerExcludeShipToLocationsPreference': 'true',
                    'ShippingType': 'Flat',
                    'SalesTax': {
                        'SalesTaxPercent': '0.0',
                        'ShippingIncludedInTax': 'false'
                    },
                    'ApplyShippingDiscount': 'false',
                    'ThirdPartyCheckout': 'false'
                }
            }
        }
    
        t.execute('AddFixedPriceItem', myitem)
        #print t.response.dict()
        print t.response.content
    
    except Exception as e:
        pass
    

    这是错误:

    2016-07-03 09:20:19,763 ebaysdk [ERROR]:AddFixedPriceItem: Class: RequestError, Severity: Error, Code: 21919303, Manca la specifica delloggetto relativa a {0}. Manca la specifica delloggetto relativa a {0}. Aggiungi {0\} a questa inserzione, inserisci un valore valido e riprova., Class: RequestError, Severity: Error, Code: 21919301, Immetti un valore in \ {0 \} e riprova. In EAN manca un valore. Immetti un valore e riprova.
    

    看起来他们想要一个EAN字段,但如果我尝试输入json:

    ...
        'ProductListingDetails':{
                    'BrandMPN':{
                        'Brand' : 'TEST BRAND',
                        'MPN' : 'U4162G04311_BLACKC9997'
                    },
                    'EAN': '8054241786423'
                },
     ...
    
     ...
        'ReturnPolicy': {
                    'ReturnsWithin': '30 giorni',
                    'Description': 'Puoi rendere il prodotto che non ti soddisfa entro e non oltre 30 giorni di calendario dalla data di consegna. Ti invitiamo a provare i prodotti senza rimuovere i cartellini e i sigilli oppure rompere la confezione poichè non potranno essere resi articoli che non siano nelle stesse condizioni in cui li hai ricevuti.\n\nVerranno rimborsati solo ed esclusivamente i prodotti effettivamente ricevuti dal magazzino. Nel caso in cui non venissero rispettate le condizioni appena descritte ed eventualmente accertato il difetto, ti informiamo che il pacco reso ti verrà restituito e il rimborso non verrà accreditato.\n\nPer tutte le richieste di autorizzazione al reso pervenute al nostro Servizio Clienti, il reso è gratuito. Nel caso in cui il pacco venga restituito al magazzino senza autorizzazione al reso e senza il tracking da noi fornito, non sarà effettuato alcun rimborso per le spese di reso sostenute.',
                    'ShippingCostPaidBy': 'Buyer',
                    'EAN': '8054241786423',
                    'ReturnsWithinOption': 'Days_30',
                    'ShippingCostPaidByOption': 'Buyer',
                    'ReturnsAcceptedOption': 'ReturnsAccepted',
                },
    

    Ebay回答有一般错误:

    2016-07-03 09:28:26,325 ebaysdk [ERROR]:AddFixedPriceItem: Class: RequestError, Severity: Error, Code: 21919303, Manca la specifica delloggetto relativa a {0}. Manca la specifica delloggetto relativa a {0}. Aggiungi {0\} a questa inserzione, inserisci un valore valido e riprova.
    

    有人可以发布用Python编写的完整工作代码,用ebaysdk PythonAPI发布固定价格?

    更新:

    根据下面的答案,我尝试包括项目细节,但错误仍然相同,我也尝试使用提供的示例,但错误依然相同:

    myitem = {
                "Item": {
                'Title': 'Apple MacBook Pro MB990LL/A 13.3 in. Notebook NEW',
                'Description': 'Brand New Apple MacBook Pro MB990LL/A 13.3 in. Notebook!',
                'PrimaryCategory': {'CategoryID' : 111422},
                'StartPrice':3200.0,
                'CategoryMappingAllowed': 'true',
                'ConditionID':1000,
    
                'Country':'IT',
                'Currency':'EUR',
                'DispatchTimeMax':3,
                'ListingDuration':'Days_7',
                'ListingType':'FixedPriceItem',
                'PaymentMethods':'PayPal',
                'PayPalEmailAddress':'paypal@xxx.it',
    
                    'PictureDetails': {
                        'GalleryType': 'Plus',
                        'PhotoDisplay': 'SuperSize',
                        'ExternalPictureURL': 'http://yolo.com/images/I/41xZFac6ZsL.jpg'
                    },
    
                    "ItemSpecifics": {
                        "NameValueList": [
                            {"Name": "manufacturer",
                             "Value": info_container["manufacturer"]},
                            {"Name": "manufacturer number",
                             "Value": info_container["manufacturer_part_number"]}]},
    
                'PostalCode':95125,
    
                'ProductListingDetails': {
                    'BrandMPN': {
                        'Brand': 'TEST BRAND',
                        'MPN': 'U4162G04311_BLACKC9997'
                    },
                    'EAN': '8054241786423',
                    'UPC':885909298594,
                    'IncludeStockPhotoURL':'true',
                    'IncludeeBayProductDetails':'true',
                    'UseFirstProduct':'true',
                    'UseStockPhotoURLAsGallery':'true',
                    'ReturnSearchResultOnDuplicates':'true'
                },
                'Quantity':6,
                'ReturnPolicy' :{
                  'ReturnsAcceptedOption':'ReturnsAccepted',
                  'RefundOption':'MoneyBack',
                  'ReturnsWithinOption':'Days_30',
                  'Description':'If you are not satisfied, return the item for refund.',
                  'ShippingCostPaidByOption':'Buyer'
                },
                'ShippingDetails':{
                  'ShippingType':'Flat',
                  'ShippingServiceOptions':{
                    'ShippingServicePriority':1,
                    'ShippingService':'IT_ExpressCourier',
                    'FreeShipping':'true',
                    'ShippingServiceAdditionalCost':0.00
                  }
                },
                'Site':'Italy'
            }
        }
    

    错误:

    2016-07-08 10:46:09,030 ebaysdk [ERROR]:AddFixedPriceItem: Class: RequestError, Severity: Error, Code: 21919303, Manca la specifica delloggetto relativa a {0}. Manca la specifica delloggetto relativa a {0}. Aggiungi {0\} a questa inserzione, inserisci un valore valido e riprova., Class: RequestError, Severity: Error, Code: 21919303, Manca la specifica delloggetto relativa a {0}. Manca la specifica delloggetto relativa a {0}. Aggiungi {0\} a questa inserzione, inserisci un valore valido e riprova.
    

    2016年7月11日更新:

    不幸的是,我的赏金(50分)已经结束,没有给任何人,因为还没有一个好答案……很遗憾,现在我不能再赏金了,因为我没有足够的分数(赏金)。

    我在ebay Premium支持上购买了1小时(75美元1小时…),所以当他们回答我的问题时,我会更新我的问题…我希望能解决问题。。。 这个问题需要很多人投赞成票,我为此感到骄傲。

    谢谢你的支持。

    2 回复  |  直到 8 年前
        1
  •  3
  •   ilmetu    8 年前

    最后,ebay回答了这个问题并解决了这个问题。

    呼叫失败,因为必填ItemSpecifics Brand(Marca for Italy站点)&MPN丢失。如果使用以下参数,它将正常工作。

    <ItemSpecifics>
      <NameValueList> 
        <Name>Marca</Name>
        <Value>TEST</Value>
      </NameValueList>
      <NameValueList>
        <Name>MPN</Name>
        <Value>00000</Value>
      </NameValueList>
    </ItemSpecifics> 
    

    问题在于变量的名称,对于意大利网站,变量“Brand”的名称是“Marca”。。。

    因此,对于请求中的python字典:

    "ItemSpecifics": {
                        "NameValueList": [
                            {"Name": "Marca",
                             "Value": "TEST"},
                            {"Name": "MPN",
                             "Value": "0000"}
                        ]
                      }
    

    ebay支持团队目前没有python方面的专家,但如果您能为请求提供xml,他们可以提供帮助。 要使用python sdk获取真正的XML,可以将其包含在连接debug=true中,示例如下:

    t = Connection(config_file='ebay.yaml',debug=False)
    

    感谢大家的支持。

        2
  •  0
  •   Mr. T    5 年前

    请求中使用的字典应该是这样的。例如,如果Nike和MPN的品牌为Shoe32

     {"Item":
          "ItemSpecifics": {
                    "NameValueList": [
                        {"Name": "Brand",
                         "Value": "Nike"},
                        {"Name": "MPN",
                         "Value": "Shoe32"}]
           }
      }