Programma di affiliazione-descrizione tecnica

Qui trovi le informazioni sull'inserimento del programma di affiliazione di eurolibro.it nel design della tua pagina.
Per ulteriori domande ti preghiamo di rivolgerti a db.dev@eurolibro.it.

Cos'è il programma di affiliazione di eurolibro.it?
I vantaggi
  • Beneficia della velocità di ricerca di eurolibro.it.
  • Beneficia di più di 150 milioni di libri presenti su eurolibro.it.
  • Beneficia fino al 30% del fatturato dei libri venduti.
  • Puoi elaborare a piacere i dati dei libri di eurolibro.it per offrire agli utenti servizi aggiuntivi non disponibili nel nostro sito.
Cosa devi fare?
  • Per visualizzare i risultati di ricerca di eurolibro.it sulla tua pagina web, il tuo programmatore deve scrivere un programma che richiami i nostri libri in formato XML o CSV.
  • Il lavoro di programmazione non richiede maggiore sforzo (normalmente minore) rispetto alla ricerca e alla presentazione dei risultati con i dati dei tuoi libri nella tua pagina web (se stai già offrendo questo servizio).
    La programmazione non richiede lavoro eccessivo.
  • Ai tuoi programmatori mettiamo qui a disposizione consigli e passaggi esplicativi provenienti da codici sorgente (del linguaggio di programmazione PHP) per semplificare enormemente il lavoro di programmazione.
    Per ulteriori informazioni ti preghiamo di rivolgerti a db.dev@eurolibro.it.
  • Qui sotto troverai due esempi di programmi, uno semplice e uno complesso, disponibili per il download. Così potrai inserire in modo semplice la ricerca nella tua pagina web. Gli esempi di programmazione possono essere modificati con facilità dal tuo programmatore per rispondere alle funzionalità e alle esigenze di layout.
Come funziona?
  • Richiedici nome utente e password per il programma di affiliazione.
  • Verificali aprendo l'URL della nostra pagina web (vedi sotto).
  • Il tuo programmatore leggerà le pagine e implementerà la ricerca a tuo piacimento.
  • Fine.

Per informazioni tecniche ti preghiamo di rivolgerti a db.dev@eurolibro.it.

Informazioni per i tuo i programmatori
Utilizziamo i seguenti concetti:
  • Pagina web affiliata: Pagine web degli affiliati di eurolibro.it, ovvero la tua pagina web o la pagina web per la quale vuoi effettuare la programmazione
  • Piattaforme libri: Sono pagine web che mettono a disposizione i dati dei propri libri su eurolibro.it (per es. Amazon, Antbo, Booklooker, Abebooks etc.)
  • Utente: è l'utente delle pagine web affiliate che sta per esempio cercando un libro. Inserisce i dati e desidera visualizzare i risultati.
Cosa devo fare?

L'unico sito centrale è il seguente URL:

https://www.eurolibro.it/extreq/meta/extquery.php?platform=<Your Username>&
password=<Your Password>&author=<Autor>&title=<Titel>
&search=<Schluesselwort>&isbn=<ISBN>&&mediatype=0&clientip=<Enduser-IP-Adresse>&format=xml

Se apri questo URL in un Browser (per es. IE) (Username e Password ti saranno assegnati con il programma di affiliazione) e digiti per es. "Holl" in "Jesus" e lasci vuoti (o escludi) gli altri parametri, vedrai per.es il seguente output (le parentesi angolari sono parte dei parametri e dunque non più contenute nel URL!):

<?xml version="1.0" encoding="ISO-8859-1" ?>
  <!DOCTYPE ResultList (View Source for full doctype...)>
