Gestire un negozio Ebay con Filemaker


Recommended Posts

Come da titolo del thread: qualcuno l'ha mai fatto?

Ho letto tempo fa che Filemaker inc. ha presentato per una dimostrazione un'applicazione per l'interfacciamento di un negozio Ebay con Filemaker.

Ovviamente non ho trovato traccia dell'applicazione da nessuna parte, altrimenti non sarei qui a chiedere aiuto ;-)

Quello che ho bisogno di fare è molto semplice, voglio sapere come si fa a scambiare files con Ebay che non sia il solito "scambio file" in CSV proposto da Ebay.

Vorrei potermi collegare con il database di Ebay (come fa Turbolister, iSale e Garagesale per intenderci) e poter scaricare tutte le inserzioni che ho in corso ed inviare delle modifiche ma vorrei che la cosa fosse quanto più possibile automatica.

Attualmente mi collego con il sito ebay , mi scarico il file degli oggetti venduti ed in corso in formato CSV, li importo su filemaker , faccio le modifiche del caso e li esporto in un file csv che ricarico dal sito di ebay.

Qualcuno ha gia affrontato un problema simile??

Link to post
Share on other sites
  • 1 year later...

Mi autorispondo:

anche se dopo un po' di tempo dall'apertura di questo thread sono riuscito a scambiare i dati del mio database fatto con filemaker direttamente con Ebay postando dei file XML usando le loro API che da qualche anno sono aperte sl pubblico.

Filemaker non gestisce direttamente i POST htpps percui è necessario un Plug-In di terze parti che lo faccia: io ho usato Troi-Url.

Se qualcuno volesse saperne di più sarò ben lieto di scendere nei dettagli ;-)

Link to post
Share on other sites
  • 1 year later...

Ciao,

purtroppo non ho nessuna traccia per poter dialogare con Garagesale, l'applicativo che ho sviluppato è fatto interamente con Filemaker.

Ti allego "la base" per comunicare con il server di Ebay. L'esempio fa una richiesta dell'ora ufficiale di Ebay, per far si che funzioni hai bisogno di installare TroiURL che puoi scaricare da qui:

URL Plug-in for FileMaker Pro 9

ed hai bisogno di un Token che ti verrà fornito da Ebay una volta registrato al sito degli sviluppatori:

eBay Developers Program

Mettere in vendita degli oggetti è piuttosto complesso, per farti un idea dai un occhiata a "Cosa" Ebay vuole che tu trasmetta nella richiesta qui:

AddItem - Call Reference - eBay Trading API

Con questo non voglio scoraggiarti anche perché di quella lista si può "limare" parecchio...

Voglio solo farti capire che un conto è se devi mettere in vendita decine o centinaia di oggetti ed aggiornarli automaticamente giornalmente e quindi riusulterebbe impossibile farlo a mano, tutt'altro discorso è se hai una decina di oggetti da gestire in maniera sporadica ed in tal caso sarebbe più il tempo che perderesti per integrare Filemaker degli effettivi benefici.

Rimango a disposizione per chiarimenti

Link to post
Share on other sites

Ciao, grazie mille per la risposta.

Purtroppo sono molto motivato a capire come funziona perché ho una libreria e ho circa 800 titoli da mettere in vendita su Ebay... Garagesale / iSale sono allucinanti e inservibili, TurboLister è solo WIN e mi sto arrangiando con lui, creando e importando .csv via Filemaker, ma è ancora tutto piuttosto 'manuale'.

La tua soluzione mi sembra molto più solida, ma ovviamente ti devo chiedere qualche informazione in più.

Dunque, io uso Filemaker 11 e sto usando TroiURL v. 2.0.3.

Mi sono registrato nel sito sviluppatory Ebay e mi hanno generato un Token

[Auth Token for Production and Key Set 1]

Ho aperto il tuo Ebay_Api e ho sostituito il mio Token nel campo token_ID ma cliccando su SEND REQUEST la risposta di Ebay, nel campo result_ebay è $$64 , nient'altro.

Credo proprio che mi necessitino altre informazioni...

Grazie mille

Link to post
Share on other sites

