// Vous lisez...

Blog

Le Corner Epagine à la mode Bibliosurf

Historique

Epagine, c’est surtout la volonté d’un homme Stéphane Michalon qui a décidé qu’il fallait créer un outil de vente de livres numériques pour les librairies indépendantes, lequel respecterait tous les acteurs du circuit du livre... à la différence des pratiques actuelles de Numilog et d’Amazon.

Bibliosurf.epagine.fr, c’est encore le même homme, Stéphane Michalon, qui a décidé d’encourager toutes les nouvelles initiatives sur le web, qui a été le premier à affirmer aux éditeurs que Bibliosurf même sans devanture commerciale donnant sur la rue est une vraie librairie, dont les expériences en cours profiteront à terme à toute la profession.

Choix

En juin, il a fallu opter entre deux possibles :
- intégrer les données sur bibliosurf et travailler avec l’API d’epagine ;
- utiliser le corner epagine déjà à disposition de grandes librairies partenaires d’epagine dont Le Divan.

J’ai été contraint de prendre la seconde offre n’ayant pas au moment T les compétences en interne pour exploiter l’API d’Epagine.

L’apport de bibliosurf

Tous les corners d’epagine se ressemblent. Au librairie de trouver un moyen de les enrichir.

1ère étape : créer un lien entre les deux passerelles

J’ai d’abord choisi d’intégrer les flux de livres informatiques émis par epagine. Je les ai indexés et j’ai choisi de les afficher avec des flux rss en provenance de sites connus dans un dossier intitulé INFORMATIQUE : NOUVEAUX FLUX ET LIVRES NUMERIQUES

Ensuite, je me suis attaqué à la fiction.
J’ai choisi d’afficher sur les notices du catalogue "livre papier" qui ont aussi une version numérique un lien vers celles-ci.
Pour atteindre cet objectif, j’ai créé un groupe de mots clés ISBN numérique et j’ai indexé les notices avec ces mots clés. Et sur le squelette qui affiche les notices, j’ai écrit le code suivant.

    <BOUCLE_EAN_NUM(MOTS){id_article}{id_groupe=25}>
  [<div style="float:right;margin-top:10px;"><a class="tag" href="http://bibliosurf.epagine.fr/detail.php?ean=(#TITRE)">Achetez la version numérique !</a></div>]
   </BOUCLE_EAN_NUM>

Pour automatiser la création de ce lien automatique, j’ai imaginé un programme qui traite les flux de bibliosurf.epagine. La première fonction étant d’extracter les isbn papier et numérique du flux et ensuite d’effectuer les vérifications dans la base de données et d’alimenter les deux tables concernées. C’est le génial CM qui a créé le programme ci-dessous

<?php

function my_error($sql){
 echo("Error: Request \"".$sql."\" returned \"".mysql_error()."\".<br/>");
 die();
}

$server=mysql_pconnect("","","");
if($server) echo('Connection to server established... <br/>');
else echo('Error: connection to server failed...<br/>');

if(mysql_select_db("mauvaisgbib",$server)) echo('Connection to database established... <br/>');
else echo('Error: connection to database failed... <br/>');

$sql = "SELECT MAX(id_syndic_article) FROM flux_epagine WHERE 1";
$result = mysql_query($sql, $server);
if($result && $result = mysql_fetch_row($result)){
 $max = $result[0];
}
else my_error($sql);

if(! $max) $max = 0;
$new_max = $max;
$num_rows = 0;

$sql = "SELECT id_syndic_article, descriptif FROM spip_syndic_articles ";
$sql .= "WHERE id_syndic = 642 AND ";
$sql .= "id_syndic_article > $max ";
$sql .= "ORDER BY id_syndic_article";

$results = mysql_query($sql,$server);

