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