Configuration de l'application


Page principale Table

Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog


Vue générale

ExperShop peut supporter des boutiques multiples: Chaque boutique a son fichier de configuration, qui définit un ensemble de propriétés: comment accéder à la base de données (pilote JDBC, nom d'utilisateur, mot de passe...), unité monétaire, etc...

Un fichier de configuration global définit, pour chaque boutique, le chemin vers son fichier de configuration spécifique.

Fichier de configuration global ExperShop

Ce fichier associe des noms de boutique à des chemins vers des fichiers de configuration : il contient une entrée pour chaque boutique, plus une entrée "default" qui spécifie la boutique par défaut (celle qui sera choisie si ExperShop est appelé sans nom de boutique précis).

Si vous avez une seule boutique, vous pouvez directement utiliser ce fichier de configuration comme celui de la boutique: voir le chapitre suivant pour le format du fichier.

Par défaut, le fichier de configuration s'appelle EShop.cfg sous Unix, EShopWin.cfg sous Windows, et se trouve dans le répertoire des fichiers utilisateurs du serveur Web.

Ces nom et localisation par défaut peuvent être modifiés, en spécifiant des propriétés d'initialisation ("init properties") pour les servlets ExperSHOP:

  • SHOPDIR est le nom du répertoire contenant le fichier de configuration (pas de valeur par défaut).
  • SHOPCONFIG est le nom du fichier de configuration (valeur par défaut: EShop.cfg, EShopWin.cfg sous windows).
Vous pouvez spécifier le chemin complet vers le fichier de configuration dans la variable SHOPCONFIG: dans ce cas, ne donnez pas de valeur à SHOPDIR.

Format de fichier:


default: cheminParDefaut
Boutique1: cheminBoutique1
...
BoutiqueN: cheminBoutiqueN
L'entrée "default" est facultative.

Exemple (Windows):


default: c:\\SurfShop\\surf.cfg
SurfShop: c:\\SurfShop\\surf.cfg
Supermarche: c:\\Supermarche\\super.cfg
Remarque: sous windows, les caractères "\" dans les chemins doivent être dupliqués (sous Unix, un chemin ressemble à ceci: /users/SurfShop/surf.cfg).

Fichier de configuration de boutique

Chaque boutique nécessite un fichier de configuration.

Le fichier de configuration définit les propriétés suivantes :

Numéro de Licence
Propriété Description Valeur par défaut
shop.License Numéro de licence commerciale ExperShop (Facultatif).
Si aucun numéro de licence commerciale n'est fourni, ExperShop ouvre une fenêtre popup contenant une bannière de publicité pour ExperLog (à chaque nouvelle session).
Il n'y a aucune autre limitation ni limite de temps : vous pouvez utiliser gratuitement ExperShop, en continuant à nous faire de la publicité.
Les licenses commerciales ExperShop sont vendues en ligne sur le site web d'ExperLog (http://www.experlog.com).
Aucune
Configuration JDBC
Propriété Description Valeur par défaut
jdbc.Driver La classe du pilote JDBC com.expershop.db.DummyDriver (pas de base de données)
jdbc.Url L'URL JDBC jdbc:expershop:default (pas de base de données)
jdbc.User Le nom d'utilisateur de la base de données chaîne vide
jdbc.Password Le mot de passe de la base de données chaîne vide
jdbc.MaxConn Le nombre max de connexions à la base de données 10
jdbc.MinConn Le nombre min de connexions à la base de données 5
jdbc.Multiplex Le nombre de connexions virtuelles sur la même connexion.
Exemple:
jdbc.MaxConn: 4 jdbc.Multiplex: 2
signifie 8 connexions maximum disponibles pour l'application.
1
jdbc.ReconnectOnError Valeurs possibles: true (vrai) ou false (faux).
Si égal à true (vrai), les connexions à la base de données sont réouvertes à chaque erreur les concernant (erreurs SQL incluses).
false (faux)
jdbc.TxIsolation Note : ce paramètre est rarement utile (auquel cas il est inutile de le spécifier).
Valeurs possibles : NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, SERIALIZABLE.
Indéfini (valeur par défaut du driver JDBC utilisé).
jdbc.cacheRS Garder dans un cache la valeur des colonnes des ResultSet JDBC; valeurs possibles : true (vrai) ou false (faux). Cette option ne doit être utilisée qu'en cas de nécessité, et si vous ne faites pas confiance à votre driver JDBC (certains drivers, en particulier le pont JDBC/ODBC avec certains drivers ODBC, ne permettent pas d'accéder plus d'une fois à une colonne d'un tuple: ce comportement constitue une bogue manifeste, que vous pouvez contourner en mettant jdbc.cacheRS a "true"). false (faux)
jdbc.threadSafe Signale à ExperShop si votre driver JDBC est "thread-safe" ou pas ("thread-safe" signifie que votre driver peut effectuer plusieurs requêtes en parallèle); valeurs possibles: true (vrai) ou false (faux).
Par exemple, le pont JDBC/ODBC avec le driver ODBC Microsoft pour Access n'est pas "thread-safe", alors que le driver JDBC Oracle thin l'est.
N'utilisez cette option que si nécessaire, en raison de son impact négatif sur les performances.
true (vrai)
jdbc.PreOpen Contournement de bug nécessaire avec certaines combinaisons JVM / Driver JDBC. Si cette propriété est égale à "true" (vrai), toute connection JDBC est ouverte puis refermée une fois avant usage. N'utiliser que si nécessaire, l'utilisation de cette propriété pouvant nuire au fonctionnement de certains drivers. false (faux)
jdbc.Cart La classe qui gère le caddie du client com.expershop.shop.ESCart
jdbc.Client La classe qui gère le client com.expershop.base.ESClient
jdbc.ConnectionPool La classe qui gère le pool de connections vers la base de données com.expershop.db.ESConnectionPool
sqlencode.Substitutions Une liste de substitutions à effectuer par la fonction (SqlEncode) : par exemple, les apostrophes doivent être dupliquées dans les requêtes Oracle ("L'avion" devient "L''avion"), ou encore remplacées par "\'" dans les requêtes InstantDB ("L'avion" devient "L\'avion").
La syntaxe de sqlencode.Substitutions est:
c1=s1;c2=s2;...cn=sn (remplacer le caractère c1 par la chaîne s1, le caractère c2 par la chaîne s2, etc...)
Pour Oracle, nous suggérons: \'=\'\';\r=\" \";\n=\" \";
\'=\'\';\r=\" \";\n=\" \";
Configuration Boutique
Propriété Description Valeur par défaut
shop.AdminPassword Le mot de passe de l'administrateur de la boutique admin
shop.RootDir Le répertoire racine de la boutique chaîne vide
shop.HomePage La page d'entrée de la boutique (relative au répertoire racine). EShop.tmpl
shop.Currency L'unité monétaire USD
shop.tax.defaultzone Le nom de zone par défaut pour le calcul de la Taxe sur la Valeur Ajoutée pas de valeur
shop.tax.[zone-name].rate Le taux de la Taxe sur la Valeur Ajoutée pour une zone donnée pas de valeur
shop.tax.[zone-name].taxincluded Spécifie si les prix unitaires des produits incluent les taxes (TTC) ou non (HT); Valeurs possibles: true (vrai) ou false (faux). false (faux): les prix n'incluent pas les taxes (HT).
shop.tax.[zone-name].includeshipping Spécifie si les couts de transport doivent être taxés comme les produits, ou non; Valeurs possibles: true (vrai) ou false (faux). true (vrai): taxer le transport comme les produits.
shop.shippingcost.defaultzone Le nom de zone par défaut pour le calcul des frais de livraison pas de valeur
shop.shippingcost.[zone-name].rate Le taux applicable aux frais de livraison pour une zone donnée pas de valeur
shop.shippingcost.[zone-name].type Le type de frais de livraison pour une zone donnée.
La valeur de "type" peut être égale à:
  • FLAT (les frais sont constants et égaux au taux défini pour la zone)
  • QTY (les frais sont égaux au taux défini pour la zone multiplié par le nombre total d'article dans le panier d'achats)
  • WEIGHT (les frais sont égaux au taux défini pour la zone multiplié par le poids des articles présents dans le panier d'achats)
  • PRICE (les frais sont égaux au taux défini pour la zone multiplié par le prix total hors taxes des articles présents dans le panier d'achats)
pas de valeur
shop.NeedPassword Valeur = true (vrai) ou false (faux): si vrai, les clients devront entrer leur mot de passe au moment de s'identifier, et le mot de passe sera vérifié; si faux, aucune vérification ne sera faite sur les mots de passe client. false
shop.Timeout Le timeout d'inactivité client en secondes 3600
shop.Locale La locale de l'application (format d'affichage international): utilisée pour les formats de nombres, de dates, etc...
La syntaxe de cette propriété est celle des "locales" java: Langue_Pays[_Variant]
Par exemple, fr_FR pour le français, en_US pour l'anglais US.
Aucune (utiliser la "locale" du système)
session.ontimeout Chemin vers un template à activer au timeout session.
Relatif au répertoire racine de l'application.
Aucune
Confirmation de commandes
Propriété Description Valeur par défaut
email.MailHost Nom de host ou adresse IP du serveur de mail Pas de valeur
email.From Adresse mail de la boutique (sera mise dans le champ "From" du message) Pas de valeur
email.ManagerEmail Adresse mail du gérant de la boutique (pour qu'il reçoive par mail les confirmations de commande) Pas de valeur
email.ManagerSubject Sujet des mails de confirmation de commande envoyés au gérant New Order
email.ManagerTemplate Chemin vers un fichier "template" dont le contenu sera expansé (syntaxe DynHtml) pour produire un mail de confirmation de commande envoyé au gérant; Le chemin est relatif au répertoire shop.ESRootDir Pas de valeur
email.CustomerSubject Sujet des mails de confirmation de commande envoyés à l'acheteur Your Order
email.CustomerTemplate Chemin vers un fichier "template" dont le contenu sera expansé (syntaxe DynHtml) pour produire un mail de confirmation de commande envoyé à l'acheteur; Le chemin est relatif au répertoire shop.ESRootDir Pas de valeur
log.Logfile Chemin vers un fichier ASCII qui contiendra un log des commandes (pour tracer toutes les commandes); Le chemin est relatif au répertoire shop.ESRootDir Pas de valeur
log.Template Chemin vers un fichier "template" dont le contenu sera expansé (syntaxe DynHtml) pour produire un log ASCII de la commande; Le chemin est relatif au répertoire shop.ESRootDir Pas de valeur
Configuration du Paiement Sécurisé: voir la documentation correspondante.
Propriété Description Valeur par défaut
shop.KeepPreOrders Valeurs possibles: "true" (vrai: conserver les pré-commandes) ou "false" (faux: effacer les pré-commandes a la fin des sessions).
Certains paiement sécurisés (en particuliers les paiements bancaires) se déroulent de manière asynchrone: ExperShop donne la main au site de la banque, puis la banque prévient ExperShop lorque la transaction est terminée.
Dans ce cas, ExperShop "pré-commande" les articles du panier (la commande est confirmée en état "PREORDER"), et deux stratégies sont possibles:
  • Par défaut, si la banque ne retourne jamais l'état de la transaction, les commandes en état "PREORDER" sont conservées en état "TIMEOUT" lors du timeout session - ce qui peut permettre de filtrer certaines erreurs de transaction (par exemple, en cas d'incident réseau).
  • si "shop.KeepPreOrders" est égal à "false" (faux), les commandes en état "PREORDER" sont supprimées lors du timeout session (voir shop.Timeout).
false (faux): les pré-commandes sont effacées au timeout session.
pay.cych.Url Une URL qui ponte sur le répertoire cgi d'un MCK CyberCash™ (pour le paiement sécurisé CyberCash™). pas de valeur
Datasources
Propriété Description Valeur par défaut
datasource.list Liste des datasources disponibles pour l'application courante, cette liste contient des noms séparés par des virgules. pas de valeur
datasource.[nomDuDatasource].Driver La classe du pilote JDBC pas de valeur
datasource.[nomDuDatasource].Url L'URL JDBC pas de valeur
datasource.[nomDuDatasource].User Le nom de l'utilisateur de la base de données. pas de valeur
datasource.[nomDuDatasource].Password Le mot de passe de la base de données. pas de valeur
datasource.[nomDuDatasource].MaxConn Le nombre max de connexions à la base de données pas de valeur
datasource.[nomDuDatasource].MinConn Le nombre min de connexions à la base de données pas de valeur
datasource.[nomDuDatasource].Multiplex Le nombre de connexions virtuelles sur la même connexion. pas de valeur
datasource.[nomDuDatasource].TxIsolation Voir jdbc.TxIsolation. Paramètre rarement utilisé. pas de valeur
sqlencode.[nomDuDatasource].Substitutions Une liste de substitutions à effectuer par la fonction (SqlEncode) pour le datasource nomDuDatasource : par exemple, les apostrophes doivent être dupliquées dans les requêtes Oracle ("L'avion" devient "L''avion"), ou encore remplacées par "\'" dans les requêtes InstantDB ("L'avion" devient "L\'avion").
La syntaxe de sqlencode.Substitutions est:
c1=s1;c2=s2;...cn=sn (remplacer le caractère c1 par la chaîne s1, le caractère c2 par la chaîne s2, etc...)
Pour Oracle, nous suggérons: \'=\'\';\r=\" \";\n=\" \";
\'=\'\';\r=\" \";\n=\" \";
Divers
Propriété Description Valeur par défaut
trace.level Niveau de trace:

DEBUG
INFO
WARN
ERROR
FATAL

INFO
trace.file fichier de sortie pour les traces, si ce fichier n'est pas positionné, les traces seront loggées sur la sortie error (error_log sous Apache) /tmp/shop.trc
console.applicationoff template d'erreur dans les cas ou l'application rencontre une erreur, ou l'application est arrêtée (équivalent au fichier d'erreur 404). aucun
app.DelegateConfig chemin absolu d'un fichier permettant la sauvegarde d'une configuration après modification via la console d'administration. aucun
app.UploadDir chemin absolu d'un répertoire, utilisé pour calculer le chemin de sauvegarde d'un fichier télécharger. Si cette propriété n'est pas spécifiée, la fonction "upload" est désactivée. aucun

Notes

Sous Windows, si vous spécifiez des chemins qui comportent des caractères "\", dupliquez-les dans le fichier de configuration (exemple: C:\ExperSHOP\Mystore.cfg apparaîtra comme C:\\ExperSHOP\\Mystore.cfg dans le fichier de configuration).

Exemple (Windows):


jdbc.Driver: sun.jdbc.odbc.JdbcOdbcDriver
jdbc.Url: jdbc:odbc:ma_boutique
jdbc.User: jean
jdbc.Password: anouilh
jdbc.MaxConn: 1

shop.Name: MaBoutique
shop.OrderEmail: jean@maboutique.fr
shop.AdminPassword: admin
shop.Currency: EUR
shop.Timeout: 7200
shop.RootDir: C:\\ExperSHOP\\shops\\lite\\ESRootDir