if($results){

 if(mysql_num_rows($results) > 0) echo("<br/>" . mysql_num_rows($results) . " feed item(s) found. Processing... <br/>");
 else echo "<br/>No feed items to process...<br/>";

 while($result = mysql_fetch_object($results)){
   $num_rows ++;
   if( $result->id_syndic_article > $new_max ) $new_max = $result->id_syndic_article;

   $descriptif = $result -> descriptif;
   preg_match("#http://images.epagine.fr/[0-9]+/(978[0-9]{10}).*\.jpg#i", $descriptif, $image);
   $image = $image[0];
   $descriptif = preg_replace("#http://images.epagine.fr/[0-9]+/(978[0-9]{10})#","<isbn>$1</isbn>", $descriptif);
   $descriptif = preg_replace("#http://bibliosurf.epagine.fr/detail.php\?ean=([0-9]{13})#","<ean>$1</ean>", $descriptif);

   preg_match("#<isbn>[0-9]{13}</isbn>#",$descriptif,$isbn_tab);
   preg_match("#<ean>[0-9]{13}</ean>#",$descriptif,$ean_tab);

   $isbn = preg_replace("#<isbn>([0-9]{13})</isbn>#","$1", $isbn_tab[0]);
   $ean = preg_replace("#<ean>([0-9]{13})</ean>#","$1", $ean_tab[0]);

   echo "<br/><img src='$image' /><br/>";
   echo "ISBN: $isbn / EAN: $ean<br/>";

   $sql = "SELECT id_mot FROM spip_mots WHERE titre = $isbn";
   $result = mysql_query($sql,$server);
   if($result && $result = mysql_fetch_object($result)){
     $id_mot = $result->id_mot;
     $sql = "SELECT id_article FROM spip_articles WHERE id_article IN (SELECT id_article FROM `mauvaisgadulo`.spip_mots_articles WHERE id_mot = $id_mot) AND id_secteur = 1";
     $result = mysql_query($sql,$server);
     if($result && $result = mysql_fetch_object($result)){
       $id_article = $result->id_article;
       echo"Match for id_article=$id_article and id_mot=$id_mot <br/>";

       $sql = "SELECT titre FROM spip_mots WHERE titre = $ean";
       $result = mysql_query($sql,$server);
       if( $result && mysql_num_rows($result) == 0)
       {
         $sql = "INSERT INTO spip_mots (id_groupe, titre, type, idx, url_propre) VALUES (25,$ean,\"ISBN_NUM\",1,$ean)";
         if(! mysql_query($sql,$server) ) my_error($sql);
         else echo "Keyword added to database.<br/>";
         $id_ean = mysql_insert_id();
         $sql = "INSERT INTO spip_mots_articles (id_mot, id_article) VALUES ($id_ean, $id_article)";
         if(! mysql_query($sql,$server) ) my_error($sql);
       }
       else echo "Already a keyword reference that EAN<br/>";

     }
     else my_error($sql);
   }
   else echo "Not found in database...<br/>";

 }
}
else my_error($sql);


if($num_rows > 0){

 $sql = "DELETE FROM flux_epagine WHERE 1; ";
 if(! mysql_query($sql,$server) ) my_error($sql);
 $sql = "INSERT INTO flux_epagine (id_syndic_article) VALUES ($new_max);";
 if(! mysql_query($sql,$server) ) my_error($sql);

 echo ("<br/>New id_syndic_article to start from next time will be > $new_max<br/>");
}

echo ("<br/>Operation finished.<br/>");

?>

2ème étape : récupérer la médiation de bibliosurf sur bibliosurf.epagine.fr

J’ai donc créé pour se faire un widget « récupérer le contenu enrichi de bibliosurf.com » Lire mon précédent billet sur ce sujet.

