Vous êtes sur la page 1sur 24

Cration d'un site de rservation en ligne

Annes 2010-2011

INFRASTRUCTURES TECHNOLOGIQUES POUR LE COMMERCE ELECTRONIQUE

Cours CNAM NFE102

Cours offerts par Luc Cantelaube

Auteur : Laurent Thibaud

Table des matires


Cration d'un site de rservation en ligne.............................................................................................1 Introduction..........................................................................................................................................3 Analyse des besoins fonctionnels.........................................................................................................4 1. Business plan...........................................................................................................................4 2. Dfinition des acteurs .............................................................................................................4 3. Cas d'utilisation.......................................................................................................................5 a. Pour les visiteurs:...........................................................................................................5 b. Pour la socit :..............................................................................................................8 Etude des besoins techniques.............................................................................................................10 1. Dfinition et choix d'un CMS...............................................................................................10 2. Composants ncessaires........................................................................................................11 a. Composants :................................................................................................................11 b. Modules :.....................................................................................................................12 c. Plugins :.......................................................................................................................12 3. Contenu.................................................................................................................................12 Ralisation technique..........................................................................................................................15 1. Template :..............................................................................................................................15 2. Modification du code source.................................................................................................15 a. Le menu d'affichage des catgories :...........................................................................15 b. Modification du panier : .............................................................................................16 c. Affichage d'un calendrier en commande......................................................................16 d. Modifications divers :..................................................................................................17 Hbergement.......................................................................................................................................19 1. Choix de l'hbergeur.............................................................................................................19 2. Scurit..................................................................................................................................20 a. Droit d'accs : ..............................................................................................................20 b. Scurisation du .htaccess : ..........................................................................................20 c. Dplacer les fichiers tlchargeables en dehors de l'espace web : ..............................21 d. Protger le fichier configuration.php : ........................................................................21 e. Crypter les donnes .....................................................................................................21 f. Divers...........................................................................................................................21 Prsence sur le web............................................................................................................................22 1. Rfrencement.......................................................................................................................22 2. Publicit................................................................................................................................23 Conclusion..........................................................................................................................................24