- <ResultList id="23291123">
  <Book id="16048251" author="Holl, Adolf" title="Jesus in schlechter Gesellschaft" comment="Wien : Buchgemeinschaft Donauland; Stuttgart : Europ. Bildungsgemeinschaft; [1972]; 21 cm; 215 S.; Aufl.: Lizenzausgabe; Leinen, Schutzumschlag, gut;" year="1972" price="8.00" currency="EUR" priceeur="8.00" country="A" dealer="SFB1050" url="https://www.eurolibro.it/extreq/meta/bestellung.php?qid=16048251" platform="Booklooker.de" />
  <Book id="16048253" author="Holl, Adolf" title="Jesus in schlechter Gesellschaft. (Was Menschen bewegt)." comment="190 S. 21,5 cm. Gebunden. 318gr. Kreuz," isbn="3783118166" price="7.45" currency="EUR" priceeur="7.45" country="D" dealer="Laetare Büchermarkt" url="https://www.eurolibro.it/extreq/meta/bestellung.php?qid=16048253" picurl="https://www.booklooker.de/images/cover/user_thumb/0309/0803/bl1060.jpg" hardcover="1" platform="Booklooker.de" />
  <Book id="16048254" author="Holl, Adolf" title="Jesus in schlechter Gesellschaft" comment="Name auf Vorsatz, sehr guter Zustand #e5Leinen, Deutsche Verlags-Anstalt, 1971," year="1971" price="5.00" currency="EUR" priceeur="5.00" country="D" dealer="Bücher-Bezzel" url="https://www.eurolibro.it/extreq/meta/bestellung.php?qid=16048254" platform="Booklooker.de" />

Qui vedi un formato XML (per più informazioni su XML vai a https://www.w3c.org/XML/) dei risultati di ricerca trovati da eurolibro.it con i parametri "Holl" per l'Autore e "Jesus" per il Titolo. Se non hai alcuna esperienza con il formato XML non lasciarti spaventare dai numerosi elementi indicati da w3c.org. E' molto più semplice di quello che sembra. Se sulla pagina web utilizzi il linguaggio di programmazione PHP, puoi utilizzare il parser di PHP per riconoscere il formato XML. Altri linguaggi di programmazione (Perl, Phyton, ASP etc.) possiedono un Parser XML che svolgono per te gran parte del lavoro, presentando i dati che ti trasmettiamo già nel formato corretto. Il formato risulta con codifica caratteri ISO-8859-1 (Occidentale, latino1) . Con "&format=xml8" puoi avere i dati a codifica caratteri internazionale UTF-8. In questo caso, anche i dati trasmessi (Autore, Titolo) devono avere la codifica caratteri UTF-8! Se il formato XML (da noi consigliato) non ti soddisfa, puoi richiedere i dati in CSV digitando semplicemente "&format=csv" invece di "&format=xml" alla fine. Avrà più o meno quest'aspetto (Sono stati inseriti ritorno a capo con spazi vuoti anteposti per agevolare la lettura):

231932123
16079133 ~||~ Holl, Adolf ~||~ Jesus in schlechter Gesellschaft ~||~
 Wien : Buchgemeinschaft Donauland; Stuttgart :  Europ. Bildungsgemeinschaft;
 [1972]; 21 cm; 215 S.; Aufl.: Lizenzausgabe; Leinen, Schutzumschlag, gut; ~||~ ~||~
 1972 ~||~ 8.00 ~||~ EUR ~||~ 8.00 ~||~ A ~||~ SFB1050 ~||~
 https://www.eurolibro.it/extreq/meta/bestellung.php?qid=16079133 ~||~ ~||~ ~||~ ~||~ ~||~ ~||~
 Booklooker.de
16079134 ~||~ Holl, Adolf ~||~ Jesus in schlechter Gesellschaft. (Was Menschen bewegt). ~||~
 190 S. 21,5 cm. Gebunden. 318gr. Kreuz, ~||~ 3783118166 ~||~ 0 ~||~ 7.45 ~||~ EUR ~||~
 7.45 ~||~ D ~||~ Laetare Büchermarkt ~||~
 https://www.eurolibro.it/extreq/meta/bestellung.php?qid=16079134 ~||~
 https://www.booklooker.de/images/cover/user_thumb/0309/0803/bl1060.jpg ~||~
 0 ~||~ 1 ~||~ 0 ~||~ 0 ~||~ Booklooker.de
...

Vengono trasmessi esattamente gli stessi dati come nel formato XML, ma per ogni libro viene indicata una riga e ogni campo è separato da "~||~"

I dati seguenti sono indicati nel file XML (o CSV) :

  • id:E' il numero del libro nella nostra banca dati. Il numero rimane attivo per circa tre ore dopodiché il libro verrà eliminato dalla nostra banca dati
  • autore: Autore del libro
  • titolo: Titolo del libro
  • commento: Commento sul libro. Può essere lungo
  • isbn: numero ISBN del libro, può anche essere vuoto, in questo caso non viene mostrato
  • year: Anno si pubblicazione
  • price: Prezzo del libro
  • currency: valuta con cui è espresso il prezzo./li}
  • priceeur: Prezzo del libro convertito in euro. Se la valuta non è in "EUR" calcoliamo il "priceeur"con cambio attuale. Da alcune piattaforme di libri, per esempio, riceviamo il prezzo in US$ e lo convertiamo in Euro secondo il cambio attuale. In questo caso, il prezzo in euro è un prezzo "ca."
  • country: Paese in cui si trova il libro. Indichiamo qui i codici dei paesi (per es. "D" per Germania, "A" per Austrua, etc.). I codici non sono sempre corretti in quanto da alcune piattaforme non vengono indicati perché a volte sconosciuti.
  • dealer: Nome del rivenditore. In alcune piattaforme di libri può risultare vuoto o corrispondente al nome della piattaforma
  • url: E' un URL, con cui si può ordinare e vedere un libro (dettagli). Il link qui indicato avrà validità per circa 3 ore. Successivamente il libro verrà eliminato dalla nostra banca dati e il link non sarà più attivo
  • picurl: Link per la miniatura (può anche essere vuoto/non presente). La miniatura è normalmente di grandezza tale da poter comparire nella lista dei libri. Il link non conduce a eurolibro.it ma a un server della piattaforma di ricerca da cui il libro proviene.
  • paperback: Si/No Valore (0=No, 1= Si), se il libro è o non è in copertina flessibile.
  • hardcover: Si/No-Valore (0=No, 1= Si), se il libro è o non è rilegato.
  • signed: Si/NO Valore (0=No, 1= Si), se il libro è o non è autografato.
  • firstedition: Si/No-Valore (0=No, 1= Si), se il libro è o non è una prima edizione.
  • platform: Nome della piattaforma della quale abbiamo i dati dei libri.

