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
jdbc.Url L'URL JDBC jdbc:expershop:default
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 1
jdbc.MinConn Le nombre min de connexions à la base de données 1
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)
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
app.RootDir Le répertoire racine de l'application chaîne vide
app.HomePage La page d'entrée de l'application (relative au répertoire racine). EShop.tmpl
app.MaxClients Le nombre maximal de sessions ouvertes pour cette application. Infini.
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)
  • WEIGHT_TABLE (les frais sont égaux au taux défini pour la zone - stocké dans la base de données - 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.shippingcost.[zone-name].weightcolumn Nom de la colonne de la table EProduct qui contient le poids du produit à utiliser pour cette zone (valable pour les types WEIGHT et WEIGHT_TABLE). Weight
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
app.Timeout Le timeout d'inactivité client en secondes 3600
app.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.MailPort Port du serveur de mail 25
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 app.RootDir 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 app.RootDir 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 app.RootDir 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 app.RootDir 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 app.Timeout).
true (vrai): les pré-commandes ne sont pas effacées au timeout session.
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].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) aucune
contenttype.list Liste (séparé par des virgules) des alias de ContentType autorisés. Chaque alias sera associé à un type MIME (voir ci-dessous les propriétés contenttype.[typename].value), et pourra être utilisé comme valeur pour le paramètre ContentType de la servlet ExperShop.
Exemple: contenttype.list: xml,jpeg
Pas de valeur
contenttype.[nom_de_type].value Définit le type MIME associéeacute; à chaque ialias de ContentType déclaré par contenttype.list ([nom_de_type] doit être remplacé par le nom correspondant de la liste d'alias).
Exemple: contenttype.xml.value: text/xml
Pas de valeur
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). Pas de valeur
app.DelegateConfig chemin absolu d'un fichier permettant la sauvegarde d'une configuration après modification via la console d'administration. Pas de valeur
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. Pas de valeur
urlencode.charset Jeu de caractères utilisé pour l'URL-encodage. La valeur par défaut est la plus adaptée en Europe de l'ouest, dans d'autres zones UTF-8 sera préférable. ISO-8859-1

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
app.Timeout: 7200
app.RootDir: C:\\ExperSHOP\\shops\\lite\\ESRootDir