Introduction
Dans le cadre de l'UE CNAM NFE102 Infrastructures technologiques pour le commerce lectronique , il nous est demand de raliser un projet de site de e-commerce en ligne. Un site de e-commerce, par rapport un site habituel , permet de faire un achat en ligne, c'est--dire passer commande et la rceptionner chez soit (par livraison ou tlchargement). D'essor rcent (une quinzaine d'annes), leur cadre lgal est maintenant strictement dfini. Ces sites doivent en effet suivre certaines obligations (changement d'avis sans frais, affichage des CGV, procdures de remboursement). De mme, leur contenu et apparence est gnralement uniforme : produits regroups en catgories, parcourables, avec possibilit de constituer un panier et payer en ligne, mise en avant de produits en promotion, nuage de tags... Plusieurs solutions technologiques permettent la ralisation de ces sites, entre le codage intgrale du site (en PHP ou ASP par exemple) d'un ct, et la solution cls en main de l'autre ct, payante. Entre les 2 se trouve une possibilit gratuite et pourtant mature, choisie pour ce projet. Il s'agit d'utiliser le CMS Joomla, auquel nous rajoutons un module de e-commerce. Un CMS, par dfinition un Content Management System, permet de raliser un site internet partir d'une interface graphique, sparant le contenu de l'apparence. Permettant l'ajout d'infinit de composants supplmentaires, nous lui adjoignons Virtuemart qui permet de grer une plateforme de commerce lectronique, en back- et frontstore (une partie pour rajouter des articles vendre, une autre pour les consulter). Pour le projet raliser, nous prsenterons un site de rservation de voyages en ligne. Dans un premier temps, nous dfinirons les fonctionnalits et besoins attendus. Nous prsenterons ensuite l'infrastructure technologique supportant ce projet ; enfin nous expliquererons certains requis commerciaux.

Analyse des besoins fonctionnels


1. Business plan
Afin de dfinir la stratgie commerciale et les besoins du site de e-commerce, il convient de dfinir les grandes lignes d'un business plan. Nous situerons ainsi la concurrence et le potentiel du march. l'entreprise : le site est ralis dans un futur imaginaire pour la socit SPace Agency, agence de voyage et de rservation. Les produits proposs sont : des des des des des des sjours circuits touristiques vols spatiaux rservations d'htel locations croisires

L'entreprise se situe comme la SNCF des vols spatiaux , en pleine dmocratisation des voyages dans l'espace. concurrence : aucune actuellement clientle : compose moiti par des vacanciers, dsirant voyager pour le plaisir, recherchant soit de simples locations soit des croisires, dans des packs tout compris ; l'autre moiti est constitue de voyageurs d'affaires dsireux soit de voyager, soit de rserver une location, soit les 2 sparment. besoins financiers et humains, planification et budget prvisionnel non ncessaires pour l'instant

2. Dfinition des acteurs


Pour dfinir les besoins, nous dfinirons tout d'abord les diffrents utilisateurs potentiels du systme, dont nous dduirons les cas d'utilisation possibles. le visiteur pourra consulter des pages informatives, consulter des articles, ajouter des articles au panier, s'enregistrer sur le site ; le client est un visiteur ayant un compte, il pourra en plus s'identifier, modifier ses informations personnelles et passer une commande ;

le service commercial pourra crer de nouvelles catgories de produits et de nouveaux produits, crer des promotions et modifier les transporteurs/frais de port. Il pourra galement accder aux commandes, bien que lenvoi des billets soit automatis ; les administrateurs pourront en plus configurer la boutique en ligne et l'apparence/fonctionnement du site internet ; le systme est compos d'un serveur d'application (PHP), d'une base de donnes (MySQL) et d'un serveur SMTP (envoi e-mails) ; des serveurs de paiement externes permettant le paiement scuris (banque ou paypal).

3. Cas d'utilisation
La modlisation UML permet de schmatiser, pour chaque utilisateur, les utilisations qu'il fera du systme. Nous pourrons ainsi, dans la partie suivante, procder aux ralisations techniques ralisant ces besoins. a. Pour les visiteurs:

UC Voir catalogue : Acteurs : visiteur But : Slectionner une catgorie et de voir les articles en faisant partie, avec une image associe. Scnario : le visiteur clique sur un lien vers une catgorie, depuis une fiche informative ou un menu ddie. Il voit alors les articles faisant partie de cette catgorie, peut les trier, voir les notations d'autres clients.

UC Voir un article : Acteurs : visiteur But : Voir le dtail d'un article : prix, produits enfants, attributs Scnario : depuis une catgorie, le visiteur clique sur un article prcis. Il voit alors le descriptif de l'article, peut choisir un produit-enfant ou slectionner un attribut, voir ses type produits UC Ajouter au panier : Acteurs : visiteur But : Ajouter un article au panier, puis de voir le panier et continuer ses ventes

Scnario : depuis une fiche article, aprs avoir choisi, selon l'article, l'ge du voyageur, la date de dbut de voyage et si besoin la date de fin, le visiteur clique sur le bouton 'ajouter au panier'. Il choisit alors dans un popup s'il veut aller au panier ou continuer ses achats UC Enregistrement : Acteurs : visiteur But : Crer un compte sur le site et de devenir un client Scnario : le visiteur clique soit sur le lien 'inscription' (partie de droite), soit essaie de valider un panier et se voit proposer de s'inscrire. Le visiteur rentre les informations personnelles requises et valide les CGV. Un email de confirmation lui est alors envoy avec rappel de l'identifiant et du password.. UC Identification : Acteurs : client But : S'enregistrer avec son code personnel pour retrouver un ancien panier et/ou voir ses commandes, informations personnelles Scnario : en essayant de valider un panier ou sur la droite de toute page, le client rentre son login et son mot de passe. Un lien permet alors de 'se dconnecter'. UC Grer son comptee : Acteurs : client But : Modifier ses informations personnelles et d'accder l'tat de commandes passes Scnario : le client clique sur le lien 'votre compte'. Il peut alors accder aux 'informations de compte', 'informations de livraison' et voir ses anciennes commandes. UC Valider une commande : Acteurs : client But : Valider un panier pour finaliser une commande. Scnario : depuis le panier, le client clique sur 'commander'. Il choisit ensuite son adresse de livraison, le transporteur, la mthode de paiement, laisse un message et valide les Conditions Gnrales de Vente. Un rcapitulatif de la commande est prsent et permet de tlcharger le billet. Un rcapitulatif est galement envoy par email. UC Tlcharger le billet : Acteurs : client But : Tlcharger le(s) billet(s) suite une validation de commande Scnario : en fin de commande, suite de la page rcapitulative, le client clique sur 'tlcharger le fichier' et peut ensuite l'imprimer.

UC Effectuer un paiement : Acteurs : client But : Choisir le mode de rglement et d'effectuer le paiement lors d'une commande Scnario : lors de la validation d'une commande, l'utilisateur choisit entre 'paiement par chque', 'paiement ds rception' et 'paiement pay pal' et procde (virtuellement) au paiement.

b. Pour la socit :

UC Grer les produits : Acteurs : commercial But : Modifier, crer et supprimer des produits en vente Scnario : le commercial voit la liste des produits. Il peut en activer/dsactiver, supprimer ou ajouter, en modifier. UC Grer les catgories : Acteurs : commercial But : Modifier, crer ou supprimer des catgories de produits

Scnario : le commercial voit la liste des catgories. Il peut en activer/dsactiver, modifier, crer ou supprimer. UC Grer les transporteurs : Acteurs : commercial But : Modifier les transporteurs livrant les billets, ainsi que le tarif associ. Scnario : le commercial voit les transporteurs et peut les modifier. Il peut galement modifier ou crer des taux d'expditions, associs aux transporteurs. UC Voir les commandes : Acteurs : commercial But : Voir les commandes passes et modifier leur tat Scnario : le commercial voit les commandes, tries. Il peut les consulter, les imprimer, modifier leur tat pour soit les valider, soit les annuler. UC Configurer la boutique en ligne : Acteurs : webmaster But : Modification de configuration de la boutique en ligne Scnario : le webmaster peut modifier les options relatives la boutiques en ligne : informations sur l'entreprise, informations de contact, devises, logo, description, CGV, modes de rglement. UC Configurer le site internet : Acteurs : webmaster But : Modifier l'apparence ou le fonctionnement du site internet Scnario : le webmaster peut modifier l'apparence du site internet, ajouter de nouvelles fonctionnalits et de nouveaux articles

Etude des besoins techniques


Pour satisfaire les besoins exprims, plusieurs solutions techniques peuvent tre utilises. La liste ci-dessous n'est pas exhaustive, les principales possibilits tant : payer une entreprise extrieure qui ralisera pour notre compte le site, nous en confiant ou non l'administration (back-office). Solution prsentant le plus de potentiel, mais galement la plus couteuse ; raliser nous-mme le site de e-commerce. Les principales options sont alors : raliser le site de a z dans un langage de script (par exemple PHP, ASP...), en construisant un front-store (accessibles aux visiteurs) et un back-store (permettant l'administration du site). Avantages et inconvnients : personnalisation volont, aucun 'cout externe' mais trs forte complexit (il faut coder la partie visible, l'administration, les moyens externes de paiements) ; utiliser un outil de conception de site. Les CMS sont actuellement les plus populaires, car par nature ils diffrencient l'apparence du site du contenu, et leur utilisation ne requiert qu'un navigateur web.

1. Dfinition et choix d'un CMS


Un CMS est un Content Management System ou Systme de gestion de contenu. Il se prsente pour les administrateurs sous la forme d'un site web (backstore) permettant la modification du site web qui sera vu par les visiteurs (front store). Les administrateurs ont la possibilit de crer du contenu (cration d'articles dans une base de donnes), modifier l'apparence (utilisation de templates) et ajouter des fonctionnalits (modules, composants...), ce en parallle d'autres administrateurs. Le stockage se fait sous deux formes : une base de donnes (gnralement SQL), dans laquelle sont par exemple stockes les articles, comptes utilisateurs... Ce qui permet un affichage dynamique du contenu. Des fichiers, organises selon une arborescence, stocks sur un serveur FTP. Les templates sont par exemple stocks sous cette forme. Certains CMS sont propritaires et leur utilisation payante. Par exemple

