Un système d'affiliation pour votre site Par kidsinhalf www.openclassrooms.com
Un système d'affiliation pour votre site Par kidsinhalf www.openclassrooms.com Sommaire 2 Sommaire ........................................................................................................................................... 3 Un système d'affiliation pour votre site ............................................................................................... 3 Principe .............................................................................................................................................................................. 3 Identifier un internaute provenant d'un site affilié ........................................................................................................................................................ 4 Du côté de la table affiliation ............................................................................................................................................. 4 Notre table affiliation .................................................................................................................................................................................................... 5 Le script affiliation.php (à appeler sur toutes vos pages) ............................................................................................................................................ 7 Du côté de la table affilies ................................................................................................................................................. 7 La table affilies ............................................................................................................................................................................................................ 8 Un premier affilié ......................................................................................................................................................................................................... 10 Partager ..................................................................................................................................................................................................................... 2/11 www.openclassrooms.com Un système d'affiliation pour votre site Par kidsinhalf Mise à jour : 01/01/1970 Difficulté : Intermédiaire Dans le commerce électronique (e-commerce), il peut être intéressant d'avoir ses produits visibles sur d'autres sites partenaires. En échange, ces sites affiliés attendent une rémunération. Si la rémunération au clic est très répandue, elle présente un inconvénient majeur : un internaute qui clique n'est pas forcément un internaute qui achète. L'affiliation vient pallier ce défaut en ne prenant en compte que les internautes "qualifiés". On peut alors verser une commission sur le montant du panier encaissé. Sommaire du tutoriel : Principe Du côté de la table affiliation Du côté de la table affilies Principe V ous vous dites certainement qu'un script d'affiliation est difficile car c'est un concept propre aux sites marchands, et que cela est donc réservé aux professionnels. Détrompez-vous : vous êtes bien sur le Site du Zér0 et à ce titre (car c'est un titre honorifique), vous devriez comprendre ce qui suit sans trop de problèmes. En plus de connaître les langages PHP et SQL (ouf ! vous êtes encore sur le bon site pour cela), il vous suffit d'avoir bien compris le principe du script. Supposons donc que vous ayez une boutique en ligne et que vous vendiez... des graines de courgettes. V otre site n'est pas encore connu, et vous envisagez de lancer un "programme d'affiliation" afin que des sites internet, spécialisés dans la courgette en particulier, parlent de votre nouveau site. Identifier un internaute provenant d'un site affilié Dans un premier temps, il faut penser à installer un script présent sur toutes vos pages qui vous permettra d'identifier la provenance de vos internautes. En PHP, il existe une variable $_SERVER['HTTP_REFERER'] qui fournit la page précédente. Malheureusement, celle-ci n'est pas fiable, notamment dans le cas où la page est ouverte dans une nouvelle fenêtre par l'internaute. Le tag Nous allons donc utiliser un autre indicateur, fiable à 100 %: le tag. Rassurez-vous, cela n'a rien à voir avec les graffitis, et il ne faudrait pas non plus les confondre avec les "nuages de tags" qu'on voit dans le ciel de nombreux sites... Un tag, c'est simplement une variable que l'on fait passer dans l'url. Par exemple : origine=www.le-portail-de-la- courgette.com Ainsi, dans le lien http://www.graines-de-courgette.com?produit_id=21&id_affilie=9, Sommaire 3/11 www.openclassrooms.com parmi les deux variables transmises par la méthode GET, c'est id_affilie=9 qui est le tag : cela indique que l'internaute est venu du site affilié n°9. En supposant que le site www.le-portail-de-la-courgette.com soit justement le neuvième affilié à notre site, le webmaster de ce site devra "tagger" ses liens pointant vers notre site. À nous de lui indiquer le protocole : le nom du tag (ici, id_affilie) et... son identifiant (ici, 9). Transmettre le tag Rassurez-vous, on ne va pas trimballer ce tag dans l'url de toutes les pages visitées par l'internaute (eh oui, ça y est, nous avons notre premier internaute, il est venu par le site n°9). Nous allons juste créer la variable $_SESSION['affiliation']. Je rappelle que la variable superglobale $_SESSION est créée par le serveur et qu'elle conserve de page en page ce que vous voulez dedans. Il faut toujours appeler session_start() au début de vos pages... mais de toute façon, cela doit déjà être le cas si vous faites une boutique en ligne (sinon, comment conserver les informations du panier en cours ?). La présence de cette variable nous indique donc que notre internaute est un internaute provenant d'un site partenaire. Nous allons donc enregistrer dans une table cette heureuse visite. Nous verrons dans le script que dans $_SESSION['affiliation'] nous ne mettrons pas 9 (la valeur du tag), mais autre chose. Une table affiliation C'est la table qui enregistrera les visites comptabilisées comme issues du programme d'affiliation. On y stockera donc l'identifiant de l'affilié, l'identifiant du panier si c'est le cas, et le statut de la commande. V ous pouvez enregistrer davantage de choses (date et heure, url de provenance) mais le plus important, ce sont ces trois variables qui vous permettront de restituer ce qu'a fait votre internaute. Une table affilies Nous allons aussi créer une table rien que pour les participants au programme d'affiliation, c'est-à-dire nos sites affiliés. On y stockera bien sûr un pseudo, l'url du site et éventuellement des coordonnées standard par rapport à une inscription. C'est un peu comme de nouveaux membres. Nous allons aussi rajouter un champ commission si nous avons besoin de fixer des taux différents selon les affiliés. Ces deux tables n'ont pas grand-chose à voir. La table affiliation permet de suivre le parcours de votre internaute (d'où vient-il, quel est son panier, a-t-il finalement acheté ?). La table affilies sert à enregistrer vos sites partenaires. Il faudra donc certainement un formulaire d'inscription. Du côté de la table affiliation Bon, allez, on y va : on s'intéresse d'abord à la table affiliation. Ce n'est peut-être pas chronologique (comment recevoir des visites depuis des sites affiliés si personne n'est affilié à votre site ?) mais c'est plus pédagogique. Notre table affiliation Alors voilà : c'est plus simple de vous donner le code : Code : SQL CREATE TABLE `affiliation` ( `id` mediumint(9) NOT NULL AUTO_INCREMENT, `id_affilie` mediumint(9) NOT NULL, `dbclic` smallint(4) NOT NULL, `paye` tinyint(4) NOT NULL, `id_panier` mediumint(9) NOT NULL, Un système d'affiliation pour votre site 4/11 www.openclassrooms.com `ip` varchar(15) NOT NULL, `origine` varchar(250) NOT NULL, `date` date NOT NULL, `heure` time NOT NULL, PRIMARY KEY (`id`) ) Le champ id nous permet d'identifier la visite. id_affilie stockera la valeur du tag, c'est-à-dire le numéro de l'affilié. J'ai rajouté des champs comme "dbclic (pour savoir si la personne a au moins vu deux pages sur le site, ça voudra dire qu'il était un peu intéressé par les courgettes...), paye (qui vaudra 1 si la personne atteint avec succès la page de validation de paiement), id_panier (qui contient l'identifiant du panier si l'internaute en constitue un). Le script affiliation.php (à appeler sur toutes vos pages) Inclure le fichier J'espère que vous avez déjà un petit include "inc/initialisation.php" ou un autre sur vos pages car sinon, il va falloir penser à rajouter partout un petit include/affiliation.php. Si vous avez beaucoup de pages, ça peut vous prendre du temps. En général, la plupart des développeurs mettent dans un fichier à part les informations fondamentales au site. Par exemple, un fichier connexion_base.php, appelé à chaque fois pour éviter de toujours faire les trois lignes de connexion à votre base de données. Si c'est le cas, vous pouvez à la fin de ce fichier rajouter include inc/affiliation.php. Eh oui : rien ne vous empêche de mettre du include dans un fichier lui-même inclus ! Ce qui compte, c'est d'appeler le fichier au bon endroit. Supposons que notre fichier affiliation.php soit dans le dossier inc. Qu'allons-nous y mettre ? V ous le saurez au fil de ce tuto... On en a un ! On en a un ! Allez : on est dans le cas où l'on a récupéré un tag. Je vous rappelle que c'est quelque chose comme &id_affilie=9. Le but est alors d'insérer cette visite dans notre table affiliation. À ce moment, on crée la variable $_SESSION['affiliation'] qui contiendra l'id de cette visite. En PHP, la commande mysql_insert_id(), qui ne prend aucun argument, permet justement de récupérer l'id du dernier élément entré. On en profite pour créer deux autres variables dans $_SESSION qui nous seront utiles par la suite. Code : PHP <?php if (isset($_GET['id_affilie']) AND !isset($_SESSION['affiliation'])){ $sql_temp='INSERT INTO affiliation (id,id_affilie,date,heure,ip,origine) VALUES ("","'.$_GET['id_affilie'].'","'.date("Y-m- d").'","'.date("H:i:s").'","'.$_SERVER['REMOTE_ADDR'].'","'.$_SERVER['HTTP_REFERER' $reponse_temp=mysql_query($sql_temp); $_SESSION['affiliation']=mysql_insert_id();//on crée la variable superglobale $_SESSION['affiliation'] avec l'id correspondant dans la table affiliation $_SESSION['affiliation_nbclic']=0; $_SESSION['affiliation_panier']=false; } ?> Et ensuite, on en fait quoi ? Remarquez que j'ai mis une autre condition dans l'insertion : il ne faut pas que la variable $_SESSION['affiliation'] existe. C'est la signification de !isset($variable) qui veut dire "si $variable n'existe pas". Ainsi, on évite des cas bizarres où l'internaute actualiserait sa page, ou serait de nouveau venu par le site affilié. Il n'y a pas de raison pour que ce genre de bizarrerie compte pour une deuxième visite. Un système d'affiliation pour votre site 5/11 www.openclassrooms.com Maintenant que cette variable de session existe, il ne reste plus qu'à dire ce que l'on fait au fur et à mesure des événements qu'on souhaite détecter. Alors, après avoir vérifié que cet internaute provient d'un site affilié : Code : PHP <?php if (isset($_SESSION['affiliation'])){ $_SESSION['affiliation_nbclic']++; // On rajoute +1 clic //tests des événements choisis } ?> Le double clic (on change le statut de dbclic : 1=oui) : Code : PHP <?php if ($_SESSION['affiliation_nb_clic'])==2{ $sql_temp='UPDATE affiliation SET dbclic=1 uploads/Finance/ un-systeme-d-affiliation-pour-votre-site.pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 31, 2022
- Catégorie Business / Finance
- Langue French
- Taille du fichier 0.5124MB