Beh, come inizio non è male direi... l'errore $$64 non lo manda Ebay ma il PlugIn e secondo la documentazione di Troi non esiste nemmeno!

Anche se il Token_ID fosse sbagliato dovrebbe comunque tornarti un messaggio di errore da Ebay tipo questo:

<?xml version="1.0" encoding="UTF-8"?>

<GeteBayOfficialTimeResponse xmlns="urn:ebay:apis:eBLBaseComponents"><Timestamp>2010-08-26T14:41:43.352Z</Timestamp><Ack>Failure</Ack><Errors><ShortMessage>Il codice temporaneo di autorizzazione non è valido.</ShortMessage><LongMessage>Convalida del codice temporaneo dell'autenticazione nella richiesta API non riuscita.</LongMessage><ErrorCode>931</ErrorCode><SeverityCode>Error</SeverityCode><ErrorClassification>RequestError</ErrorClassification></Errors><Version>681</Version><Build>E681_INTL_BUNDLED_11748017_R1</Build></GeteBayOfficialTimeResponse>

Io lo uso con Filemaker 10 Advanced, non vorrei fosse un problema di compatibilità del PlugIn anche se sul sito del produttore pare non ci siano problemi.

Prova a vedere se gli esempi fornito con il plugin funzionano perché a me il file che ti ho mandato funziona

Link to post
Share on other sites

temo proprio che l'errore sia nell'Header.