Ti preghiamo di considerare che in futuro implementeremo sia il formato XML, sia quello CSV. Nel formato XML verranno eventualmente aggiunti alcuni attributi, in quello CSV saranno eventualmente aggiunti campi al margine della riga. I tuoi programmi devono avere margine di adattabilità per evitare il rischio eventuale che in futuro non siano più funzionanti.

Un caso particolare rappresenta l'"id" che viene trasferito in formato CSV nella prima riga o in formato XML come attributo di "ResultList". L' ID qui trasmesso rappresenta precisamente la ricerca trasferita a eurolibro.it e viene dunque contrassegnato come "ID di ricerca"

Cosa faccio con i dati in formato CSV o XML?

Se sei programmatore procedi così:

  • Ricevi un modulo di ricerca simile al nostro (campi come autore/titolo/parola chiave e ISBN). Puoi scegliere tu stesso il layout del modulo di ricerca.
  • Invia il modulo nella pagina dei risultati.
  • Nella pagina dei risultati apri il nostro URL su (extquery.php) e inserisci i parametri indicati dall'utente.
  • Filtra la nostra pagina dei risultati e registrali in una banca dati (per es. la banca dati mySQL gratuita e subito disponibile). Ti preghiamo di ricordare il tuo ID di ricerca anche per la banca dati, per non doverlo richiedere nuovamente a eurolibro.it quando riaprirai la pagina dei risultati (per es. sfogliando). I risultati momentaneamente salvati verranno così visualizzati. Puoi scegliere diversi modi per classificare e mostrare i risultati temporaneamente salvati.
  • Successivamente (dopo max 3 ore) cancella i dati salvati provvisoriamente nella banca dati.

