"prestashop"
Tesial devient partenaire professionnel Sylius
Mais qu’est ce que Sylius?
Sylius est une plateforme E-commerce pour les entreprises de taille intermédiaire et les marques qui ont besoin de solutions sur-mesure. Avec une approche moderne dans le développement de vos projets, Sylius permet de faire évoluer votre application digitale dans une direction qui va vous permettre de battre vos concurrents et offrir à vos clients l’expérience qu’ils méritent.
Une solution pérenne, durable et évolutive
Chez Tesial, nous croyons fermement en la pérennité de vos projets. Vous le savez, l’informatique évolue à une vitesse incroyable, et le web n’est pas une exception. Le principal souci que rencontrent développeurs et commerçants quant au CMS e-commerce à utiliser, est que ceux-ci tentent de suivre l’évolution constante des technologies. Mais ceci ne vient pas sans faille: dettes techniques, incompatibilités avec les versions précédentes du logiciel et des ses plugins, etc.
Sylius, lui, est écrit directement sur les bases de Symfony, l’un des plus puissant framework PHP sur le marché. Cela veut dire qu’il démarre sur des bases solides, respecte les normes et conventions et est entièrement testable et testé. De plus, sa politique de rétrocompatibilité garantit que les nouvelles versions de la plateforme ne rendront pas votre site obsolète. Vous ne devez donc plus penser à refaire un site tous les 3 à 5 ans: Sylius est là pour rester et vous accompagner.
Un partenariat pour vous servir
C’est pour toutes ces raisons que nous sommes fiers de faire partie de la famille Sylius et espérons que vous serez les prochains à nous rejoindre dans cette aventure, aux côtés des plus de 2500 marchands qui eux aussi, font confiance à Sylius.
Les nouvelles règles européennes de TVA et PrestaShop
De nouvelles règles TVA pour plus d’équité entre les e-commerçants
Depuis le 1er juillet 2021, les règles TVA ont changé pour les ventes dans l'Union Européenne. Les commerçants réalisant plus de 10 000 EUR de chiffre d'affaires doivent désormais appliquer la TVA du pays de l'acheteur, en fonction de l'adresse de livraison.
Cette mesure s'accompagne heureusement de la mise à disposition du guichet OSS (le Guichet Unique "OSS" est un portail en ligne qui facilite les déclarations et paiements de la TVA intracommunautaire) permettant aux comptables de pouvoir facilement déclarer et récupérer les TVA dans les différents pays.
Contactez votre comptable pour vérifier si vous êtes éligible à ces règles et mettez-les en place rapidement si ce n’est déjà fait.
Une autre nouvelle contrainte, moins connue, interdit toute discrimination aux consommateurs de l'UE, c’est-à-dire que tous les acheteurs doivent acheter les produits au même prix toutes taxes comprises, peu importe le pays et le taux de TVA.
Cette règle convient aux commerçants qui souhaitent, par exemple, afficher des prix ronds TTC identiques à tous leurs clients.
Comment rendre votre e-shop PrestaShop conforme
Une solution permettant de respecter ces contraintes existe au sein de PrestaShop, mais cela peut rapidement devenir complexe. Il "suffit" de définir les taux de taxe de chaque pays, et de créer des prix spécifiques par pays, tenant compte de chaque taux de taxe, pour finalement arriver au prix TTC désiré et identique à tous les clients. Mais la complexité se présente lorsqu’il faut définir des prix spécifiques par groupes clients, des promotions, etc. Les règles se démultiplient alors et cela devient rapidement compliqué à gérer.
Mais pas de panique ! Nous avons trouvé pour vous un module qui permet de re-calculer automatiquement le prix hors taxe des produits en fonction du pays de livraison du client, afin que le prix final TTC soit identique pour tout le monde. Nous l’avons mis en place avec succès chez nos clients. Il vous permet de garder l'utilisation habituelle de PrestaShop, notamment pour la gestion des prix spécifiques.
N’hésitez pas à nous contacter pour obtenir de l’aide quant à sa mise en place (ou d’une autre solution) sur votre site e-commerce.
Sources et plus d’informations :
https://www.retis.be/tva-ecommerce-2021/
https://www.prestashop.com/fr/blog/union-europeenne-tva
https://www.service-public.fr/professionnels-entreprises/vosdroits/F33340
https://ec.europa.eu/taxation_customs/where-tax_fr
https://europa.eu/youreurope/citizens/consumers/unfair-treatment/unfair-pricing/index_fr.htm
https://www.regional-it.be/practice/nouvelles-regles-tva-en-e-commerce-vers-plus-equite/
Mais que contient le cookie PrestaShop ?
En tant que client final, quand vous visitez à nouveau une boutique, certains choix ou certaines actions ne doivent plus être réalisés, PrestaShop vous facilite la vie.
Par exemple, vous ne devez plus vous identifier, vous retrouvez votre panier sauvegardé au préalable, vous ne devez plus choisir la langue de navigation.
Ces informations sont stockées ou retrouvées grâce au contenu du cookie PrestaShop du site de la boutique.
Dans le cadre d'un développement spécifique, nous avons ajouté une variable dans ce cookie, nous avions donc besoin de vérifier si tout se passait correctement.
Comment accéder au contenu de ce cookie en tant que développeur ? Voici une petite class de test PHP permettant d'afficher de façon lisible le contenu du cookie.
<?php include_once('config/config.inc.php'); include_once('config/settings.inc.php'); include_once('classes/Cookie.php'); $cookie = new Cookie('ps'); // echo '<pre>',print_r($context->cookie, true).'</pre>';
PrestaShop utilise deux cookies, un pour le front office et un pour le back office. Pour obtenir le contenu du cookie backoffice, il suffit de remplacer Cookie('ps') par Cookie ('psAdmin')
Voici aussi un exemple de contenu du cookie client pour une de nos boutiques, pour une version 1.5
Cookie Object ( [_content:protected] => Array ( [date_add] => 2019-01-13 22:08:26 [id_lang] => 1 [id_currency] => 1 [id_guest] => 8602 [id_connections] => 9998 [checksum] => 2665575877 ) [_name:protected] => 46d50b4ce9bc921e80127f1faechj7f8 [_expire:protected] => 1455015732 [_domain:protected] => www.mydomain.com [_path:protected] => / [_cipherTool:protected] => Rijndael Object ( [_key:protected] => Ox9afJ9ZBNZJ5LhOXdBI91Dmu18FRtsM [_iv:protected] => ^���R�p����n ) [_modified:protected] => [_allow_writing:protected] => 1 [_salt:protected] => ubMd17m4 [_standalone:protected] => )
Vous désirez en savoir plus ? N'hésitez pas à nous contacter !
Créér ou modifier un template mail dans prestashop
Besoin de particulariser un template mail pour un client ? Voici quelques points que nous avons notés :
le template txt et le template html
: PrestaShop permet d’envoyer en un seul mail deux versions : une en pur texte et une en HTML. Même si la version texte est relativement peu utilisée (uniquement pour les clients mail qui n’acceptent pas l’HTML), sachez que le fichier test_mail.txt est indispensable pour pouvoir utiliser le test_mail.html
ajout d’une image
: si on veut ajouter une image à un mail, on est obligé d’overrider la classe Mail. En effet, une seule image est prévur par défaut dans les templates de mail : le logo. Cette image est disponible comme toutes les autres variables dans le template du mail :
{shop_logo}. Si on veut ajouter d’autres images, il suffit de faire comme pour le logo et ajouter une variable à l’ensemble des variables disponibles. Pour ce qui est de l’override lui-même, cela fera l’objet d’un autre post. Il est à noter que si on utilise d’autres méthodes pour incorporer les images dans le template, on aura plus de clients mail qui n’afficheront pas les images par défaut, rendant l’expérience utilisateur moins agréable.
$template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));
ajouter des variables
: pour ajouter une variable, il suffit d’ajouter une entrée dans un array de données qui est un des paramètres de la fonction Send de Mail. Dans le template du mail, il suffit d’insérer le nom de la clé de l’array entre accolades et PrestaShop
Pour terminer, voici une petite classe de test permettant d’envoyer un mail. Il suffit qu’il y ait deux fichiers (test_mail.txt et test_mail.html) dans le répertoire mails/fr de votre PrestaShop
<?php
require_once(dirname(__FILE__).'/config/config.inc.php');
require_once(dirname(__FILE__).'/init.php');
global $cookie;
$subject = 'Subject of the mail';
$donnees = array(
'{prenomdest}' => 'Sergei' ,
'{nomdest}' => 'Brin' ,
'{texte}' => 'Happy birthday' ,
'{code}' => 'sfdgsf45' ,
'{montant}' => 60 ,
'{validity}' => '13/10/2016' ,
'{texte}' => 'Happy day !!!!!' ,
'{signature}' => 'From me to you' ,
'{nom}' => 'Jobs' ,
'{prenom}' => 'Steve'
);
$destinataire = 'sergei.brin@gmail.com';
Mail::Send('1', 'test_mail', $subject , $donnees, $destinataire, NULL, NULL, NULL, NULL, NULL, 'mails/');
?>
En annexe, voici les deux templates utilisés pour cet exemple, le template HTML :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Vous avez reçu un cadeau !</title>
</head>
<body>
<table style="font-family:Verdana,sans-serif; font-size: 12px; color: #374953; width: 700px;">
<tbody><tr><td colspan=2><a title="{shop_name}" href="{shop_url}"><img style="border: none;" src="{shop_logo}" alt="{shop_name}" /></a></td></tr>
<tr><td width = 400>Cher Prénom</td><td width=20 rowspan=2></td></tr>
<tr><td><p style="color: #00aeef;font-weight: 800;">BIENVENUE !
<p>Vous avez reçu une carte cadeau !</td></tr></tbody></table>
<table style="font-family: Verdana,sans-serif; font-size: 12px; color: #374953; width: 700px;"><tbody><tr>
<td width=20></td>
<td style="background-color: #CEC8C8;" width=200>
<p style="color: #00aeef;font-weight: 800;">VOTRE CARTE CADEAU
<p>Pour:{prenomdest} {nomdest}
<p>Valeur:{montant}
<p>Code:{code}
<p>Validité:{validity} (un an)
<p>Offert par :{prenom} {nom}
</td><td width=200></td></tr></tbody></table>
<table style="font-family: Verdana,sans-serif; font-size: 12px; color: #374953; width: 700px;"><tbody><tr>
<td width=40> </td><td width=40></td>
<td width=540><p style="color: #00aeef;">{texte}</td>
<td width=40></td>
<td width=40> </td></tr>
<tr><td colspan=5><p style="text-align: right;color: #00aeef;padding-right:140px;">{signature}</td></tr>
<tr><td colspan=5><p style="color: #00aeef;font-weight: 800;">COMMENT PROFITER DE VOTRE CARTE CADEAU ?</td></tr></tbody></table>
<table style="font-family: Verdana,sans-serif; font-size: 12px; color: #374953; width: 700px;">
<tbody>
<tr height=10><td width=30><p style="margin: 0px;">1.</p></td>
<td><p style="margin: 0px;">Rendez-vous sur <a href="http://www.monsite.com">www.monsite.com</a> et munissez-vous du code ci-dessus.</td></tr>
<tr height=10><td width=30><p style="margin: 0px;">2.</p></td>
<td><p style="margin: 0px;">Achetez le produit désiré et insérez votre code à l’étape de paiement.</td></tr>
<tr height=10><td width=30><p style="margin: 0px;">3.</p></td>
<td><p style="margin: 0px;">Le montant de la carte sera directement déduit du total de votre commande.</td></tr><tr><td colspan=2><p style="margin: 0px;"> </td></tr></tbody></table>
<table style="background: #CEC8C8; font-family: Verdana,sans-serif; font-size: 12px; color: #374953; width: 700px;"><tbody>
<td colspan=2><p>Notre équipe reste à tout moment à votre disposition sur notre <b>site</b>, via notre <b>FAQ</b> ou tous les jours sur <b>Facebook</b> et <b>Twitter</b> pour vous aider dans la commande de votre photo. N’hésitez donc pas à prendre contact avec notre équipe ; nous serons ravis de vous aider !</td></tr>
<tr><td colspan=2 style="text-align: right;"><p>À bientôt, Toute l’équipe !</td></tr>
<tr style="height: 30px;"><td style="background:#00aeef;font-size: 10px; border-top: 1px solid #D9DADE;" align="center"></td></tr></tbody></table>
</body>
</html>
et le template TEXT :
Cher {prenom}
BIENVENUE
Vous avez reçu une carte cadeau !
VOTRE CARTE CADEAU
Pour:{prenomdest} {nomdest}
Valeur:{montant}
Code:{code}
Validité:{validity} (un an)
Offert par :{prenom} {nom}
{texte}
{signature}
COMMENT PROFITER DE VOTRE CARTE CADEAU ?
1.Rendez-vous sur www.monsite.com et munissez-vous du code ci-dessus.
2.Achetez le produit désiré et insérez votre code à l’étape de paiement.
3.Le montant de la carte sera directement déduit du total de votre commande.
Notre équipe reste à tout moment à votre disposition sur notre site, via notre FAQ ou tous les jours sur Facebook et Twitter pour vous aider dans la commande de votre photo. N’hésitez donc pas à prendre contact ; nous serons ravis de vous aider !
À bientôt, Toute l’équipe !
Comment et pourquoi sécuriser son site PrestaShop ?
Qu'est ce que la sécurisation ?
Lorsqu’on nous demande le développement d’un site qu’il soit d’e-commerce ou pas, nous conseillons vivement de le sécuriser, de l’encrypter. Ou dit autrement d’avoir un petit cadenas vert avec un protocole https au lieu de http. Pourquoi est-ce nécessaire :
Cela permet à l’internaute d’être sûr qu’il est sur le bon site (et éviter le phishing)
Cela permet d’éviter le vol de mots de passetéléchargement
Cela empêche que les données soient lues et/ou modifiées dans la communication
La sécurisation est réalisée par une autorité de certification qui va principalement authentifier le site ainsi que la société ou le particulier responsable, et fournir un certificat permettant d’encrypter toutes les données qui transiterons sur Internet vers et à partir de ce site.
Comment commander un certificat ?
Plusieurs types de certificats sont disponibles, en fonction des besoins :
un simple certificat de base permettant de ne crypter que sa boutique (par exemple https://my_shop.com)
un certificat “wildcard” qui lui permettra de crypter sa boutique, mais aussi d’autres services comme son site vitrine ou son serveur mail (https://my_site.my_shop.com et https://webmail.my_shop.com)
un certificat “multi-URL” qui lui permettra de crypter tout ce qui se trouve derrière tous les noms de domaine qu’il détient
une option possible pour les trois précédentes : voir devant le https en vert un petit encart vert indiquant une entreprise certificative garantissant la qualité du certificat.
Les prix de ces certificats sont croissants selon les 4 cas ci-dessus, mais varient aussi en fonction des services annexes inclus (reconnaissance, assurance, automatisation …) et du niveau de validation effectué par l’autorité de certification avant la délivrance du certificat.
La procédure pour obtenir le certificat débute par la génération d’un CSR (Certificat Signing Request). La manière de réaliser cela dépend des serveurs (Apache, NGinx, IIS …). Cette étape est importante puisque c’est à ce moment qu’on introduit les données relatives à la société et aux domaines à certifier. Ces données se retrouveront dans le certificat (qui sera signé) et qui permettront au surfeur de vérifier l’authenticité du site.
Ces informations envoyées, l’autorité va fournir le certificat, souvent sous la forme d’un petit fichier .cert. Elle fournira aussi la chaine de certificats permettant à tout browser e bien authentifier le certificat final. Cette étape peut prendre plusieurs jours en fonction des données que vous fournirez, ou du degré de vérification que souhaite réaliser l’instance qui délivrera le fameux certificat.
Comment installer son certificat ?
Pour activer le cryptage, vous devez :
paramétrer votre serveur web : pour cela, il faut au minimum que le module SSL soit activé, que le serveur écoute sur le port 443, et qu’un VirtualHost soit configuré pour écouter ce port, avec un lien vers les deux fichiers certificats. Par exemple :
LoadModule ssl_module modules/mod_ssl.so
Listen 443
VirtualHost *:443
ServerName www.example.com
SSLEngine on
SSLCertificateFile "/path/to/www.example.com.cert"
SSLCertificateKeyFile "/path/to/www.example.com.key"
VirtualHost
Notez que nous avons pris ici l’exemple d’un serveur Apache, chaque serveur a sa propre configuration.
paramétrer votre Prestashop : pour cela, rendez-vous dans le menu “Préférences/SEO & URL”, et vérifiez que votr domaine SSL est correctement configuré. Ensuite, rendez-vous dans Préférences -> Paramètres Généraux et dans Activer le SSL cliquez sur :”Cliquez ici pour utiliser le protocole HTTPS avant d’activer le mode SSL.” Une page s’ouvrira avec votre site en HTTPS. Retournez dans Préférences -> Paramètres Généraux et mettre sur OUI : “Activer le SSL” et “Forcer l’utilisation de SSL pour toutes les pages”
Si vous aviez déjà un bon positionnement SEO avant d’activer le SSL, n’oubliez pas de “créer des 301” qui redirigent chacune de vos pages en HTTP vers l’identique en HTTPS.
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
Ce code est spécifique à Apache, on peut retrouver dans cet article les codes pour les autres serveurs.
Notes complémentaires
Pour un poste développeur en local, vous avez la possibilité de vous créer un certificat autosigné qui vous permettra de tester la configuration, la seule différence étant que vous aurez dans la barre de votre navigateur un petit cadenas barré en rouge, car votre certificat n’est pas reconnu par une autorité certificative.
Pour clôturer ce POST, mentionnons l’initiative LetsEncrypt qui fournit des certificats gratuitement et qui a le vent en poupe. Tout est réalisé par des API’, c’est donc plutôt à destination des techniciens, mais cette solution préfigure le futur de la sécurisation des sites en SSL. OVH a d’ailleurs déjà mis ce qu’il fallait en place comme automatisation pour obtenir des certificats gratuits pour tous ses serveurs mutualisés.