Magento, ayant servi raliser le site www.selexium.fr. Selon la licence, la modification du code peut tre impossible, et toute mise jour tre payante. L'avantage est un code robuste et des possibilits priori infinies, dfinir avec l'diteur selon le contrat. Nanmoins, le prix en est trs lev. D'autres CMS sont gratuits. Par exemple Joomla ou SPIP. Des modules payants ou gratuits peuvent tre installs en plus, permettant une infinit de possibilits. Sous licence GPL, ces CMS sont crs par d'autres utilisateurs titre gratuit, et sont soutenus par une forte communaut de dveloppeur. Les avantages, par rapport un CMS payant, et selon la popularit de celui utilis, sont une forte ractivit lors de bugs ou de faille de scurits trouvs, rendant le code robuste. De nombreuses extensions sont proposes par d'autres utilisateurs, gnralement gratuitement, permettant un ajout facile de nouvelles fonctionnalits. En cas de problme, de nombreux forums peuvent aider. Enfin, le code source tant modifiable, il est possible de modifier soit mme le code du CMS ou de dvelopper les fonctionnalits dont nous avons besoin. L'avantage vident, par rapport aux CMS payant, concerne le prix, permettant toute entreprise d'tre prsente sur internet. Pour raliser notre projet, plusieurs CMS sont utilisables. Par exemple OSCommerce. Nous utiliserons le CMS Joomla, de par sa popularit et le support de la communaut de dveloppeurs. Nous y adjoindrons le composants Virtuemart, qui permet l'administration d'une boutique en ligne et ajoute au site la possibilit de parcourir des articles et passer des commandes. Joomla + Virtuemart constitue la solution la plus populaire de cration de boutique en ligne. De nombreuses extensions peuvent tre ajoutes aux 2, rendant les personnalisations gratuites et infinies.

