2016-06-30 12 views
12

Sto lavorando con Python 2.7 su un ambiente Linux, la mia app funziona con l'API di trading ebay con sdk: ebaysdk-python. Il mio obiettivo è quello di elencare un prezzo fisso, non ho trovato un modo corretto per farlo ...Esempio di codice per l'elencazione di un FixedPriceItem con ebay

Sembra che l'esempio sul sito Web ebay per lo sviluppatore non funziona anche.

Questo è quello che cerco:

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 

Questo è l'errore:

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. 

sembra che vogliono un campo EAN ma se provo a mettere in 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', 
      }, 

Risposta dell'ebay con errore generico:

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. 

Qualcuno là fuori può pubblicare un codice completo funzionante scritto in Python, per pubblicare un fixedpriceitem con l'API ebaysdk-Python?

UPDATE:

Sulla base della risposta qui sotto cerco di includere elementi specifici ma l'errore è sempre lo stesso, cerco anche di utilizzare l'esempio fornito, ma l'errore è sempre la stessa:

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

ERRORE:

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 2016/11/07:

Sfortunatamente la mia taglia (50 punti) è finita e non è stata assegnata a nessuno perché non c'è ancora una buona risposta ... in questo momento non posso fare di nuovo una ricompensa perché non ho abbastanza punti (alla taglia) purtroppo.

Acquisto 1 ora su supporto Premium ebay (75 $ 1 ora ...), quindi aggiornerò la mia domanda quando risponderanno ... e spero di risolvere il problema ... Questa domanda richiede molti upvote, ne sono fiero.

Grazie per il vostro supporto.

+0

Si prega di postare ciò che hai provato, e cosa non ha funzionato a questo proposito. Questo non è davvero un posto dove venire e chiedere alle persone di scrivere progetti per te. – Jeff

+0

ciao, questo è un secondo post di questo problema, il primo post che ho aperto ha il codice e NESSUNA risposta, solo DOWNVOTE lo stesso qui ... non capisco perché alla gente piace il downvote, il mio progetto fa molto più che elenco, non voglio che le persone scrivano progetti per me, in internet non sono riuscito a trovare qualcuno che usi l'API per l'elenco ... quindi sarà bene per la comunità se qualcuno scrive un codice completo per elencare un oggetto su ebay con python. aggiorno la mia domanda, per favore rimuovi il tuo downvote. – ilmetu

+1

La tua revisione ha sicuramente aiutato a rimuovere il mio downvote, ma cerca di prendere nota della differenza. Nella prima versione (e presumibilmente anche nel tuo primo post) è stato downvoted perché hai semplicemente scritto "Non posso farlo, qualcuno fa tutto per me". È così semplice, nessuno è stato fuori per prenderti o piace solo fare downvoting - non fa nulla per nessuno di downvotare le domande degli altri. Nel tuo post corrente hai elencato il codice che hai provato, l'errore risultante e ciò che pensi possa essere sbagliato. – Jeff

risposta

0

finalmente ebay rispondi alla domanda e risolvi il problema.

La chiamata non funzionava perché mancava il marchio obbligatorio ItemSpecifics (sito Marca per Italia) & MPN. Funzionerà bene se si utilizzano i seguenti parametri.

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

Il problema era di circa il nome della variabile, per il sito italiano il nome del "Brand" variabile è "Marca" ...

così per dizionario Python nella richiesta:

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

Il team di supporto di ebay al momento non ha un esperto in python ma se è possibile fornire l'xml per la richiesta può aiutare. Per ottenere il vero XML con uno SDK pitone è possibile includere nella connessione di debug = true, esempio qui sotto:

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

Grazie a tutti per il supporto.

Problemi correlati