Ricorda di non aprire la nostra ricerca (extquery.php) durante la costruzione di ogni pagina di ricerca. Altrimenti ti verrà assegnato un nuovo ID di ricerca (un ID-libri completamente nuovo). Non possiamo garantire che i risultati compaiano nello stesso ordine ogni volta che si apre extquery.php perché dipende dalla velocità dei server (sono numerosi anche nelle singole piattaforme). Otterrai inoltre una cattiva valutazione circa i "click su ordina" e ciò ridurrà la quota di profitti della pagina web affiliata alla nostra. Una ricerca di extquery.php deve corrispondere ad una ricerca tua.

Per i seguenti problemi ti offriamo soluzioni aggiuntive nel linguaggio di programmazione PHP:

Parsin dei risultati in formato XML

PHP possiede già un parser XML (vedi http://www.php.net/manual/de/ref.xml.php)

Puoi semplicemente

function xml_startElement($parser, $name, $attrs)
{
	if($name=="RESULTLIST") {
		print "SUCH-ID: ".$attrs["ID"]."<br><hr>";
	} else if($name=="BOOK") {
		print "ID: ".$attrs["ID"]."<br>";
		print "Autor: ".$attrs["AUTHOR"]."<br>";
		print "Titel: ".$attrs["TITLE"]."<br>";
		print "<a href='".$attrs["URL"]."' target='_blank'>Bestellen</a><br><hr>";
		flush();
	}
}
function xml_endElement($parser, $name)
{
}
function parseURL($url) {
	$fp=fopen($url,"rb");
	if(!$fp) {
		return("Could not open $url");
	}
	$xml_parser = xml_parser_create();
	xml_set_element_handler($xml_parser, "xml_startElement", "xml_endElement");
	while($data=fread($fp,4096)) {
		if (!xml_parse($xml_parser, $data,feof($fp))) {
		   $ret=sprintf("XML error: %s at line %d",
					   xml_error_string(xml_get_error_code($xml_parser)),
					   xml_get_current_line_number($xml_parser));
			xml_parser_free($xml_parser);
			return($ret);
		}
	}
	xml_parser_free($xml_parser);
	fclose($fp);
	return(false);
}
parseURL("https://www.eurolibro.it/extreq/meta/extquery.php?platform=test&password=test".
"&author=holl&title=jesus&clientip=".$_SERVER["REMOTE_ADDR"]."&format=xml");

Con questo programma breve puoi ordinare i risultati di ricerca. Con username e password "test" puoi effettuare la prova. Per questo utente non verranno corrisposte provvigioni.

Nel tuo caso dovresti semplicemente scrivere i dati nella banca dati anziché utilizzare "print" in "xml_startElement()" . Come noto, "parse URL" dovrebbe essere utilizzato solo una volta per ricerca. Quando sfogli, ti preghiamo di ricordare il tuo ID di ricerca. Se è già disponibile, rileva i risultati dalla banca dati, altrimenti apri la nostra pagina e scriverli nella banca dati.

Se i parametri di extquery.php provengo dal modulo di ricerca di un utente, non dimenticare di citare quel' HTML e dunque "...author=".rawurlencode($author)."&title=".rawurlencode($title)."&...".

Classificazione e suddivisione delle pagine

Se il tuo server non dispone di una banca dati o se preferisci evitare il lavoro di programmazione per salvare le informazioni nella banca dati, ma non vuoi al contempo rinunciare a servizi di classificazione e suddivisione delle pagine, sarai supportato, dove possibile, da extquery.php. Come alternativa (dopo aver interrogato con autore/titolo etc.) puoi aprire extquery.php anche con l'ID di ricerca. Hai così la possibilità di classificare i risultati e di restringerli a seconda dei titoli.

https://www.eurolibro.it/extreq/meta/extquery.php?platform=<Ihr Username>
&password=<Ihr Passwort>&suchid=<Such-ID>&start=<Start>&end=<End>
&order=<Order>&clientip=<Enduser-IP-Adresse>&format=xml
  • ID di ricerca: Digita qui il tuo nuovo ID.
  • Start: digita il numero del libro (numerato a partire da 1), a partire dal quale desideri il formato XML o CSV.
  • End: Digita il numero del libro (numerato a partire da 1, questo libro escluso) fino al quale desideri il formato XML o CSV.
  • Order: Se non viene indicato niente, viene seguito l'ordine con cui si generano i risultati. Altri valori sono "autore" "titolo" e "prezzo". Successivamente vengono classificati secondo i criteri corrispondenti.
Quali paramenti supporta extquery.php?
  • platform: Nome utente.
  • password: la tua password
  • author: autore cercato (o interprete).
  • title: titolo cercato.
  • search: ricerca testo.
  • isbn: numero ISBN o EAN.
  • mediatype: 0 per libri , 1 per musica .
  • suchid: digita il tuo nuovo ID
  • start: digita il numero del libro (a partire da 1), a partire dal quale desideri il formato XML o CSV.
  • end: digita l numero del libro (a partire da 1, questo libro escluso) fino al quale desideri il formato XML o CSV
  • order: Se non viene indicato niente, viene seguito l'ordine con cui si generano i risultati. Altri valori sono "autore" "titolo" e "prezzo". Successivamente vengono classificati secondo i criteri corrispondenti.
  • .
  • clientip: Digita qui l'indirizzo IP dell'utente richiedente. Se non viene indicato, non verranno trasmessi risultati di ricerca. Se digiti "-" significa che l'indirizzo IP del computer richiedente e quello dell'utente finale siano identici. Ricorda che per evitare che vi siano eccessive richieste, l'indirizzo IP del cliente è fondamentale. Se viene considerato sempre l'indirizzo del tuo server, risulta che vi siano relativamente poche richieste per eurolibro.it. Pertanto, ti preghiamo di condividere con noi l'indirizzo IP del utente.
  • format: xml per formato XML in codifica caratteri ISO-8859-1, xml8 per formato XML in codifica caratteri UTF-8, csv per formato CSV (codifica caratteri ISO-8859-1ì).
Programma di prova

Il programma di prova è composto da due file PHP, il modulo (search.php) e la pagina dei risultati (result.php). Per procedere con la prova puoi aprire qui il modulo . Il codice sorgente è disponibile per il download in un archivio ZIP (3KB)

Il programma di prova funziona anche senza banca dati e supporta l'inserimento di criteri di ricerca, la presentazione delle pagine dei risultati e la classificazione, secondo diversi criteri.

Trasferimento asincrono.

Inoltriamo i risultati appena ci vengono inviati dalle piattaforme di libri. Può darsi dunque che otterrai una serie di risultati in un primo momento, nessuno in un secondo momento (perché nessuna piattaforma invia risultati) e poi nuovamente alcuni o nessun risultato. Per la tua pagina web ti consigliamo dunque di attivare due processi, uno per scrivere i risultati nella banca dati e l' altro per ordinarli. Altrimenti si consiglia di segnalare un tempo d'attesa. Ciò sarebbe di facile attuazione scrivendo i risultati in un piccolo riquadro HTML o IFRAME e presentandoli in un'altro.

Ti preghiamo di notare che attraverso il trasferimento asincrono, i risultati ottenuti vengono probabilmente già presentati sulla tua pagina web. Pertanto ricorda che:

  • Il filtro XML deve trasmettere i risultati o scriverli subito in una banca dati.
  • La trasmissione deve essere conclusa con un flush (); (in PHP, altri linguaggi di programmazione possiedono qualcosa di simile) per trasferire i dati al client browser.
  • Generalmente, la maggioranza dei browser, presenta le tabelle solamente quando sono </table> complete. Dato che il libro viene presentato nella riga di una tabella, ha senso che per ogni riga (dunque per ogni libro) venga creata e completata una singola tabella.
Implementazione di riferimento

Per domande tecniche ti preghiamo di rivolgerti a db.dev@eurolibro.it.