ho visto che nella pagina API test tool [https://developer.ebay.com/DevZone/build-test/test-tool/Default.aspx] sia l'Header che l'URL sono diversi da quelli che vengono richiesti da Filemaker.

Come Header mi da:

X-EBAY-API-APP-ID:Jollyfix-9afb-411f-a9a3-e25f88a1e273

X-EBAY-API-VERSION:679

X-EBAY-API-SITE-ID:0

X-EBAY-API-CALL-NAME:GeteBayTime

X-EBAY-API-REQUEST-ENCODING:XML

i miei dati sono:

DevID: 85e94bdc-8440-49f0-b94e-5a705f178d42

AppID: Jollyfix-9afb-411f-a9a3-e25f88a1e273

CertID: bb38fd73-cd59-4734-a6b1-c411eeb39fe8

nell'Header che trovo nel tuo ebay_API:

X-EBAY-API-COMPATIBILITY-LEVEL: 581

X-EBAY-API-SESSION-CERTIFICATE: MYAPI-DEV-NAME;MYAPI-APP-NAME;MYAPI-CERT-NAME

X-EBAY-API-DEV-NAME: MYAPI-DEV-NAME

X-EBAY-API-APP-NAME: MYAPI-APP-NAME

X-EBAY-API-CERT-NAME: MYAPI-CERT-NAME

X-EBAY-API-CALL-NAME: GeteBayOfficialTime

X-EBAY-API-SITEID: 101

Accept: */*

Content-Type: text/xml

anche sostituendo i miei dati ho sempre lo stesso errore...

l'URL per il test di ebay è: http://open.api.ebay.com/shopping?

che fare?

grazie ancora per la collaborazione

Link to post
Share on other sites

funziona facendo queste sostituzioni:

request_original:

<?xml version="1.0" encoding="utf-8"?>

<GeteBayTimeRequest xmlns="urn:ebay:apis:eBLBaseComponents">

</GeteBayTimeRequest>

header:

X-EBAY-API-APP-ID:MY-APP-ID

X-EBAY-API-VERSION:679

X-EBAY-API-SITE-ID:0

X-EBAY-API-CALL-NAME:GeteBayTime

X-EBAY-API-REQUEST-ENCODING:XML

url_api:

>http://open.api.sandbox.ebay.com/shopping?

inserendo il token, finalmente il sever Ebay si degna di rispondere e mi fa sapere l'ora...

<?xml version="1.0" encoding="UTF-8"?>

<GeteBayTimeResponse xmlns="urn:ebay:apis:eBLBaseComponents">

<Timestamp>2010-08-26T18:58:09.816Z</Timestamp>

<Ack>Success</Ack>

<Build>E681_CORE_BUNDLED_11856606_R1</Build>

<Version>681</Version>

</GeteBayTimeResponse>

fatto ciò, come si prosegue?

Link to post
Share on other sites

Allora, ho riverificato per scrupolo, nel mio file se metto il mio token funziona tutto, senza cambiare ne Header ne url_api.

Tra l'altro, l'URL che hai messo tu "shopping" va bene per vedere le inserzioni ma non per inserirle.

L'url che c'è nel mio file non è sandbox ma production, quindi non è per le prove, tutto quello che fai avviene davvero sul sito Ebay... ;-)

Non sono mai riuscito ad utilizzare il sandbox perché per mettere in vendita un oggetto con il compralo subito devi avere non ricordo più se 5 o 10 feedback positivi (come nell'Ebay vero insomma) e quindi tutte le prove le ho sempre fatte sul sito production.

Ad ogni modo, visto che ormai comunichi ti spiego a grandi linee come faccio le operazioni base.

Io utilizzo dei template che mi sono creato per le mie esigenze per poter inviare le richieste.

All'interno dei template ho racchiuso tra parentesi quadre "[...]" i dati che variano da richiesta a richiesta, tutto il resto rimane fisso.

Ti indico i 2 principali, ovvero inserire un oggetto e controllare lo stato degli oggetti venduti:

Aggiungere un oggetto

Header:

X-EBAY-API-COMPATIBILITY-LEVEL: 581

X-EBAY-API-SESSION-CERTIFICATE: MYAPI-DEV-NAME;MYAPI-APP-NAME;MYAPI-CERT-NAME

X-EBAY-API-DEV-NAME: MYAPI-DEV-NAME

X-EBAY-API-APP-NAME: MYAPI-APP-NAME

X-EBAY-API-CERT-NAME: MYAPI-CERT-NAME

X-EBAY-API-CALL-NAME: AddItem

X-EBAY-API-SITEID: 101

Accept: */*

Content-Type: text/xml

Richiesta:

<?xml version="1.0" encoding="utf-8"?>

<AddItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">

<RequesterCredentials>

<eBayAuthToken>[eBayAuthToken]</eBayAuthToken>

</RequesterCredentials>

<ErrorHandling>FailOnError</ErrorHandling>

<ErrorLanguage>it_IT</ErrorLanguage>

<WarningLevel>High</WarningLevel>

<!-- Dati specifici articolo -->

<Item>

<SKU>[sKU]</SKU>

<Quantity>1</Quantity>

<Site>Italy</Site>

<Title>[Title]</Title>

<SubTitle>[subTitle]</SubTitle>

<HitCounter>HiddenStyle</HitCounter>

<ListingType>StoresFixedPrice</ListingType>

<ListingDuration>GTC</ListingDuration>

<Location>10091</Location>

<PostalCode>10091</PostalCode>

<DispatchTimeMax>[DispatchTimeMax]</DispatchTimeMax>

<GetItFast>[GetItFast]</GetItFast>

<Country>IT</Country>

<RelistLink>1</RelistLink>

<!-- Condizioni oggetto -->

<ConditionID>1000</ConditionID>

<!-- Condizioni di restituzione oggetto-->

<ReturnPolicy> ReturnPolicyType

<Description>Tuo testo personalizzato</Description>

<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>

</ReturnPolicy>

<!-- Immagini -->

<PictureDetails> PictureDetailsType

<GalleryType>Gallery</GalleryType>

<GalleryURL>[GalleryURL]</GalleryURL>

<PictureURL>[PictureURL]</PictureURL>

</PictureDetails>

<!-- Categorie -->

<PrimaryCategory> CategoryType

<CategoryID>[CategoryID]</CategoryID>

</PrimaryCategory>

<Storefront> StorefrontType

<StoreCategory2ID>[storeCategory2ID]</StoreCategory2ID>

<StoreCategoryID>[storeCategoryID]</StoreCategoryID>

</Storefront>

<!-- Prezzi -->

<Currency>EUR</Currency>

<VATDetails> VATDetailsType

<VATPercent>20</VATPercent>

</VATDetails>

<StartPrice>[startPrice]</StartPrice>

<!-- Proposta d'offerta -->

<BestOfferDetails> BestOfferDetailsType

<BestOfferEnabled>[bestOfferEnabled]</BestOfferEnabled>

</BestOfferDetails>

<ListingDetails> ListingDetailsType

<BestOfferAutoAcceptPrice currencyID="EUR">[bestOfferAutoAcceptPrice]</BestOfferAutoAcceptPrice>

<MinimumBestOfferPrice currencyID="EUR">[MinimumBestOfferPrice]</MinimumBestOfferPrice>

</ListingDetails>

<!-- Requisiti acquirente -->

<BuyerRequirementDetails> BuyerRequirementDetailsType

<MaximumBuyerPolicyViolations> MaximumBuyerPolicyViolationsType

<Count>4</Count>

<Period>Days_180</Period>

</MaximumBuyerPolicyViolations>

<MaximumItemRequirements> MaximumItemRequirementsType

<MaximumItemCount>10</MaximumItemCount>

<MinimumFeedbackScore>0</MinimumFeedbackScore>

</MaximumItemRequirements>

<MaximumUnpaidItemStrikesInfo> MaximumUnpaidItemStrikesInfoType

<Count>2</Count>

<Period>Days_180</Period>

</MaximumUnpaidItemStrikesInfo>

<MinimumFeedbackScore>-1</MinimumFeedbackScore>

<ShipToRegistrationCountry>true</ShipToRegistrationCountry>

</BuyerRequirementDetails>

<!-- Pagamento -->

<PaymentMethods>COD</PaymentMethods>

<PaymentMethods>MoneyXferAccepted</PaymentMethods>

<PaymentMethods>MoneyXferAcceptedInCheckout</PaymentMethods>

<PaymentMethods>OtherOnlinePayments</PaymentMethods>

<PaymentMethods>PaymentSeeDescription</PaymentMethods>

<PaymentMethods>PayOnPickup</PaymentMethods>

<PaymentMethods>PayPal</PaymentMethods>

<PayPalEmailAddress>[email protected]</PayPalEmailAddress>

<!-- Spedizione -->

<ShippingDetails> ShippingDetailsType>

<CODCost currencyID="EUR">5.00</CODCost>

<PaymentInstructions>[PaymentInstructions]</PaymentInstructions>

<InsuranceDetails> InsuranceDetailsType

<InsuranceFee currencyID="EUR">[insuranceFee]</InsuranceFee>

<InsuranceOption>[insuranceOption]</InsuranceOption><!--Valori ammessi IncludedInShippingHandling, NotOffered, Optional-->

</InsuranceDetails>

<ShippingServiceOptions> ShippingServiceOptionsType

<FreeShipping>[FreeShipping]</FreeShipping>

<ShippingService>[shippingService.1]</ShippingService>

[shippingServiceCost.1]

<ShippingServicePriority>1</ShippingServicePriority>

</ShippingServiceOptions>

[shippingServiceOption2]

[shippingServiceOption3]

</ShippingDetails>

<Description>[Description]</Description>

</Item>

</AddItemRequest>

Una volta inviata la richiesta Ebay ti risponderà se la cosa è andata a buon fine oppure no, il costo dell'operazione ed il numero dell'oggetto pubblicato. Puoi importarti i risultati con dei semplici filtri senza ricorrere ai fogli di stile XML secondo me.

Importare le transazioni

Qui la cosa è semplice per la richiesta ma più complessa per gestire la risposta.

La domada è praticamente sempre uguale quello che cambia è il "periodo" della richiesta.

Tu puoi richiedere tutte le transazioni modificate da una data ad un'altra data.

Nelle transazioni modificate sono inclusi sia gli oggetti venduti che gli oggetti che hanno cambiato stato (l'utente ha pagato per esempio ho ha cambiato indirizzo di spedizione).

La richiesta è questa:

Header:

X-EBAY-API-COMPATIBILITY-LEVEL: 581

X-EBAY-API-SESSION-CERTIFICATE: MYAPI-DEV-NAME;MYAPI-APP-NAME;MYAPI-CERT-NAME

X-EBAY-API-DEV-NAME: MYAPI-DEV-NAME

X-EBAY-API-APP-NAME: MYAPI-APP-NAME

X-EBAY-API-CERT-NAME: MYAPI-CERT-NAME

X-EBAY-API-CALL-NAME: GetSellerTransactions

X-EBAY-API-SITEID: 101

Accept: */*

Content-Type: text/xml

Richiesta:

<?xml version="1.0" encoding="utf-8"?>

<GetSellerTransactionsRequest xmlns="urn:ebay:apis:eBLBaseComponents">

<RequesterCredentials>

<eBayAuthToken>[eBayAuthToken]</eBayAuthToken>

</RequesterCredentials>

<ModTimeFrom>[ModTimeFrom]</ModTimeFrom>

<ModTimeTo>[ModTimeTo]</ModTimeTo>

<DetailLevelCodeType>ReturnAll</DetailLevelCodeType>

<IncludeContainingOrder>1</IncludeContainingOrder>

<!--Campi da importare-->

<OutputSelector>TotalNumberOfEntries,TotalNumberOfPages,Email,FeedbackScore,PositiveFeedbackPercent,UserID,ShippingAddress,InsuranceFee,InsuranceWanted,ShippingType,SellingManagerSalesRecordNumber,CODCost,ConvertedAmountPaid,ConvertedTransactionPrice,CreatedDate,ItemID,Title,Site,SKU,CheckoutStatus,LastTimeModified,PaymentMethodUsed,ShippingServiceSelected,eBayPaymentStatus,PaidTime,UserAnonymized,OrderID,TransactionID</OutputSelector>

</GetSellerTransactionsRequest>

Per evitare che Ebay ti rimandi una mole di dati indecente e totalmente inutile, puoi filtrare solo i campi che ti interessano tramite il tag "OutputSelector".

Tieni conto che Ebay ti manda al massimo 200 transazioni per pagina, nel caso tu ne avessi di più dovrai fare più richieste chiedendo anche il numero di pagina specifico.

Io al momento non ho mai avuto questo problema perché ha uno script sul server che fa la richiesta ogni 5 minuti però non si sa mai... ;-)

La risposta anche qui sarà un file XML che in questo caso però io importo tramite un foglio di stile XLST che mi sono fatto.

Ti allego anche questo di modo che tu possa dargli un occhiata.

Buon divertimento ;-)

Link to post
Share on other sites

grazie mille, sono commosso dalla tua collaborazione.

Pensavo fosse solo un'idea mia cercare di usare filemaker con ebay, e se cerchi sul web si trova ben poco e tutto molto misterioso...

Ho molto materiale per lavorarci domenica...

La cosa ideale sarebbe riuscire a farne un modello usabile da tutti, interfacciabile con qualunque archivio. Ho un amico sviluppatore di FM, potrebbe essere un'idea realizzabile, ti può interessare?

Link to post
Share on other sites

Anche io quando ho iniziato l ami avventura ho trovato ben poco… a quanto pare c'è parecchia gente che lo fa ma tutti se lo tengono per se.

Avevo anche parlato con degli sviluppatori interni della Filemaker.inc ma non mi hanno dato grandi soddisfazioni...

Per quanto riguarda il modello utilizzabile è sicuramente una buona idea ma è un lavoro parecchio lungo e a parer mio troppo soggetto a personalizzazioni "estreme"

Anche volendo, io non riuscirei nemmeno ad estrapolare la parte solo di Ebay dal mio database perché c'è talmente tanta roba che solo il pensiero mi fa passare la voglia ;-)

Si farebbe quasi prima a crearne uno da zero.

Sono anni che ci lavoro (penso almeno 3) ed ogni giorno modifico ed aggiungo pezzi.

Il problema è che la parte di Ebay non è un database a se ma solo alcune tabelle integrate nel mio database principale.

Tieni conto che ci gestisco tutto, dall'ordine al fornitore al ridimensionamento delle immagini, all'interfaccia dell'ecommerce (con Magento) alle mail e le fatture.

Faccio tutto con Filemaker.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now