2. Composants ncessaires
Suite l'installation de Joomla, pour raliser les besoins exprims en premire partie, nous utiliserons les add-ons suivants : a. Composants : Les composants sont des mini-applications qui grent le corps de la page . Les composants ajoutent des fonctionnalits. Nous utiliserons : Akeeba : sauvegarde et restauration du site ; Security Images : utilisation d'un code de scurit lors de la cration d'un compte, pour empcher des 'bots' de s'inscrire sur le site.

b. Modules : Les modules sont des bouts de code spcialiss dont le rsultat apparat directement dans le corps de la page. Nous utiliserons : Vituemart : administration d'une boutique en ligne Virtuemart_Cart: gestion d'un panier d'achats (remplir, voir, valider) Productscrollers : permet de crer des liens directs vers des articles en vente Product_Categories : permet de crer des liens vers le catgories d'articles existantes Virtuemart_Tag_Cloud : affichage d'un 'nuage de tags' Virtuemart_search : rechercher dans les produits/catgories c. Plugins : Aucun plugin particulier n'est ncesaire en plus de ceux fournis avec Joomla.

3. Contenu
Le contenu est de 2 types : les articles informatifs, grs par Joomla uniquement, et les produits, grs par Virtuemart. Le choix du contenu, et sa mise en place, est fait pralablement au choix de l'apparence du site. Nous devons alors choisir ce que nous voulons dire et montrer , et comment cela sera gr par le couple Joomla-Virtuemart. Deux cas peuvent se prsenter : soit le visiteur chercher des informations sur un objet stellaire, nous les lui offrons et proposons ensuite des voyages associs ; soit un client souhaite faire une rservation et peut tre intress par plus d'informations sur un sujet prcis, il ne faut alors pas le laisser aller sur un autre site (o il pourrait avoir d'autres offres). Un article informatif proposera un lien des voyages associs au sujet de l'article ; de mme un produit proposera un lien vers un article informatif associ. Les articles seront alors organiss comme suit, dans Joomla : section socit catgorie socit accueil

notre garantie mentions lgales notre technologie section Virtuemart catgories destinations les supernavoa les quasars les pulsars les trous noirs Saturne Jupiter Venus le soleil Mercure la lune Le choix de catgoriser les articles peut sembler inutile. Il faut nanmoins envisager les nouveaux contenus futurs, qui pourront alors prendre place sans modification importante. Les articles seront ensuite stocks comme tel dans Virtuemart : catgorie sjours sous-catgorie systme solaire sjour autour du soleil sjour sur Jupiter sjour sur la lune produit enfant : face claire produit enfant : face cache sjour sur mercure sjour sur Pluton sous-catgorie espace lointain Amas globulaire centre galactique produit enfant : 6 mois produit enfant : 50 ans plus tard catgorie circuits les gants de l'univers tour du systme solaire catgorie vols spatiaux rservation de vol produit enfant : station solaire produit enfant : vol vers la lune produit enfant : vol vers le bulbe galactique produit enfant : vol vers Mars produit enfant : vol vers Mercure produit enfant : vol vers Vnus catgorie htels htel Europa htel Ganymde

htel Lune htel Mercure htel Vnus catgorie locations centre de vacances Phobos htel Europa htel Ganymde htel Lune htel Mercure htel Vnus location dans la station spatiale internationale catgorie croisires amas globulaire les gants de l'univers tour de la voie lacte tour du systme solaire Selon les produits, nous utiliserons galement les attributs suivants : Age : majeur / - 16 ans / - 5 ans ; Date et Date2 (pour la date de dbut de sjour et, si besoin, date de fin) Nous utiliserons 2 types produits , selon les articles : fiche dtaille : indique pour le produit la mto prvue et envisageable, les beauts et anomalies qui seront vues, si le sjour est pour du repos ou des aventures, si le voyage fera voyager dans le temps, et le jour de dbut du voyage ; commodits : si le client pourra trouver une sale de runion, si l'quipement pour bbs est prvu, si des adaptations pour handicapes existent, et les sorties possibles. Aprs avoir cr le contenu, nous pouvons maintenant crer le site.

Ralisation technique

1. Template :
Pour correspondre l'image voulu par la socit, nous recherchons un template voquant l'espace, dans les tons du bleus foncs. Nanmoins, par soucis de lisibilit, la partie centrale du site doit tre claire. Aprs plusieurs tests, notre choix final se porte sur siteground-j15-85, dont la barre de titre et de pied de page est un dgrad de noir, avec certains menus bleus. Nous modifions le template de la faon suivante : pour afficher les diffrentes catgories de produits existantes en haut de page, nous positions le module associ en position 'user3'. Pour dplacer cette position entre l'image de titre et le contenu, nous modifions le fichier
/templates/siteground-j15-85/css/template.css

Nous ajoutons au bloc '#pillmenu' le contenu suivant :


float:right; top:220px; position: relative; font: white;

Puis pour modifier l'affichage de la position dans larborescence du site, au bloc 'flashnews_1' :
height: 20px;

et nous modifions l'image


templates\siteground-j15-85\images\flashnews.png

pour rduire la hauteur 20px; Nous modifions galement les images de titre, de panier, d'ajout au panier

2. Modification du code source


a. Le menu d'affichage des catgories : Par dfaut, lors du passage de la souris sur le menu des catgories (en position

User3), un sous-menu montrant les sous-catgories s'affiche. Nous dsirons dsactiver cet affichage pour forcer le visiteur aller sur la page d'accueil de la catgories, et voir chaque produit en faisant partie. Pour ce faire, nous modifions le fichier :
includes\js\jscook!;js

