2016-06-30 3 views
12

Я работаю с Python 2.7 в среде Linux, мое приложение работает с ebay trading API с помощью sdk: ebaysdk-python. Моя цель состоит в том, чтобы перечислить фиксированную цену, я не нашел правильный способ сделать это ...Пример кода для фиксированногоPriceItem с ebay

Похоже, что пример на веб-сайте ebay для разработчика также не работает.

это то, что я стараюсь:

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': '[email protected]', 
      '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': '[email protected]', 
       '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, опубликовать фиксированный пример с API-интерфейсом ebaysdk-Python?

UPDATE:

На основании ответа ниже я стараюсь включать элементы особенности, но ошибка все та же, я стараюсь также использовать пример, приведенный но ошибка все та же:

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':'[email protected]', 

       '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. 

UPDATE 11-07-2016:

К сожалению, моя щедрость (50 очков) закончилась и никому не присуждена, потому что пока нет хорошего ответа ... в это время я не могу снова заработать, потому что у меня недостаточно очков (на щедрость) К сожалению.

Я покупаю 1 час на поддержку ebay Premium (75 $ 1 час ...), поэтому я обновлю свой вопрос, когда они ответят ... и я надеюсь решить эту проблему ... Этот вопрос принимает многие из них, я горжусь этим.

Спасибо за вашу поддержку.

+0

Пожалуйста, напишите, что вы пробовали, и что не получилось. На самом деле это не место, и попросить людей писать проекты для вас. – Jeff

+0

привет, это второе сообщение этой проблемы, первое сообщение, которое я открываю, имеет код и ответ NOBODY, просто DOWNVOTE тоже здесь ... Я не понимаю, почему люди любят downvote, мой проект делает намного больше, чем просто листинг, я не хочу, чтобы люди пишут проекты для меня, в Интернете я не смог найти кого-то, использующего api для листинга ... так что это будет хорошо для сообщества, если кто-то напишет полный рабочий код для перечисления элемента на ebay с питоном. Я обновляю свой вопрос, пожалуйста, удалите ваш downvote. – ilmetu

+1

Ваша ревизия, безусловно, помогла, поэтому я удалю свой нижний план, но, пожалуйста, постарайтесь принять к сведению эту разницу. В первой версии (и, предположительно, в вашем первом посте тоже) она была уменьшена, потому что вы просто написали: «Я не могу этого сделать, кто-то делает все это для меня». Это так просто, никто не собирался вас или просто любил downvoting - он ничего не делает для кого-либо, чтобы опросить другие вопросы. В вашем текущем сообщении вы указали код, который вы попробовали, результирующую ошибку и то, что, по вашему мнению, может быть неправильным. – Jeff

ответ

0

окончательно ebay ответьте на вопрос и решите проблему.

Звонок терпел неудачу, потому что обязательный бренд ItemSpecifics (сайт Marca для Италии) & MPN отсутствовал. Он будет работать нормально, если вы используете следующие параметры.

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

Проблема была в имени переменной, для итальянского сайта имя переменной «Марка» является «Marca» ...

так и для словаря питона в запросе:

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

В настоящее время команда поддержки ebay не имеет эксперта в области python, но если вы можете предоставить xml для запроса, который они могут вам помочь. Чтобы получить реальный XML с питона SDK вы можете включить в соединение отладки = TRUE, пример ниже:

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

Спасибо всем, за поддержку.