E-Commerce

De OpenWikiBSD
Aller à : navigation, rechercher

Thelia, libre est une solution mature d'E-commerce apparemment. Faisons un test pour gérer le FSE, la maison des lycéens etc..du bahut.

Installation

Version stable 1.5.4

APrès des soucis sur la 2.0 en béta, je repars sur la stable 1.5.4

On s'inscrit puis on dl l'installeur. : [1]

apt-get install zip unzip tcpdump apache2 mysql-server php5-gd php5-mysql libapache2-mod-php5
unzip thelia.zip
chown -R www-data.www-data *
perl -pi -e 's/memory_limit = 128M/memory_limit = 150M/' /etc/php5/apache2/php.ini 
perl -pi -e 's/post_max_size = 8M/post_max_size = 20M/' /etc/php5/apache2/php.ini 
apache2ctl restart
mv client.orig client
mv template.orig template 

A la main le Mysql, ça rulez !

create database thelia;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON thelia.* TO ADMTHELIA@localhost IDENTIFIED BY 'PASS'; 


Un petit snapshot de la VM au cas où..

Puis allez sur http://SRV:/thelia/install/

N'oubliez pas de coller la bonne URL pour le site web. Dans mon cas : http://FQDN/thelia !

Lors de l'installa, le répertoire admin sera renommé en admin_XXXXXX

mv admin admin_XXXXXX et reload


Puis détruisez le répertoire thelia/install après l'install

Dans la config (admin....../lang.php), choisir l'URL du site donc, avec le sous-répertoire éventuel

Plugins

Paypal2

Attention à bien lire le readme, concernant les variables :

plugin est une version améliorée du plugin Paypal de Yoan Plugin Paypal originale version yoan, Pour l’utilisation, c’est simple il suffit d’installer le plugin comme habituellement dans Thelia, son originalité est que l’on gère et paramètre le mail du compte paypal, la devise de la monnaie et la langue de la devise via l’admin dans Configuration / Gestion des variables de votre administration thelia. 4 nouveaux champs sont crées : 

- paypal2 (votre mail du compte paypal), - devise_paypal2 (la devise de la monnaie, exemple EUR), - code_langue_paypal2 (la langue de la devise, exemple FR). - serveur2 (serveur de connexion Paypal, par exemple).

 Mode Sandbox pour les tests = https://www.sandbox.paypal.com/cgi-bin/webscr
 Mode Live pour la production = https://www.paypal.com/cgi-bin/webscr

- Page de redirection vers Paypal à été personnalisation pour mieux comprendre la redirection vers la page de paiment et faire patienter l'internaute

ATTENTION : désactiver le plugin Paypal installé en standard avant d’activer le plugin Paypal2 !


Version Béta 2.0

On s'inscrit puis on dl l'installeur. : [2]

apt-get install zip unzip tcpdump apache2 mysql-server php5-gd php5-mysql libapache2-mod-php5
unzip thelia.zip
chmod 777 cache/
chmod 777 log/  
 chmod 777 /var/www/thelia/local/config
chmod 777 /var/www/thelia/web
chmod 777 /var/www/thelia/local/session 
perl -pi -e 's/memory_limit = 128M/memory_limit = 150M/' /etc/php5/apache2/php.ini 
perl -pi -e 's/post_max_size = 8M/post_max_size = 20M/' /etc/php5/apache2/php.ini 
apache2ctl restart

A la main le Mysql, ça rulez !


Un petit snapshot de la VM au cas où..

Puis allez sur http://SRV:/thelia/web/install/

N'oubliez pas de coller la bonne URL pour le site web. Dans mon cas : http://FQDN/thelia !


Puis détruisez le repértoire thelia/web/install après l'install


Requêtes et tables

Lors d'une commande, les tables suivantes sont impactées :

  • commande (1 enregistrement par commande)
  • venteadr autant d'enregistrements que de produits commandés
  • venteprod autant d'enregistrements que de produits commandés
  • produit pour mettre à jour le stock

La jointure se fait par venteprod.commande=commande.id

Requêtes utiles

  • Sélectionner tous les clients ayant commandé un type d'article, le 7,ici :
select distinct  nom,prenom,entreprise,produit.ref from venteprod,commande,client,produit   where commande.id=venteprod.commande and client.id=commande.client and produit.id=7;
  • Mettre à jour les stocks:
update produit set stock=99999 where id>5;
  • Total de chaque produit commandé :
 select produit.ref,  count( distinct  nom,prenom,entreprise,produit.ref) from venteprod,commande,client,produit   where commande.id=venteprod.commande and client.id=commande.client and produit.id=49;
  • Ensemble des commandes par client
select distinct client.prenom,client.nom,client.entreprise,venteprod.ref from commande,client,venteprod where commande.client=client.id and venteprod.commande=commande.id order by venteprod.ref;