Dans la fonction cmItemMouseOverOpenSub, nous cachons la ligne 526 :


//cmShowSubMenu (obj, prefix, subMenu, orient);

b. Modification du panier : Par dfaut, le module de panier affiche en permanence le contenu du panier. Pour afficher uniquement un rsum du panier, nous modifions :
/components/com_virtuemart/themes/[default]/templates/common/minicart.tpl.php

Nous commentons la boucle entre la ligne 14 et la ligne 35, commenant par :


// Loop through each row and build the table foreach( $minicart as $cart ) etc ...

c. Affichage d'un calendrier en commande Permet de choisir une date de dbut (et de fin selon article) pour la rservation . Pour ce faire, nous nous inspirons de la mthode dcrite cette adresse : http://forum.joomla.fr/showthread.php?113907-Ajouter-un-calendrier-dansboutique-location-Virtuemart Nanmoins, celle-ci ne marchant pas en l'tat (probablement cause d'une volution dans les version), nous l'adaptons en procdant ainsi : nous modifions le fichier :
\components\com_virtuemart\themes\default\templates\product_details\includes\addtocart_advanced_ attributes.tpl.php

Ce fichier est constitu d'une boucle, parcourant tous les attributs possibles d'un produit. Nous ajoutons en dbut de boucle :
if ($attribute['title'] == 'Date') { ?> <?php JHTML::_('behavior.calendar'); ?> <script type="text/javascript" src="includes/js/joomla.javascript.js"></script> <div class="vmAttribChildDetail" style="float: left;width:10%;text-align:right;margin:3px;"> <label for="<?php echo $attribute['titlevar'] ?>_field"><?php echo "Debut" ?> </label>:

</div> <div class="vmAttribChildDetail" style="float:left;width:20%;margin:3px;"> <input class="inputbox" type="text" id="<?php echo $attribute['titlevar'] ?>_field" size="30" name="<? php echo $attribute['titlevar'].$attribute['product_id'] ?>" size="25" maxlength="10" value="" /> <a href="#" onclick="return showCalendar('<?php echo $attribute['titlevar'] ?>_field', '%d-%m%y');"><img class="calendar" src="templates/system/images/calendar.png" alt="calendar" /></a> </div> <br style="clear: both;" /> <input type="hidden" name="custom_attribute_fields[]" value="<?php echo $attribute['titlevar']. $attribute['product_id'] ?>" /> <input type="hidden" name="custom_attribute_fields_check[<?php echo $attribute['titlevar']. $attribute['product_id'] ?>]" value="<?php echo md5($mosConfig_secret. $attribute['titlevar']. $attribute['product_id'] ) ?>" /> <?php } else if ($attribute['title'] == 'Date2') { ?> <?php JHTML::_('behavior.calendar'); ?> <script type="text/javascript" src="includes/js/joomla.javascript.js"></script> <div class="vmAttribChildDetail" style="float: left;width:10%;text-align:right;margin:3px;"> <label for="<?php echo $attribute['titlevar'] ?>_field"><?php echo "Fin" ?> </label>: </div> <div class="vmAttribChildDetail" style="float:left;width:20%;margin:3px;"> <input class="inputbox" type="text" id="<?php echo $attribute['titlevar'] ?>_field" size="30" name="<? php echo $attribute['titlevar'].$attribute['product_id'] ?>" size="25" maxlength="10" value="" /> <a href="#" onclick="return showCalendar('<?php echo $attribute['titlevar'] ?>_field', '%d-%m%y');"><img class="calendar" src="templates/system/images/calendar.png" alt="calendar" /></a> </div> <br style="clear: both;" /> <input type="hidden" name="custom_attribute_fields[]" value="<?php echo $attribute['titlevar']. $attribute['product_id'] ?>" /> <input type="hidden" name="custom_attribute_fields_check[<?php echo $attribute['titlevar']. $attribute['product_id'] ?>]" value="<?php echo md5($mosConfig_secret. $attribute['titlevar']. $attribute['product_id'] ) ?>" /> <?php } else {

Pour qu'un produit soit rservation selon une ou deux date (dbut fin), il suffit de crer pour ce produit un attribut vide appel Date ou Date2. Le fichier que nous venons de modifier va tester la prsence de ces attributs et, dans ce cas, afficher un objet HTML <input type='text'> auquel il associera un affichage javascript de calendrier.

d. Modifications divers : Lors de l'existence de produits enfants, nous dsactivons l'affichage du nom commun. Par exemple, dans le produit 'sjour sur la lune', 2 produits-enfants

permettent de choisir si l'on veut sjourner sur la face cache ou la face visible. Leur nom respectif fait normalement apparatre 'face()' dans la partie slectionnable. Pour le dsactiver, nous modifions le fichier :
\administrator\components\com_virtuemart\classes\ps_product_attribut.php

et commentons la ligne 303 :


//$html .= $db->f( "product_name" ) ." - " ;

puis les lignes 319 324 :


/*while( $db_item->next_record() ) { $html .= $db_item->f( "attribute_name" ) . " " ; $html .= "(" . $db_item->f( "attribute_value" ) . ")" ; if( ! $db_sku->is_last_record() ) $html .= '; ' ; }*/

Puis nous modifions le mme fichier ligne 335 pour ne pas afficher le prix s'il est nul :
if($price["product_price"]!='0') $html .= ' - ' . $CURRENCY_DISPLAY>getFullValue( $price["product_price"] ) ;

La modification propose prcdemment donne uniquement au client la possibilit de rserver pour une certaine date. Elle ne permet pas de contrler les stocks des produits en fonction des dates, ce qui ncessiterait l'criture d'un composant pour virtuemart.

Hbergement
1. Choix de l'hbergeur
Le choix de l'hbergeur est important. Si l'on ne peut hberger soit-mme son propre site en achetant uniquement un nom de domaine, il est important de choisir un hbergeur fiable, assurant un trafic suffisant, pour permettre tout client de pouvoir, tout moment, procder un achat. Une coupure de service ou une limitation du nombre de visiteurs connects simultanment peut constituer une perte d'argent. Joomla, de plus, ne peut tre hberger par un simple serveur web (de type Apache ou IIS), car une base de donnes est ncessaire. Les pr-requis pour Joomla 1.5 sont les suivants : PHP 4.3.10 MySQL 3.23 Apache 1.3 ou IIS 6

Une seule base de donnes est suffisante pour un site Joomla. Il est en revanche recommand d'avoir accs PhpMyAdmin (pour administrer la base MySQL en cas de besoin), de mme qu'un accs FTP pour la mise en ligne. Les dernires versions de ces logiciels est recommande. Les 3 types d'hbergement possibles sont : l'hbergement mutualis : un ordinateur hberge plusieurs sites en mme temps. Il s'agit de la solution la moins couteuse (partage des frais) mais galement la moins performante (partage galement des performances) l'hbergement ddi : on loue en fait une machine avec sa connexion internet, l'administration est plus complexe mais les possibilits et les performances plus pousses. L'hbergement virtuel : entre les 2 solutions prcdentes, on loue une machine virtuelle, prenant place sur un puissant serveur. Pour notre projet, nous choisirons un hbergement mutualis gratuit. Notre choix se porte sur Olympe Network, qui prsente les avantages suivants : hbergement gratuit sans publicit infrastructure cloud PHP 5.4 , MySQL 5.5 et PHPMyAdmin serveur mail jusqu' 1 Go d'espace disponible

Pour mettre le site en ligne depuis notre machine de test, nous utiliserons Akeeba, qui permet de raliser depuis Joomla des backups un format compress (il est galement possible de raliser des backup intervalle rgulier en cas de dfaillance serveur). Pour extraire l'archive et la mettre en ligne, nous utilisons Akeeba eXtract Wizard puis FileZilla.

2. Scurit
La scurit, aprs la performance, est un point fondamentale pour un site en ligne. Les consquences d'une attaque, pour un site commerant, peuvent en effet tre dsastreuse, entrainant un manque gagner. Celle-ci est assure en premier lieu par l'hbergeur, et ce 2 niveaux : blocage des attaques par utilisation d'un pare-feu et d'un anti-virus, sur un serveur de type linux ne pouvant tre infect protection des donnes grce un hbergement de type cloud, compos de nombreuses machines virtuelles dupliques, donnant l'assurance de retrouver des donnes aprs la perte d'un serveur. Des conseils peuvent tre suivis dans la conception-mme du site mme, ceux ci-dessous sont tirs du livre Joomla et Virtuemart . Grce sa forte communaut, Virtuemart est maintenant jour et les bugs et failles, dtects, sont rapidement corriges. a. Droit d'accs : L'hbergement, sur un serveur de type linux, accorde des droits d'accs de 3 types, pour 3 catgories de personnes : le propritaire, un membre du groupe, ou n'importe ; qui peut lire un fichier, le modifier, ou l'excuter. Pas scurit, nous accordons aux fichiers la permission 644 aux fichiersv(le propitaire a tout accs, les autres peuvent lire) et 755 aux dossiers (tous droits pour le propritaire, lecture et excution pour les autres). b. Scurisation du .htaccess : ce fichier est le point d'entre du site, il permet de dfinir et droits et interdictions d'accs. Il convient de le protger d'un accs extrieur par le code suivant : <Files .htaccess> order allow,deny deny from all </Files>

c. Dplacer les fichiers tlchargeables en dehors de l'espace web : Suite une commande, le billet associ est tlchargeable. Il s'agit d'un fichier PDF. Pour viter des attaques possibles, il convient de rserver un sousrpertoire ces fichiers, savoir administrator/media/download/ d. Protger le fichier configuration.php : Ce fichier permet de configurer les options de base de Virtuemart. Il est possible de le protger en crant un second fichier, dans un sous-rpertoire, et en configurant configuration.php pour l'ouvrir. Pour viter toute modification de ce fichier, il est alors possible de dfinir se droits en 404 de sorte ne pas tre modifi. Nanmoins, cela interdisant toute modification de configuration depuis Virtuemart, nous n'appliquerons donc pas cette solution. e. Crypter les donnes Permet d'viter qu'un tiers n'intercepte les donnes changes entre le serveur et le client et ne puisse les interprter. Le site dispose d'une cl prive et donne au client une cl publique pour encoder les donnes, que seul le serveur peut lire grce la cl prive. Nanmois, notre hbergeur ne supportant pas le format SSL, cette solution ne peut tre applique f. Divers Des composants existent pour assurer la scurit du site, par exemple sh404SEF. Nanmoins, ces solutions sont payantes et ne peuvent tre mises en place dans le cadre de ce projet. Mettre rgulirement jour Joomla et Virtuemart, raliser des backups frquents grce Akeeba.

Prsence sur le web


Une fois le site commerant en ligne et protg, il faut maintenant s'assurer qu'il sera connu et utiliss par le plus de personnes possibles. Les clients ont 3 principales faons d'accder un site : ils cherchent un site particulier, il doit alors tre facilement trouvable et bien rfrenc ; ils cherchent une solution ou un produit, la prsence publicitaire doit faire du site le premier choix ; ils ne cherchent pas un produit mais sont attirs par une publicit.

1. Rfrencement
Depuis la rvolution google , 2 types de rfrencement existent ; l'enregistrement dans des moteurs de recherche, annuaires, etc... Le plus important annuaire est DMOZ (www.dmoz.org), utilis par de nombreux moteurs de recherche mais dont la mise jour est trs lente (plusieurs semaine aprs inscription). Des sites, souvent payant, permettent de s'inscrire dans plusieurs annuaires et moteurs la fois. Nanmoins, de moins en moins nombreux moteurs de recherchent mettent notre disposition un formulaire pour enregistrer son site dans leur base de donnes. L'objectif n'est pas le nombre mais la qualit. Il n'est pas ncessaire dans le plus d'annuaire possible, mais en revanche il convient d'tre l o se trouvent les clients potentiels, c'est--dire de s'enregistrer dans les annuaires relatifs notre domaine d'activit. La plupart du temps, ce rfrencement se base sur des balises <META> prsentent dans les enttes des sites webs, permettant au concepteur de dfinir des mots-cl qui seront interprts par les moteurs de recherche. le rfrencement la google , permettant au moteur de recherche de calculer par ses propres moyens les meilleurs rsultats une requte, suite un calcul complexe prenant en compte de nombreux facteurs : nombres de rptitions de mots, domaines de mots, sujets abords, nombres de visites de la page, nombre de liens pointant vers une page... Cela vite de tricher en utilisant mauvais escient des mta-balises. Le moteur de recherche parcourt en permanence le web, en suivant les liens qu'il trouve, dans une boucle infinie. Il value chaque site trouv selon ses propres critres, qui dfiniront ensuite la faon de retrouver ce

site. Il existe plusieurs techniques permettant d'optimiser son site, afin qu'il soit le mieux rfrenc. La plus lmentaire, propose par google, consiste proposer du contenu et le mettre en vidence, afin que le site soit un bon rsultat de recherche. Solution que nous avons mise en uvre en proposant des articles informatifs.

2. Publicit
La publicit est en plein essor sur le web et permet la gratuit de nombreux services (par exemple des vidos sur youtube, ou de la musique sur beezic). La solution grand public est la publicit des moteurs de recherche. Ceux-ci tant la principal faon de trouver un service ou un produit sur le web, il convient de s'assurer une forte prsence dans leur classement, en terme de 'page ranking', i.e. pour un produit recherch, le but est d'tre dans les premiers sites rfrencs. Google par exemple (mais Yahoo galement, et d'autres), propose Google Adword. En premier lieu nous dfinisssons une annonce, qui apparaitra en marge des pages de recherches. Nous choisissons ensuite des mots-cls rattachs cette annonce, avec un systme d'enchres au clic. Ainsi, si 2 socits proposent des voyages spatiaux, pour une recherche sur google de l'expression 'voyage spatial', la socit en tte des classements sera celle prte payer le plus cher pour un clic sur son annonce. Une bonne publicit permet de crer du trafic, et amliorera le rfrencement du site.

Conclusion
La ralisation de ce projet a t riche d'apports personnels. Ayant dj utilis superficiellement Joomla pour un site amical (www.mcemultiservices.tk), je connaissais dj les possibilits de Joomla sans avoir pu les concrtiser. J'ai ainsi commenc ce projet en ayant en tte un but que je devais raliser, sans encore savoir comment le faire mais en sachant que la communaut Joomla m'apporterait les solutions (par exemple pour l'utilisation de plannings). J'ai ainsi d mettre les mains dans le code pour ajuster certains dtails ncessaires et mieux comprendre le fonctionnement de Joomla et des CMS en gnral. Ayant pour but professionnel de devenir dveloppeur web, je projette de m'initier prochainement Magento ; cet approfondissement de Joomla aura t un premier pas. Ce projet m'a galement permis de me confronter aux ncessits des entreprises sur le web, savoir la visibilit et la scurit en premier lieu ; une bonne gestion des clients et de leur commande est un autre besoin fondamental fourni par Virtuemart.