Le code du squelette SPIP qui envoie les données est celui-ci :

         <BOUCLE_mots_19(MOTS){titre=#ENV{ean}}>
                          
   <BOUCLE_interview(ARTICLES){id_rubrique=13}{id_mot}>
                           document.write('[<br /><a class="spip_out" style="text-decoration: none;" href="http://www.bibliosurf.com/#URL_ARTICLE">(#TITRE)</b></a>]');
   </BOUCLE_interview>
   <B_forum>
   <BOUCLE_forum(FORUMS spip_mots_articles spip_articles){id_mot}>
   #SET{forumvar,#ID_ARTICLE}
         </BOUCLE_forum>
           document.write('<br /><BOUCLE_art(ARTICLES){id_article=#GET{forumvar}}><a style="text-decoration: none;" href="http://www.bibliosurf.com/#URL_ARTICLE"></BOUCLE_art>#TOTAL_BOUCLE [(#TOTAL_BOUCLE|>{1}|?{'chroniques','chronique'})]</a>');
   </B_forum>
   <B_syndic>
   document.write('<br /><b>Ailleurs sur le web</b></a>');
   <BOUCLE_syndic(SYNDIC_ARTICLES){id_mot}{par date}{inverse}>
                        document.write('<br /><a  style="text-decoration: none;" href="#URL_ARTICLE"><BOUCLE_site2(SITES){id_syndic}>[(#NOM_SITE) -]</BOUCLE_site2> [le (#DATE|affdate_court)]</a>');
     </BOUCLE_syndic>       

    </BOUCLE_mots_19>

Epagine a ensuite juste à intégrer le code ci-dessous dans le gabarit qui affiche les notices.

<script type="text/javascript" src="http://www.bibliosurf.com/spip.php?page=nomduwidget&ean=ISBN13"></script>

Conclusion

J’ai bien conscience que l’utilisation du corner est une étape intermédiaire. Merci d’encourager cette démarche en achetant vos livres sur bibliosurf.epagine. Durant quelques temps, Bibliosurf.com bénéficiera d’une offre que ni Amazon ni Numilog auront. Et en plus vous avez la médiation de Biblliosurf :
- Un dossier dédié à la Fiction (livres numériques) qui intègre toutes les applications du site.
- Des notices enrichies sur bibliosurf.epagine.
Ex Des Néons Sous La Mer de Frédéric Ciriez La Traversee Du Mozambique Par Temps Calme de Patrice Pluyette

Commentaires

5 Messages de forum

  1. Le Corner Epagine à la mode Bibliosurf

    Créer des outils de vente de livres numériques pour les librairies indépendantes, c’est justement ce que fait numilog, arrêtez vos amalgames bidons.

    | 9 octobre 2009, 15:43
  2. Le Corner Epagine à la mode Bibliosurf

    J’adore les messages non signés... En général, je ne les diffuse pas. En le modérant celui-ci, je montre une manière agressive de procéder.

    Si Numilog construit des portails clés en main pour les libraires et les bibliothécaires, il le fait d’une manière exclusive. La preuve : aujourd’hui, il n’est pas possible de vendre un livre numérique du groupe Hachette sur une autre plateforme que Numilog.

    par Bibliosurf.com | 10 octobre 2009, 09:50
  3. Le Corner Epagine à la mode Bibliosurf

    Pour info, le message non signé et très sympathique provient de ...

    par Bibliosurf.com | 10 octobre 2009, 10:01
  4. Le Corner Epagine à la mode Bibliosurf

    Il me semble que chaque éditeur choisit son distributeur numérique : des éditeurs du groupe Hachette ont choisi Numilog, Gallimard a choisi ePagine, vous pourriez très bien vendre du Hachette en passant par l’API de Numilog (et les autres éditeurs via d’autres API) comme le fait la librairie Dialogues par exemple. Il n’y a pas d’exclusivité. La démarche d’epagine est la même que celle de numilog, ces deux sociétés travaillent pour donner aux libraires les moyens de vendre du numérique, il n’y a pas à les opposer. Elles ont d’ailleurs les mêmes adversaires, ceux qui ont intérêt à ce que le lecteur se passe de libraires (et de bibliothèques) : amazon, google, orange, sfr, etc.

    par pseudonyme | 23 décembre 2009, 11:54
  5. Le Corner Epagine à la mode Bibliosurf

    Cher anonyme,

    Votre commentaire contient une erreur manifeste.

    Epagine n’est pas l’équivalent de Numilog. Epagine ne vend pas de livres en ligne. Epagine crée des structures de ventes en ligne pour les libraires tandis que Numilog joue sur les deux tableaux. Et c’est la grande différence.

    Car l’idéal serait :
    1. si un libraire ne sait pas coder : il choisit un prestataire qui lui construit une structure qui interroge les différentes API de distributeurs numériques. Il paie ensuite une redevance pour le service.
    2. Si il sait, il le fait lui même.

    Dans tous les cas, il y a des contrats avec les différents distributeurs numériques.

    Or pour l’instant, ce n’est pas possible. Et le bloquage vient de Numilog ! Epagine ne peut pas proposer aux libraires qui le suivent les catalogues des éditeurs d’Hachette. Epagine est juste un prestataire, ce refus n’est donc pas normal.

    Un distributeur doit rester un distributeur.

    Cordialement,
    Bernard Strainchamps qui s’exprime en son nom propre

    par Bibliosurf.com | 23 décembre 2009, 16:30

Répondre à cet article

Agenda des formations