Boutique en ligne avec PHP/MySQL et avec le CMS

Transcription

Boutique en ligne avec PHP/MySQL et avec le CMS
Département d’Informatique
Université de Fribourg, Suisse
http://diuf.unifr.ch
Boutiques en ligne avec PHP/MySQL et avec le CMS
Opencart
Deux approches au développement d’un site de
E-commerce
DENIZ ONMUS
No étudiant : 14-215-800
Fribourg, Avril 2016
Travail de séminaire en Informatique de Gestion
Encadré par :
Prof. Dr. Jacques Pasquier – Rocha
Table des matières
1 Introduction .............................................................................................. 1
2 Vision ........................................................................................................ 3
2.1 Présentation générale.................................................................................................... 3
2.2 Fonctionnalités particulières ........................................................................................ 3
2.3 Changement de voie ..................................................................................................... 4
3 Réalisation : première tentative avec PHP/MySQL ..................................... 5
3.1 Modèle entité/association ............................................................................................. 5
3.2 Conversion en tables relationnelles .............................................................................. 6
3.3 Début du site................................................................................................................. 7
3.3.1 Installation de Wamp .................................................................................................... 7
3.3.2 Structure générale du site .............................................................................................. 8
3.3.3 Utilisation .................................................................................................................... 10
3.4 Limites de l’approche ................................................................................................. 12
4 Réalisation : deuxième tentative avec le CMS Opencart ...........................14
4.1 Pourquoi avoir choisi Opencart ? ............................................................................... 14
4.2 Concepts généraux d’Opencart .................................................................................. 15
4.2.1 Une prise en main facile pour les débutants ................................................................ 15
4.2.2 Un système de layouts personnalisés .......................................................................... 16
4.2.3 Une personnalisation poussée ..................................................................................... 16
4.3 Choix personnels et autres adaptations ...................................................................... 17
4.3.1 Installation d’un pack de langue française .................................................................. 17
4.3.2 Un thème personnalisé en remplacement de celui par défaut ..................................... 18
4.3.3 Des bannières personnalisées ...................................................................................... 19
5 Présentation du site final du point de vue de l’utilisateur ..........................20
5.1 Inscription et Login .................................................................................................... 20
5.1.1 Inscription ................................................................................................................... 20
5.1.2 Login ........................................................................................................................... 21
5.2 Processus de commande ............................................................................................. 22
5.2.1 Choix des articles ........................................................................................................ 22
i
5.2.2 Confirmation de la commande .................................................................................... 25
5.3 Autres fonctionnalités ................................................................................................ 25
5.3.1 Un système de points de fidélité ................................................................................. 25
5.3.2 Possibilité de séparer les clients par groupes .............................................................. 26
5.3.3 Avis des clients sur un produit .................................................................................... 26
5.3.4 Un système de notifications complet........................................................................... 27
5.3.5 Un programme d’affiliation ........................................................................................ 27
6 Conclusion ...............................................................................................28
A Fichier .zip des ressources ......................................................................29
Bibliographie ................................................................................................30
ii
Liste des figures
Figure 1 : Modèle entité-association .......................................................................................... 5
Figure 2 : Schéma de la base de données, représentée avec MS Access .................................... 6
Figure 3 : Installation de Wamp ................................................................................................. 7
Figure 4 : page d'accueil du site Skateboard-shop .................................................................... 8
Figure 5 : structure des fichiers principaux du site .................................................................... 9
Figure 6 : le panier du client .................................................................................................... 11
Figure 7 : Formulaire des données du client............................................................................ 12
Figure 8 : Installation d'Opencart (source : blog.rosehosting.com)........................................ 15
Figure 9 : tableau de bord de l'administrateur ........................................................................ 16
Figure 10 : page d'édition de la bannière "manufacturers" ..................................................... 19
Figure 11 : les différentes fonctions du compte d'un client ...................................................... 21
Figure 12 : formulaire d'inscription comme nouveau client .................................................... 22
Figure 13 : Présentation par défaut des produits ..................................................................... 23
Figure 14 : Le panier en vue minimaliste ................................................................................. 24
Figure 15 : le panier en vue complète ...................................................................................... 24
Figure 16 : Champs pour écrire un avis ................................................................................... 26
Figure 17 : Panneau de notifications de l'administrateur ........................................................ 27
iii
Liste des codes
Code 1 : code de connexion à la BDD en utilisant la méthode "PDO" .................................. 10
Code 2 : Ajout du bouton "offres spéciales" à la barre de menu ............................................. 18
iv
1
Introduction
Le e-commerce est une forme de commerce en pleine mutation. En effet, les ventes par ecommerce représentent aux États-Unis près de 7% des ventes de détail totales, contre 2.8%
une décennie plus tôt. En Europe, le e-commerce représente environ 400 milliards d’euros1 de
chiffre d’affaires chaque année, avec une croissance annuelle de plus de 16% 2. Cette
informatisation du commerce ouvre des horizons nouveaux pour les entreprises voulant
agrandir leur public cible et donne aux personnes indépendantes voulant se lancer dans le
monde des affaires de formidables outils leur permettant de créer leur propre affaire même
avec de faibles connaissances informatiques.
Pour créer une plateforme de vente en ligne, il est possible d’utiliser 2 méthodes. La première
est celle du développement web en utilisant des pages web dynamiques générées par un
langage tel que PHP et un système de gestion de base de données tel que MySQL.
La deuxième consiste à utiliser un CMS (Content Management System) qui nous permettra
d’administrer quasi-entièrement notre site de manière graphique. Ce travail était prévu au
début au départ pour ne concerner que la première méthode, mais il a été jugé que la méthode
du CMS méritait aussi quelques explications et présentait de nombreux avantages par rapport
à la première.
Dans le chapitre 2 de ce travail, nous allons développer notre vision et éclairer les raisons
pour lesquelles un virage à 90° a été pris dans ce travail par rapport à la problématique initiale
du développement d’un site de e-commerce. Ensuite, dans le chapitre 3, puis dans le chapitre
4, nous allons exposer respectivement les tentatives avec PHP/MySQL et avec le CMS
Opencart pour arriver à nos fins. Au chapitre 5, notre site internet crée avec Opencart sera
1
Selon RETIS, l’e-commerce en quelques chiffres,
http://www.retis.be/introduction/statistiques-ecommerce/ , dernière visite
30.03.2016
2 Selon Ajemconsultants.com , chiffres sur le e-commerce,
http://www.ajemconsultants.com/admin/quelques-chiffres-sur-le-ecommerceissus-du-dernier-rapport-de-ecommerce-europe-devoile-a-barcelone-lors-dudernier-global-e-commerce-summit/ , Dernière visite 30.03.2016
1
Introduction
2
présenté de manière approfondie. Enfin, le chapitre 6 servira à faire une conclusion sur ce que
nous avons acquis et expérimenté.
Les conventions d’écriture utilisées dans ce travail comprennent :
-
Nom de fichier ou chemins d’accès : exemple
-
Légende d’une figure ou d’un code : Figure x : Installation de xxxx
-
Code source : 1
echo ‘exemple d’une première ligne’ ;
2
Vision
2.1 Présentation générale
Au début de ce travail, le but était de faire un site qui permette à un vendeur indépendant de
créer une boutique en ligne pour vendre des moyens de transport urbains tels que des
gyroskates, des trottinettes (tant électriques que non-électriques) et plus encore. Le site devait
avoir une présentation de chaque article, un système de panier, et un système d’enregistrement
des commandes dans une base de données relationnelle.
Pour cela, le langage de programmation de pages web dynamiques PHP (pour PHP :
Hypertext Preprocessor) ainsi que le SGBD MySQL ont été choisis. En effet, PHP et MySQL
sont très répandus dans le domaine du développement web. La dernière version de PHP, la
version 7.0, permet d’augmenter les performances de plus de 50% dans certains cas par
rapport à la version précédente, PHP 5.6.
Cependant, PHP étant un langage de programmation server-side, il fallait installer un serveur
web sur notre ordinateur pour que le code PHP soit lu. Cela a été rendu possible grâce au
logiciel Wamp pour Windows qui réunit en un seul programme un serveur Apache livré
directement avec une installation de PHP et de MySQL, ce qui nous facilite la mise en place
de notre environnement de travail.
2.2 Fonctionnalités particulières
Ce projet avait pour cahier des charges :
-
Une page pour visualiser une liste de produits générée grâce aux données de la BDD.
-
Un système de panier pour que le client puisse visualiser à tout moment les produits
qu’il a ajoutés à son panier, et le cas échéant, les supprimer.
-
Une option pour choisir la quantité désirée.
-
Un message montrant quel produit a été ajouté au panier ou supprimé du panier.
3
Vision
4
-
Une page qui sert à récolter les données personnelles du client pour que la livraison
s’effectue.
-
Une page qui résume le nombre de produits commandé et qui remercie le client.
-
Un système pour permettre à l’administrateur d’ajouter ou de supprimer des produits
dans la BDD sans toucher au code.
2.3 Changement de voie
À mi-chemin, il a été jugé que le projet de départ était trop ambitieux pour être implémenté
par un simple étudiant en gestion d’entreprise. En effet, le site ne saurait pas répondre aux
exigences car on arrivait à un point ou les fonctionnalités restantes telles que les
enregistrements des achats dans la BDD se révélaient trop complexes à développer. Cette
première tentative s’est donc soldée par un échec, quoiqu’il a été intéressant et enrichissant
d’un point de vue pratique.
La solution pour remédier à ce problème a été de passer à l’utilisation du CMS Opencart, qui
permet de développer des boutiques en ligne personnalisées. La version 2.0 de ce CMS, sortie
le 1er octobre 2014, ajoute des fonctionnalités très utiles telles que la possibilité de faire une
boutique respectant le principe du responsive design ainsi qu’une refonte du système
d’administration du site3.
Notre choix s’est porté sur ce CMS car il est l’un des plus utilisés au monde, tout en étant
open-source. De plus, il est très facile à manœuvrer pour un débutant et offre un large choix
de thèmes et d’extensions (gratuits et payants) dans son store en ligne, ainsi qu’une
documentation assez détaillée.
3
http://wiki.opencarthelp.com/doku.php?id=opencart_200x_versions
3
Réalisation : première tentative avec
PHP/MySQL
3.1 Modèle entité/association
Figure 1 : Modèle entité-association
5
Réalisation : première tentative avec PHP/MySQL
Notre modèle entité-association peut être décrit comme suit :
-
Un client peut passer une ou plusieurs commandes et une commande ne peut être
passée que par un seul client
Une commande concerne l’achat de 1 ou plusieurs produits, et un produit peut être
inclus dans 0,1, ou plusieurs commandes.
Un produit appartient à une catégorie et une catégorie contient plusieurs produits.
Un produit est fourni par un seul fournisseur, mais un fournisseur peut fournir
plusieurs produits.
Nous pouvons voir à ce stade que nous aurons besoin de 6 tables, dont une table de jointure
pour représenter la relation m-mc entre la table commande et la table « produit ».
3.2 Conversion en tables relationnelles
Figure 2 : Schéma de la base de données, représentée avec MS Access
6
Réalisation : première tentative avec PHP/MySQL
Pour générer une représentation de nos tables qui soit lisible et compréhensible, nous avons
dû utiliser le logiciel Microsoft Access qui possède une fonction intégrée qui permet une telle
représentation. Pour cela, il fallait créer nos tables ainsi que définir leurs colonnes, les clés
primaires et étrangères. Nous avons fait en sorte que la clé primaire de chaque table soit un
identifiant unique incrémenté automatiquement (exception faite pour la table « commande »
composée de deux clés étrangères en guise d’identifiant unique, ainsi que pour la table
Catégorie dont la clé primaire sera le nom de la catégorie, autrement dit l’attribut
CatégorieNom). Ensuite, nous avons exporté cette base de données Access en langage SQL
pour pouvoir l’importer plus tard dans PhpMyAdmin et ainsi éviter d’avoir à refaire le même
travail sur cette plateforme.
3.3 Début du site
3.3.1 Installation de Wamp
Figure 3 : Installation de Wamp
Nous avions vu précédemment que pour notre site puisse fonctionner sans problèmes, il faut
l’héberger sur un serveur, même local. Il faut aussi que ce serveur possède PHP et MySQL
installé, ainsi qu’une interface de gestion comme PhpmyAdmin. Si nous devions installer ces
7
Réalisation : première tentative avec PHP/MySQL
composants séparément, nous perdrions beaucoup de temps à les configurer. Nous ne
cherchons qu’à faire tourner un site simple, en local, et qui n’est pas destiné à être utilisé en
production. C’est pourquoi l’utilisation d’un logiciel comme Wampserver (souvent abrégé
« Wamp » ) qui regroupe tous les composants nécessaires à notre site nous permet d’avoir un
serveur web fonctionnel en quelques clics.
Une fois l’installation terminée, la racine de notre serveur se trouve dans le dossier
C:\wamp\www. Nous n’avons qu’à déposer dans ce dossier le code de notre site pour qu’il
soit affiché dans notre navigateur internet. Pour vérifier que le serveur fonctionne
correctement, il suffit d’accéder à localhost dans la barre de navigation de Chrome et la
page d’accueil par défaut de Wamp devrait s’afficher.
3.3.2 Structure générale du site
Figure 4 : page d'accueil du site Skateboard-shop
Les fichiers principaux qui composent notre site sont :
-
connect.php qui permet de se connecter à notre base de données.
-
barre_titre.php qui contient la balise <head> des pages de notre site, ainsi que
le début de la balise <body>
-
navigation.php qui contient le code de la barre de navigation sur le dessus.
-
produits.php qui se charge d’afficher la page d’accueil du site.
-
panier.php qui se charge d’afficher le panier de l’utilisateur.
8
Réalisation : première tentative avec PHP/MySQL
-
add_to_cart.php et remove_from_cart.php qui permettent d’ajouter ou de
supprimer un produit au panier.
-
checkout.php qui permet de présenter un formulaire pour que l’utilisateur y
inscrive ses données.
-
confirm.php qui permet de rentrer les données du fichier précédent dans la BDD et
d’afficher un remerciement à l’utilisateur.
-
bootstrap.min.css qui est un framework CSS, pour donner une apparence
moderne au site.
Dans la figure 5, nous résumons la structure du site. À noter que les ovales
représentent les fichiers affichés sous forme de page web, contrairement aux fichiers
présentés avec des rectangles qui eux n’affichent pas de page web.
Figure 5 : structure des fichiers principaux du site4
4
Inspiré de https://www.codeofaninja.com/2015/08/simple-php-mysql-shopping-cart-tutorial.html
9
Réalisation : première tentative avec PHP/MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
try
{
$pdo = new PDO('mysql:host=localhost;dbname=test', 'nizde',
'password_nizde');
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{
echo "Erreur de connexion a la BDD";
exit();
}
?>
Code 1 : code de connexion à la BDD en utilisant la méthode "PDO"
La connexion à la base de données se fait comme vu dans le code 1 grâce à la méthode PDO
(pour PHP Data Objects). C’est une extension de PHP qui sert à se connecter à une base de
données et à utiliser celle-ci pour un site web. Aux lignes 4 et 5 de notre code, nous avons
créé une nouvelle connexion à notre base de donnée que nous avons nommée test et qui se
trouve sur notre hôte local et utilisant le SGBD MySQL. Suivent ensuite le nom d’utilisateur
et le mot de passe. Cette connexion est traitée comme un objet stocké sous forme de variable.
Nous pouvons le remarquer facilement car toutes les variables en PHP commencent par le
signe $, comme ici avec cet objet $pdo. La ligne 6 nous permet de définir avec quel jeu de
caractères nous allons envoyer nos ordres à notre base de donnée (ici nous avons choisi UTF8). En effet, nous utilisons la fonction exec de notre objet $pdo pour envoyer une première
commande à notre base de donnée. Enfin, les lignes 8 à 13 nous permettent d’afficher ce qu’il
se passerait en cas d’erreur de connexion à la base de donnée, grâce à la fonction catch : un
message d’erreur s’afficherait, puis quitterait le programme.
3.3.3 Utilisation
L’utilisateur a le choix entre 3 produits : l’overboard, le longboard, et le blougouskate.
Il peut rajouter à son panier chacun de ses produits, puis en choisir la quantité désirée de
chacun depuis le panier grâce aux champs « Quantité » (à noter que le système de quantité
n’est pas implémenté, les quantités entrées n’ont pas d’effet sur les commandes). Il est
possible de jongler entre la page des produits et le panier pour ajouter ou supprimer librement
des produits (pour faciliter l’usage, le nombre de produits dans le panier est affiché
directement entre parenthèses dans la barre de navigation et est mis à jour automatiquement).
L’utilisateur doit ensuite confirmer la commande avec le bouton « passer à la caisse » en
dessous de son panier, au côté duquel est affiché le prix total de ses achats.
10
Réalisation : première tentative avec PHP/MySQL
.
Figure 6 : le panier du client
Une fois ceci fait le site va récupérer grâce à un formulaire ses données (nom, prénom,
adresse, numéro de téléphone) pour les stocker dans une base de donnée afin que
l’administrateur puisse les utiliser pour honorer la commande. Le formulaire se trouve sur la
page checkout.php.
Outre l’utilisation du site par un client, il avait aussi été prévu à la base de rajouter une
interface auquel l’administrateur pourrait s’y connecter pour ajouter ou supprimer des
produits au site sans avoir à modifier le code source. De plus, il était aussi prévu de sécuriser
le site contre les attaques informatiques grâce aux fonctions spéciales de PHP, dont la
fonction htmlspecialchars() qui est utile pour empêcher qu’un hackeur se serve d’un
formulaire du site, car cette fonction transforme certains caractères comme <, > ou les
guillemets en entités HTML. Par exemple, > devient &gt; une fois rentré dans un formulaire
ce qui élimine la possibilité que des gens se servent d’un formulaire pour injecter du code
dans notre site et ainsi en prendre le contrôle.
11
Réalisation : première tentative avec PHP/MySQL
Figure 7 : Formulaire des données du client
3.4 Limites de l’approche
Le choix de cette approche était motivé au départ par la volonté de développer un site de ecommerce simple utilisable dans la vraie vie en faisant appel aux technologies PHP et
MySQL. Cependant, nous avons vu par la suite qu’il serait utopique de pouvoir continuer
dans cette voie, tant le développement devenait complexe, et que des compétences
informatiques de plus en plus élevés étaient demandés pour terminer le site.
En outre, même si le site était terminé, il ne répondrait probablement pas aux demandes de la
plupart des utilisateurs, car celui-ci resterait très rudimentaire comparé à d’autres sites
développé grâce aux CMS. En effet, pour que le site soit considéré comme complet et puisse
nous aider à vendre des produits, il faudrait que celui-ci possède beaucoup d’autres fonctions,
telles qu’un système de paiement, de compte utilisateur, de recherche, de classement de
produits, etc. Ceci étant un une idée beaucoup trop ambitieuse pour être réalisée dans le cadre
d’un travail de séminaire, c’est pourquoi il a été décidé de l’abandonner pour passer à
l’utilisation d’un CMS.
12
Réalisation : première tentative avec PHP/MySQL
En effet, l’utilisation d’un CMS permettrait à une entreprise de profiter d’énormes avantages
parmi lesquels :
-
Économie de temps.
Économie d’argent car il n’y a pas besoin de développeur à embaucher.
Un site plus flexible et évolutif.
Pouvoir profiter d’une communauté d’utilisateurs du CMS pour le support (gratuit).
Avoir un support professionnel de l’éditeur du CMS (payant).
-
Profiter d’une documentation détaillée.
Certains CMS sont open-source et permettent donc une modification du code par soimême si besoin.
Profiter d’un store d’extensions et de thèmes.
Avoir un back-office ergonomique avec une interface graphique de qualité.
Des fonctionnalités pour adapter facilement la langue et la devise selon la
géolocalisation du client.
Une gestion des métadonnées pour améliorer notre placement dans les moteurs de
recherche.
-
13
Réalisation : deuxième tentative avec le CMS Opencart
14
4
Réalisation : deuxième tentative avec
le CMS Opencart
4.1 Pourquoi avoir choisi Opencart ?
Opencart est un Content management system (CMS) de boutique en ligne qui utilise PHP et
MySQL pour fonctionner. Ce logiciel permet à n’importe qui de faire un site de vente en ligne
sans avoir de connaissances préalables en programmation. Il est entièrement open-source
(sous licence GPL)
Ses principaux avantages par rapport à d’autres CMS est de proposer un large choix de
plugins, une communauté conséquente, une utilisation faible de ressources systèmes, une
interface très moderne ainsi qu’une simplicité d’utilisation remarquable.
Un autre avantage de ce CMS est son installation extrêmement simple. En effet, il suffit de
transférer les fichiers d’opencart (situés dans le dossier upload) dans le dossier www de
wamp, et d’accéder à la page localhost/upload pour débuter l’installation, qui
compare dès le début la configuration nécessaire et la configuration actuelle du serveur
(version de PHP, paramètres d’Apache, extensions de PHP etc…). L’installateur est donc
vraiment très clair et convivial, ce qui est un avantage pour les gens ayant peu de
connaissances informatiques.
Réalisation : deuxième tentative avec le CMS Opencart
Figure 8 : Installation d'Opencart (source : blog.rosehosting.com)
4.2 Concepts généraux d’Opencart
4.2.1 Une prise en main facile pour les débutants
Opencart se veut très simple à utiliser, notamment en évitant au maximum la manipulation de
code source par l’utilisateur, ce qui se traduit en pratique par une gestion du site quasientièrement à travers une interface graphique, même pour l’installation d’extensions.
La connexion au back-office se fait en accédant à localhost/upload/admin (où
upload est le dossier de notre serveur où se trouve notre installation d’Opencart). Une fois
les identifiants de l’administrateur entrés, celui-ci tombe sur un véritable « tableau de bord »
qui lui permet de voir en temps réel une série de données sur son e-shop, telles que les ventes
totales, les utilisateurs en ligne, la géolocalisation de ces derniers, les activités récentes, etc…
En outre, nous avons accès sur la partie gauche de l’écran à un menu hamburger avec des
sections ordonnées nous permettant de gérer librement notre site de vente en ligne. Parmi ces
sections, nous nous intéresserons plus particulièrement à celles-ci :
-
Catalogue : pour gérer ce que nous vendons et à quel prix.
Extensions : pour modifier notre site avec des applications tierces, des thèmes ainsi
-
que pour rajouter des captchas
Design : pour rajouter des bannières personnalisées au site.
Ventes : pour consulter les informations nous permettant d’honorer nos commandes.
15
Réalisation : deuxième tentative avec le CMS Opencart
Figure 9 : tableau de bord de l'administrateur
4.2.2 Un système de layouts personnalisés
Les Layouts (ou dispositions en français) sont des modèles de pages utilisés sur l’ensemble du
site. Pour faire simple, la page d’un produit utilisera le layout « product », tandis que les
pages telles que les modalités de livraison ou la politique de vie privée utiliseront le layout
« information ». Ces layouts sont uniques pour chaque thème, et sont disponibles dans le
dossier /catalog/view/theme/default/template/ dans une installation par
défaut d’opencart. Concrètement, ils se présentent comme un ensemble de fichiers .tpl (pour
template) qui contiennent du code PHP utilisant le moteur de template Smarty.
Ce système nous permet de définir avec efficacité quels éléments doivent s’afficher sur quels
genres de pages. En effet, une bannière publicitaire pourra être affichée sur toutes les pages de
produits, mais n’apparaîtra pas sur la page de login du site.
4.2.3 Une personnalisation poussée
Opencart étant un CMS Open-source, n’importe qui peut l’utiliser tout en modifiant le code
source comme il le veut. Cependant, il n’est pas nécessaire d’éditer directement le code
16
Réalisation : deuxième tentative avec le CMS Opencart
source pour pouvoir personnaliser son site, notamment grâce au shop d’extension en ligne
d’opencart5 (proposant des extensions payantes et gratuites). Les extensions, une fois
téléchargées sur l’ordinateur, s’installent grâce à l’installateur d’extension inclus dans le backoffice de notre site-web, sous la rubrique « Installer des extensions ». Pour utiliser cet
installateur, il suffit d’uploader le fichier .zip d’une extension téléchargée et d’appuyer sur le
bouton « continue ». Les extensions installées s’activent et se désactivent grâce au menu des
modifications sous la rubrique « extensions ».
Ces extensions peuvent se présenter sous diverses formes, allant à un simple générateur de
captchas gratuit au module à 100 dollars qui permet de faire une refonte complète du système
de commandes. En outre, il est aussi possible de télécharger des thèmes qui changent
radicalement l’apparence de notre site, et qui ont leur propre dossier indépendant dans notre
système pour permettre à l’administrateur de modifier lui-même à sa guise les thèmes qu’il
télécharge pour faire d’éventuelles adaptations.
4.3 Choix personnels et autres adaptations
4.3.1 Installation d’un pack de langue française
Opencart est livré par défaut avec uniquement le support de l’anglais. Cependant, n’importe
qui peut créer sa propre traduction ou en télécharger une sur Internet. Pour installer une
nouvelle traduction dans le système, il suffit de déplacer les fichiers de traduction dans le
dossier upload/sytem/language. Une fois ceci effectué, il suffit d’aller dans le backoffice et de séléctionner les paramètres de localisation sous la rubrique Système. De là, on
nous proposera de choisir la langue par défaut du système ou d’ajouter de nouvelles langues.
Nous avons décidé de garder uniquement la langue française pour notre site. Les traductions
se présentent sous la forme de fichiers. .php qui déterminent quel terme anglais doit être
remplacé par son correspondant français.
Ces traductions peuvent être payantes ou gratuite. Dans le cadre de ce travail, nous avons
téléchargé la traduction gratuite « French pack language OC2 »6. Cependant, ce pack de
traduction contenait quelques erreurs, tels que des erreurs d’encodage ou des virgules
oubliées. Nous avons pu les corriger en éditant les fichiers PHP correspondants aux pages où
ces erreurs apparaissaient.
5
Accessible à l’adresse http://www.opencart.com/index.php?route=extension/extension
6 Disponible sur le shop d’extension d’opencart en tapant « French » puis en choisisssant « Free » dans le menu déroulant
17
Réalisation : deuxième tentative avec le CMS Opencart
4.3.2 Un thème personnalisé en remplacement de celui par défaut
Les thèmes personnalisés, qu’on peut créer soi-même ou acheter sur le shop d’extensions
(même si quelque rares thèmes sont gratuits) sont une composantes très importante de notre
site.
En effet, le thème par défaut livré par Opencart risque d’être beaucoup trop générique pour la
plupart des vendeurs, et collera souvent mal avec l’image que l’on veut donner de nousmême. Tant pour se différencier que pour peaufiner notre identité visuelle, il faut donc que
notre shop possède un design unique et efficace. Heureusement, il est tout à fait possible de
créer son propre thème ou de modifier celui existant.
Pour notre site, nous avons choisi le thème « Ancart », qui possède un design épuré et
visuellement homogène, tout en étant gratuit et responsive. Le thème s’installe grâce à
l’installateur d’extension, ce qui nous évite de devoir manipuler des dossiers ou des fichiers.
Cependant, certaines couleurs ne nous donnaient pas entière satisfaction, notamment la
couleur rouge utilisée dans ce thème pour les éléments mis en surbrillance par la souris. Nous
avons
donc
ouvert
le
fichier
CSS
du
thème
(situé
dans
upload\catalog\view\theme\ancart\stylesheet) pour y modifier les codes
de couleur en hexadécimal des éléments concernés pour y ajouter du bleu au lieu du rouge.
Nous en avons aussi profité pour réduire la taille du logo de l’entreprise qui prenait trop de
place.
Mais la personnalisation ne s’arrête pas là. Nous avons voulu rajouter dans la barre de menu
(avec les catégories telles que « gyroskate » etc…) un lien vers les offres spéciales du site.
Pour cela, il nous a fallu modifier le fichier header.tpl situé précisément dans le dossier
upload\catalog\view\theme\ancart\template\common et y rajouter ce code
à la ligne 97 :
1 <li><a href="index.php?route=product/special"> <b>Offres spéciales</b></a></li>
Code 2 : Ajout du bouton "offres spéciales" à la barre de menu
18
Réalisation : deuxième tentative avec le CMS Opencart
4.3.3 Des bannières personnalisées
Opencart permet de créer des bannières pour présenter rapidement par exemple certains
produits. Nous avons décidé d’utiliser deux bannières sur notre site :
-
Une bannière en page d’accueil servant à présenter des produits
Une bannière qui s’affichera sur les pages de produits, de catégories, ainsi que sur la
page d’accueil de notre site et qui présentera les logos des marques dont les produits
sont vendus sur notre site
Évidemment, ces bannières sont entièrement cliquables, et redirigent vers la page d’un produit
(dans le cas de la bannière des produits) ou vers l’ensemble des produits d’une marque (dans
le cas de la bannière des marques) à la suite d’un clic.
Pour installer ces bannières, il faut d’abord les créer dans le menu « bannières » dans la partie
Design, puis choisir sur quelles dispositions (ou layouts) nous voulons les activer dans la
partie « disposition » de cette même partie. Il est possible de choisir pour chaque disposition à
quel endroit nous voulons afficher notre bannière parmi quatre choix proposés de base (Haut
de page, bas de page, colonne de gauche, colonne de droite).
Figure 10 : page d'édition de la bannière "manufacturers"
19
5
Présentation du site final du point de
vue de l’utilisateur
5.1 Inscription et Login
5.1.1 Inscription
L’inscription se fait en cliquant sur le bouton « compte » à côté du numéro de téléphone, puis
en cliquant sur « s’enregistrer » dans le menu déroulant qui apparaît. Ensuite, l’utilisateur doit
remplir un formulaire ayant des champs obligatoires et non obligatoires. Parmi les champs
obligatoires, nous trouvons entre autres le numéro de téléphone, l’adresse complète, le mot de
passe, le nom et le prénom, ainsi qu’un captcha à remplir. Une fois ces informations rentrées,
la personne doit cocher la case « J’accepte la politique de vie privée » puis cliquer sur
continuer. Une confirmation sera dès lors envoyée par e-mail au nouveau client, et ce dernier
sera automatiquement connecté à son compte une fois le formulaire envoyé. Le client peut dès
lors passer des commandes et a accès à toutes les fonctionnalités du site. La première page
qu’il verra sera la page « compte », qui est la page où il pourra modifier les informations de
son compte, son mot de passe, consulter ses commandes en cours etc... (Voir figure 11)
Note : L’inscription n’est pas obligatoire pour commander sur le site. Il est en effet possible
de commander en tant qu’invité, mais il est recommandé de s’inscrire pour que le processus
de commande se fasse plus rapidement et pour que le client puisse accéder aux informations
détaillées d’une commande en cours.
20
Présentation du site final du point de vue de l’utilisateur
Figure 11 : les différentes fonctions du compte d'un client
5.1.2 Login
Le login se fait en cliquant sur le même bouton « compte » que dans le processus
d’inscription, à la différence près que nous allons choisir « connexion » à la place de
s’enregistrer ».
De là, nous arriverons à une page qui nous demandera notre adresse e-mail et notre mot de
passe. À noter que cette page nous proposera aussi un lien pour créer notre compte si nous
n’en avions pas encore, et nous permettra de réinitialiser notre mot de passe dans le cas où
nous aurions oublié celui-ci. Si nous ne nous connectons pas à notre compte, il nous sera
proposé de le faire pendant le processus de commande sauf si nous voulons commander en
tant qu’invité.
21
Présentation du site final du point de vue de l’utilisateur
Figure 12 : formulaire d'inscription comme nouveau client
5.2 Processus de commande
5.2.1 Choix des articles
Les catégories
Notre stock est divisé en 4 catégories de produits :
-
Les gyropodes
Les gyroskates (séparés en 2 sous-catégories : modèles à une ou deux roues)
Les skateboards (séparés en 2 sous-catégories : électriques ou non-électriques)
Les trottinettes (séparés en 2 sous-catégories : électriques ou non-électriques)
La barre de menu permet de visionner les produits de chacune de ces catégories, ou d’une
sous-catégorie en particulier. À noter que cette même-barre possède un bouton Home et
un bouton « Offres spéciales » qui permet de voir tous les produits en solde, quelle que
soit leur catégorie.
22
Présentation du site final du point de vue de l’utilisateur
Le visionnage des produits et consultation du panier
Les produits peuvent être classés selon plusieurs critères tels que le prix, l’ordre alphabétique,
ou les évaluations des clients.
Il existe en outre une fonction « comparatif » qui permet de comparer aisément les
caractéristiques de plusieurs produits à la fois pour faciliter le choix. Cette fonction est
représentée par la 3ième icône sous le produit, les 2 premières servant respectant à ajouter le
produit respectivement au panier et à la liste de souhaits.
Figure 13 : Présentation par défaut des produits
Pour ajouter le produit au panier, l’utilisateur en choisit la quantité désirée et clique sur
« ajouter au panier » depuis la page du produit. À noter que le produit « ElectricMood »
possède une option de couleur or (qui coûte 50 francs plus cher) ou rouge. Il faudra dès lors
choisir laquelle on veut avant d’ajouter ce produit au panier.
Le panier est consultable dans une version résumée sur toutes les pages du site, même si on
n’est pas connecté à notre compte. Il se présentera sous la forme d’un petit onglet en haut à
droite de l’écran qui indique quels produits sont actuellement dans le panier, ainsi que le prix
total de nos achats. Il est aussi possible de supprimer un produit dans ce panier minimaliste en
cliquant sur la croix rouge à droite des produits.
23
Présentation du site final du point de vue de l’utilisateur
Dans la figure 14, nous avons rajouté au panier le produit « ElectricMood » dans sa version
or. Il nous est laissé le choix de consulter notre panier dans une vue plus détaillée, ou de
passer commande.
Figure 14 : Le panier en vue minimaliste
Dans le panier en version complète, nous aurons plus de détails sur nos produits, et nous
pourrons modifier librement les quantités désirées. De plus, il nous est possible d’utiliser un
bon cadeau ou d’estimer les coûts de livraison selon le lieu de résidence, comme vu sur la
figure 15 (à noter que certains textes sont en anglais car la traduction gratuite que nous avons
téléchargée ne comporte pas la traduction de toutes les chaines de caractères existants dans
opencart).
Figure 15 : le panier en vue complète
24
Présentation du site final du point de vue de l’utilisateur
5.2.2 Confirmation de la commande
Nous avons vu précédemment que le client avait le choix entre être connecté ou non pour
commander sur le site. Nous allons détailler ici le processus de confirmation avec un client
connecté.
La confirmation de la commande se fait en 6 étapes :
1)
2)
3)
4)
5)
Connexion du client à son compte
Informations de facturation
Informations de livraison
Mode de livraison
Mode de paiement
Dans les étapes 2 et 3, le champ sera pré-rempli avec ce que le client a entré comme
information pendant la création de son compte, mais il pourra choisir une autre adresse de
facturation ou de livraison s’il le souhaite. Aux étapes 4 et 5, un champ est à la disposition du
client pour mettre un commentaire. De plus, à l’étape 5, ce dernier doit cocher la case « J’ai lu
et approuvé la rubrique « Modalités et conditions ». Pour finir, à l’étape 6, un résumé de la
commande est affiché, et il ne reste plus qu’à cliquer sur « commander » pour terminer.
Toutefois, si le client voudrait passer en revue l’une de ses commandes, ou même retourner
un produit, il peut le faire sans problème depuis la partie « commandes » de son compte.
5.3 Autres fonctionnalités
5.3.1 Un système de points de fidélité
Comme sur beaucoup d’autres boutiques physiques ou online, les clients peuvent recevoir des
points de fidélité pour les achats qu’ils font. Le nombre de points de fidélité de chaque produit
est défini directement par l’administrateur. Ces points pourront ensuite être utilisés pour
effectuer des paiements sur le site. En outre, l’administrateur peut librement rajouter des
points de fidélité au compte de n’importe quel client, par exemple pour le dédommager.
25
Présentation du site final du point de vue de l’utilisateur
5.3.2 Possibilité de séparer les clients par groupes
Quand un client crée un compte, il est automatiquement ajouté au groupe de client
« Default ». Cependant, l’administrateur peut transférer son compte dans un autre groupe de
clients, ou créer d’autres groupes. Ces groupes permettent de segmenter les clients dans le but
d’optimiser les campagnes de marketing. En effet, une réduction spéciale peut être vue par les
clients d’un certain groupe mais pas par d’autres. Par exemple, un client n’ayant pas acheté
depuis longtemps peut être ajouté au groupe des acheteurs rares qui pourront voir des offres
que les autres ne verront pas.
5.3.3 Avis des clients sur un produit
Les clients ont la possibilité de consulter les avis d’autres clients sur un produit. Ces derniers
sont notés sur une échelle de 1 à 5 étoiles. Chaque avis doit être composé de 25 à 1000
caractères et doit être approuvé par l’administrateur. Ce dernier a la possibilité d’ajouter un
captcha pour éviter le spam. Les notes des utilisateurs peuvent servir de critère pour la
décision d’un client, sachant qu’il est possible comme nous l’avons vu précédemment de trier
les produits selon ces notes.
Figure 16 : Champs pour écrire un avis
26
Présentation du site final du point de vue de l’utilisateur
5.3.4 Un système de notifications complet
Figure 17 : Panneau de notifications de l'administrateur
L’administrateur possède un panneau de notification accessible de n’importe où depuis le
back-office du site et qui résume la situation actuelle des commandes, des clients, des produits
et plus encore selon les extensions installées. Ces notifications permettent à l’administrateur
de savoir quelles sont les commandes en préparation (« Processing »), lesquelles sont
terminées mais aussi le nombre de retours. Il peut suivre le nombre de clients connectés, les
produits hors-stock, mais aussi savoir si de nouveaux avis ont été postés.
5.3.5 Un programme d’affiliation
Pour augmenter notre chiffre d’affaires, nous pouvons proposer à d’autres personnes de faire
la promotion de nos produits sur leur site internet, et leur reverser un pourcentage pour chaque
vente auquel ils auront contribué. Pour participer à ce programme d’affiliation, le partenaire
doit créer un compte affilié sur notre site (différent du compte client) et doit être approuvé par
l’administrateur. Ensuite, l’administrateur fixe librement quel pourcentage de commission
touchera l’affilié. Ce dernier n’aura qu’à poster sur son site ou son blog les liens qui lui seront
fourni depuis son compte affilié pour commencer à gagner des commissions.
27
6
Conclusion
Nous avons vu durant ce travail qu’il était possible de procéder de deux manières différentes
pour créer son site de vente en ligne, et avons résumé le fonctionnement de chacune de ces
méthodes. Cependant, peu importe laquelle nous choisissons, la base restera toujours la
même, c’est-à-dire des pages générées en PHP utilisant un SGBD relationnel comme MySQL.
Ces technologies sont les plus utilisées actuellement pour créer des sites internet, qu’ils
servent à faire de la vente ou non. Même si notre premier essai n’était pas concluant, il nous
aura quand même servi à comprendre comment fonctionnait dans les grandes lignes un site de
vente en ligne simple, et nous aura aussi permis de découvrir plus en pratique les langages
PHP et MySQL.
Concernant notre site crée avec le CMS Opencart, nous sommes encore loin de connaître
toutes ses possibilités. Beaucoup de fonctions qui sont présentes de base dans ce CMS n’ont
pas pu être détaillés dans le cadre de ce séminaire tant elles étaient avancées. Sachant qu’il
existe des milliers d’extensions pour Opencart, et qu’une nouvelle version sort régulièrement
pour ajouter encore plus de fonctions, on peut dire sans problème que ce travail ne fait
qu’effleurer les possibilités de e-commerce avec ce CMS. Pour aller encore plus loin, il serait
possible de mettre un système de recommandations de produits comme sur Amazon, ou
encore de faire du B2B (Business to Business).
28
A
Fichier .zip des ressources
La racine de notre serveur contient 2 dossiers :
-
Le dossier « nizde » contient le code de notre première tentative.
-
Le dossier « upload » contient notre site opencart.
-
Le dossier « bdd » qui contient les fichiers permettant de répliquer les bases de
données utilisées ce travail.
29
Bibliographie
[Soutou, 1999]
C. Soutou, Programmer avec MySQL : SQL, transactions, PHP, Java, optimisations,
[avec 40 exercices corrigés], Eyrolles, 2015.
[Codeofaninja.com, 2015]
How To Build A Simple Shopping Cart Website With PHP And MySQL ? [URL:
https://www.codeofaninja.com/2015/08/simple-php-mysql-shopping-carttutorial.html], Dernière visite: 28.03.2016.
[opencart.com, 2015]
Opencart Documentation, http://docs.opencart.com/#, Dernière visite: 25.03.2016.
[tutsplus.com, 2014]
The Starter's Guide for OpenCart: An Introduction,
http://code.tutsplus.com/tutorials/the-starters-guide-for-opencart-anintroduction--cms-20647,Dernière visite: 10.03.2016.
30

Documents pareils