esdoc/ 0040755 0000764 0000144 00000000000 07377221726 011534 5 ustar gibello users esdoc/CVS/ 0040755 0000764 0000144 00000000000 07377221726 012167 5 ustar gibello users esdoc/CVS/Root 0100644 0000764 0000144 00000000031 07377221632 013020 0 ustar gibello users euro:/home/cvs/ExperSHOP esdoc/CVS/Repository 0100644 0000764 0000144 00000000020 07377221632 014252 0 ustar gibello users ExperSHOP/esdoc esdoc/CVS/Entries 0100644 0000764 0000144 00000000131 07377221726 013513 0 ustar gibello users /index.html/1.1.2.1/Thu Dec 14 07:29:46 2000//Tv2beta2 D/FR//// D/US//// D/image-doc//// esdoc/CVS/Tag 0100644 0000764 0000144 00000000011 07377221632 012606 0 ustar gibello users Tv2beta2 esdoc/FR/ 0040755 0000764 0000144 00000000000 07425315751 012037 5 ustar gibello users esdoc/FR/CVS/ 0040755 0000764 0000144 00000000000 07425315752 012473 5 ustar gibello users esdoc/FR/CVS/Root 0100644 0000764 0000144 00000000031 07377221632 013327 0 ustar gibello users euro:/home/cvs/ExperSHOP esdoc/FR/CVS/Repository 0100644 0000764 0000144 00000000023 07377221632 014564 0 ustar gibello users ExperSHOP/esdoc/FR esdoc/FR/CVS/Entries 0100644 0000764 0000144 00000002365 07425315752 014032 0 ustar gibello users /api.html/1.1.2.1/Thu Dec 14 07:31:07 2000//Tv2beta2 /changes.html/1.1.2.1.2.4/Wed Jun 20 02:12:22 2001//Tv2beta2 /doc.html/1.1.2.1/Thu Dec 14 07:31:07 2000//Tv2beta2 /download.html/1.1.2.1/Thu Dec 14 07:31:07 2000//Tv2beta2 /eet_dates.html/1.1.2.2.2.1/Fri Nov 16 07:20:20 2001//Tv2beta2 /index.html/1.1.2.1/Thu Dec 14 07:31:08 2000//Tv2beta2 /pricing.html/1.1.2.1/Thu Dec 14 07:31:08 2000//Tv2beta2 /status.html/1.1.2.1/Thu Dec 14 07:31:08 2000//Tv2beta2 /t_actions.html/1.1.2.2.2.2/Fri Nov 16 07:51:57 2001//Tv2beta2 /t_admactions.html/1.1.2.1/Thu Mar 15 07:45:01 2001//Tv2beta2 /t_admin.html/1.1.2.2/Thu Mar 15 07:45:57 2001//Tv2beta2 /t_cart.html/1.1.2.1.2.1/Fri Nov 16 07:51:57 2001//Tv2beta2 /t_config.html/1.1.2.3.2.1/Fri May 18 07:42:31 2001//Tv2beta2 /t_console.html/1.1.2.3/Tue Jun 26 03:16:13 2001//Tv2beta2 /t_database.html/1.1.2.2/Wed Feb 28 02:32:11 2001//Tv2beta2 /t_dynhtml.html/1.1.2.1/Thu Dec 14 07:31:09 2000//Tv2beta2 /t_overview.html/1.1.2.2/Thu Mar 15 07:45:57 2001//Tv2beta2 /t_servlets.html/1.1.2.2/Thu Mar 15 07:45:57 2001//Tv2beta2 D/Appservers//// D/Pay//// /t_quickstart.html/1.1.2.2.2.5/Thu Dec 20 18:00:39 2001//Tv2beta2 /toc.html/1.1.2.2.2.3/Mon Jan 28 18:33:13 2002//Tv2beta2 /dynhtml.html/1.1.2.2.2.6/Mon Jan 28 18:43:53 2002//Tv2beta2 esdoc/FR/CVS/Tag 0100644 0000764 0000144 00000000011 07377221633 013116 0 ustar gibello users Tv2beta2 esdoc/FR/Appservers/ 0040755 0000764 0000144 00000000000 07410423450 014157 5 ustar gibello users esdoc/FR/Appservers/CVS/ 0040755 0000764 0000144 00000000000 07410423722 014614 5 ustar gibello users esdoc/FR/Appservers/CVS/Root 0100644 0000764 0000144 00000000031 07377221633 015462 0 ustar gibello users euro:/home/cvs/ExperSHOP esdoc/FR/Appservers/CVS/Repository 0100644 0000764 0000144 00000000036 07377221633 016723 0 ustar gibello users ExperSHOP/esdoc/FR/Appservers esdoc/FR/Appservers/CVS/Entries 0100644 0000764 0000144 00000000364 07410423722 016150 0 ustar gibello users /weblogic51.html/1.1.2.3/Tue Dec 18 17:43:38 2001//Tv2beta2 /tomcat32.html/1.1.2.1.2.3/Thu Dec 20 10:41:04 2001//Tv2beta2 /tomcat33.html/1.1.2.1/Thu Dec 20 18:00:08 2001//Tv2beta2 /enhydra3.html/1.1.2.1.2.1/Thu Dec 20 10:43:16 2001//Tv2beta2 D esdoc/FR/Appservers/CVS/Tag 0100644 0000764 0000144 00000000011 07377221633 015250 0 ustar gibello users Tv2beta2 esdoc/FR/Appservers/weblogic51.html 0100644 0000764 0000144 00000003167 07407700112 017011 0 ustar gibello users
Les principales étapes d'une configuration Weblogic sont :
weblogic.httpd.servlet.classpath=C:/weblogic/myserver/servletclasses;c:/ExperSHOP/lib/expershop.jar;c:/ExperSHOP/InstantDB/idb.jarEnregistrer les servlets ExperSHOP, avec leurs paramètres d'initialisation; Exemple, sous Windows:
weblogic.httpd.register.com.expershop.lite.ExperSHOP=com.expershop.lite.ExperSHOP weblogic.httpd.initArgs.com.expershop.lite.ExperSHOP=SHOPCONFIG=c:\\ExperSHOP\\EShopWin.cfg weblogic.httpd.register.com.expershop.lite.ESAdminServlet=com.expershop.lite.ESAdminServlet weblogic.httpd.initArgs.com.expershop.lite.ESAdminServlet=SHOPCONFIG=c:\\ExperSHOP\\EShopWin.cfg
http://votreserveur:7001/com.expershop.lite.ExperSHOP http://votreserveur:7001/com.expershop.lite.ESAdminServletesdoc/FR/Appservers/enhydra3.html 0100644 0000764 0000144 00000036250 07410340304 016561 0 ustar gibello users
#!/bin/sh export CLASSPATH=/usr/local/ExperSHOP/lib/expershop.jar:/usr/local/ExperSHOP/InstantDB/idb.jar /usr/local/enhydra3.1/bin/multiserver ## exemple plus complexe - avec variable d'environnement supplementaire ## export CMKEYDIR=/usr/local/CYBERMUT ## /usr/local/enhydra3.1/bin/multiserver -java-arg -Djava.library.path=/usr/local/ExperSHOP/etc/cmut/linux-intel
# Enhydra Multiserver Config File # ================================== # This file contains the configuration options for the # Enhydra Multiserver. Typically it is manipulated # through the Multiserver Admin application, however, # power users may wish to edit it by hand. # # Notes: # * The Multiserver only reads this file on startup. # It is thus necessary to stop and restart the server if # changes are made by hand. # * The order of the parameters in this file is not significant. # * Quotes are not required to delimit strings but are advised. # * Array parameters are specified as a comma separated list. # The parameter name is identified as an array with a "[]" # suffix. # # Server Section ----------------------------------------------------- # ============== # These options configure server-wide attributes. # # Server.ConfDir # -------------- # This is where the application's config files are stored. # Each Enhydra application has a configuration # file that must be placed in this directory in order for the # application to be visible by the Multiserver and the Multiserver # admin application. # # Server.LogFile # -------------- # This is the file where the server log is written. # # Server.LogToFile[] # ------------------ # This is a comma separated list of message types to send to the log # file specified in server.logFile. # # Server.LogToStderr[] # -------------------- # This is a comma separated list of message types to send to standard error. # # Possible logger levels: # ----------------------- # These levels will be familiar to anyone that has used the UNIX # syslog functionality: # # EMERGENCY # Panic condition. # ALERT # A condition that should be corrected immediately, such as # database corruption. # CRITICAL # Critical conditions such as had device errors. # ERROR # General errors that are not usually fatal, but must be # resolved. # WARNING # Warning condition that may need attention, although the # need is not immediate. # NOTICE # Conditions that are not error conditions, but may require # special handling such as infrequent conditions. # INFO # General informational conditions, knowledge of which will # help to keep the server in good order. # DEBUG # Messages that contain information normally of use only when # debugging an application. # CLASSLOAD # Information about the loading of application classes. Very # useful debugging class path problems. # REQUEST # The StandardLoggingFilter logs hits to this facility if # this is specified (normally it writes to it's own file). # XMLC # Information about auto-compiling XMLC pages. # XMLC_DEBUG # Debug information about auto-compiling XMLC pages. # # Server.ConfDir = "/usr/local/enhydra3.1/apps" Server.LogFile = "/usr/local/enhydra3.1/logs/multiserver.log" Server.LogToFile[] = EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, INFO Server.LogToStderr[] = EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, INFO # # The above setting is for verbose output. When running as a daemon # process you may want to print out only emergencies, for example: # Server.LogToStderr[] = EMERGENCY # # Enhydra Application Section ----------------------------------------- # ========================== # Each Enhydra application is added to the Multiserver with the # following syntax. Note that multiple applications can be # defined, the only restriction is that the [APPLICATION_ID] must # be unique. # # Application.[APPLICATION_ID].ConfFile # ------------------------------------- # This is set to "filename.conf", which must exist in the directory # defined by "Server.ConfDir". # # Application.[APPLICATION_ID].Description # ---------------------------------------- # A description of the application. This is visible in the # management console. # # Application.[APPLICATION_ID].Running = yes | no # ----------------------------------------------- # This is basically the same as the start/stop buttons in the admin # app. If the server has running = no, then it will not be instantiated, # until the user of the admin app clicks on the "start" button. # Application.MultiserverAdmin.ConfFile = multiserverAdmin.conf Application.MultiserverAdmin.Description = "Multiserver Management Console." Application.MultiserverAdmin.Running = yes # Servlet Section ---------------------------------------------------- # =============== # The Multiserver is able to run standard servlets in addition to # Enhydra applications. The following syntax is # used to define a servlet. Note that multiple servlets # can be defined, the only restriction is that the [SERVLET_ID] # must be unique. # # Each servlet is defined with: # # Servlet.[SERVLET_ID].ClassName = entryClass # Servlet.[SERVLET_ID].DocRoot = Document root for servlet. # Servlet.[SERVLET_ID].Description = "A description of servlet" # Servlet.[SERVLET_ID].Running = yes | no # # where the ".classname" parameter defines the class with the # service() method and ".description" defines a description used # by the admin tool. The ".docRoot" is the full path to the # directory used as the document root for this servlet and # ".running" indicated whether to automatically start the # servlet when the Multiserver is started. # # Optionally a servlet can be further specified with the following # options: # # Servlet.[SERVLET_ID].InitArgs # ----------------------------- # This is a collection of name-value pairs that are passed to the # servlet and initial arguments. Refer to the servlet documentation # for more information. # For example: # Servlet.[SERVLET_ID].InitArgs.LogFile = /tmp/log # Servlet.[SERVLET_ID].InitArgs.Max = 256 # Servlet.[SERVLET_ID].InitArgs.Names[] = "Joe Bob", "Jane Bee" # # Servlet.[SERVLET_ID].ClassPath[] # -------------------------------- # This is set to a comma-separated list of classpath elements. The # class loader will be extended with these paths so that the # servlet can successfully load any required classes. # # Application.[APPLICATION_ID].Running # ------------------------------------ # This is basically the same as the start/stop buttons in the admin # app. If the server has running = no, then it will not be instantiated, # until the user of the admin app clicks on the "start" button. # # ExperShop main servlet Servlet.ExperSHOP.ClassName = com.expershop.lite.ExperSHOP Servlet.ExperSHOP.DocRoot = /home/httpd/html Servlet.ExperSHOP.Description = "ExperSHOP servlet." Servlet.ExperSHOP.ClassPath[] = /usr/local/ExperSHOP/lib/expershop.jar,/usr/local/ExperSHOP/InstantDB/idb.jar Servlet.ExperSHOP.Running = yes Servlet.ExperSHOP.InitArgs.SHOPCONFIG = /usr/local/ExperSHOP/EShop.cfg # ExperShop admin servlet Servlet.ESAdminServlet.ClassName = com.expershop.lite.ESAdminServlet Servlet.ESAdminServlet.DocRoot = /tmp Servlet.ESAdminServlet.Description = "ESAdminServlet servlet." Servlet.ESAdminServlet.ClassPath[] = /usr/local/ExperSHOP/lib/expershop.jar,/usr/local/ExperSHOP/InstantDB/idb.jar Servlet.ESAdminServlet.Running = yes Servlet.ESAdminServlet.InitArgs.SHOPCONFIG = /usr/local/ExperSHOP/EShop.cfg # Document root for all static HTML content Servlet.HTML.ClassName = org.enhydra.servlet.servlets.FileServerServlet Servlet.HTML.DocRoot = "/home/httpd/html" Servlet.HTML.Running = yes # Pour le paiement securise CyberMut # Ceci est un exemple: inutile si vous n'utilisez pas Cybermut Servlet.CyberMut.ClassName = com.expershop.pay.cmut.ESCgi2Servlet Servlet.CyberMut.DocRoot = /home/httpd/html Servlet.CyberMut.Description = "CyberMut return servlet." Servlet.CyberMut.ClassPath[] = /usr/local/ExperSHOP/lib/expershop.jar,/usr/local/ExperSHOP/InstantDB/idb.jar Servlet.CyberMut.Running = yes Servlet.CyberMut.InitArgs.SHOPCONFIG = /usr/local/ExperSHOP/EShop.cfg # Connection Methods Section ----------------------------------------- # ========================== # This section defines all the possible ways that the Multiserver will # accept requests. Any number of connection methods are allowable # so long as the [CONNECTION_ID] is unique. The [CONNECTION_ID] # is used when associated with an application/servlet by defining # a channel. # # Connection.[CONNECTION_ID].Type # ------------------------------- # The connection type is set to any supported connection method. # Possible types are: # # "http" # This instructs the Multiserver to directly listen for http requests on the # specified port. The port is specified with: # Connection.[CONNECTION_ID].Port = [port] # The number of handler threads my be specified with: # Connection.[CONNECTION_ID].NumThreads = [num] (optional) # The number of socket requests to queue (after accept, before processing) # may be specified with: # Connection.[CONNECTION_ID].QueueSize = [num] (optional) # The idle timeout period for a client connection, in seconds. This is the # amount of time to block without activity. # Connection.[CONNECTION_ID].ClientTimeout = [num] (optional) # The idle timeout period for a handler thread, in seconds. Shorter timeouts # minimize the number of threads (memory) while slowing response time for # bursts of activity. # Connection.[CONNECTION_ID].ThreadTimeout = [num] (optional) # # "https" # This instructs the Multiserver to directly listen for secure-http requests # on the specified port. The port is specified with: # Connection.[CONNECTION_ID].Port = [port] # The number of handler threads my be specified with: # Connection.[CONNECTION_ID].NumThreads = [num] (optional) # The number of socket requests to queue (after accept, before processing) # may be specified with: # Connection.[CONNECTION_ID].QueueSize = [num] (optional) # Connection.HttpConn8001.Type = http Connection.HttpConn8001.Port = 8001 Connection.HttpConn8002.Type = http Connection.HttpConn8002.Port = 8002 # Channel Section ---------------------------------------------------- # =============== # This section defines how applications/servlets are connected with # connection methods. Each channel entry represents an entry point # to an application than can be individually controlled. Note that # like other IDs, each [CHANNEL_ID] must by unique. # # Each channel is defined with: # # Channel.[CONNECTION_ID].[CHANNEL_ID].Servlet = [APPLICATION_ID] # or # Channel.[CONNECTION_ID].[CHANNEL_ID].Servlet = [SERVLET_ID] # # and # Channel.[CONNECTION_ID].[CHANNEL_ID].Url = [url prefix] # and # Channel.[CONNECTION_ID].[CHANNEL_ID].Filters = [FILTER_ID],[FILTER_ID] # and # Channel.[CONNECTION_ID].[CHANNEL_ID].Enabled = yes | no # # # where the ".Servlet" parameter defines the application/servlet # to connect to and the [CONNECTION_ID].[CHANNEL_ID] path defines # the connection method to connect to. # The Url should generally begin and end with a '/'. # The ".Filters" is optional and defines a # list of [FILTER_ID] that a channel is subject to. Filters are # executed in the order that they are defined. The most common use # of a filter is for logging purposes. In general, filters are an # advanced topic that is discussed in the developers guide. Channel.HttpConn8001.AdminChannel.Servlet = MultiserverAdmin Channel.HttpConn8001.AdminChannel.Url = / Channel.HttpConn8001.AdminChannel.Enabled = yes Channel.HttpConn8002.ExperSHOPChannel.Servlet = ExperSHOP Channel.HttpConn8002.ExperSHOPChannel.Url = /servlet/com.expershop.lite.ExperSHOP Channel.HttpConn8002.ExperSHOPChannel.Filters[] = StandardLogger Channel.HttpConn8002.ExperSHOPChannel.Enabled = yes Channel.HttpConn8002.ESAdminServletChannel.Servlet = ESAdminServlet Channel.HttpConn8002.ESAdminServletChannel.Url = /servlet/com.expershop.lite.ESAdminServlet Channel.HttpConn8002.ESAdminServletChannel.Filters[] = StandardLogger Channel.HttpConn8002.ESAdminServletChannel.Enabled = yes Channel.HttpConn8002.HTML.Enabled = yes Channel.HttpConn8002.HTML.Servlet = HTML Channel.HttpConn8002.HTML.Url = / # For CyberMut secure payment return servlet # This is just an example - forget this if not using CyberMut Channel.HttpConn8002.CyberMutChannel.Servlet = CyberMut Channel.HttpConn8002.CyberMutChannel.Url = /servlet/com.expershop.pay.cmut.ESCgi2Servlet Channel.HttpConn8002.CyberMutChannel.Filters[] = StandardLogger Channel.HttpConn8002.CyberMutChannel.Enabled = yes # Filter Section ----------------------------------------------------- # ============== # This section is allows filters to be defined and subsequently used # on a channel declaration. Note that each [FILTER_ID] must be unique. # # WARNING: It is the responsability of the administrator to ensure that # the CLASPATH is set up prior to running the Multiserver such that the filter # (and any classes it needs) will be found. The location of the filter # class on disk is not specified. # # Each filter is defined with: # # Filter.[FILTER_ID].ClassName = entryClass # Filter.[FILTER_ID].Description = "A description of filter" # # where the ".classname" parameter defines the class with the # service() method and ".description" defines a description used # by the admin tool. # # Optionally a filter can be further specified with the following option: # # Filter.[FILTER_ID].InitArgs # ----------------------- # This is a collection of name-value pairs that are passed to the # servlet and initial arguments. Refer to the developers guide # for more information. # For example: # Filter.[FILTER_ID].InitArgs.configFile = /tmp/filter_config # Filter.[FILTER_ID].InitArgs.myParam = myValue # # # This filter is used to log the requests as they are made to the server # (aka "hits"). If the key REQUEST is present in Server.LogToFile or # Server.LogToStderr (above), then a simple summary of the request and # response will be sent to the standard logging facility. This kind of # logging is usefull for quick debugging of an application. If the key # REQUEST is not present, then data is not sent to the standard logging # facility. # If the initial argument "logFile" (optional, below) is set, then this filter # will append data about the requests to the specified file, in a standard # format that tools like Web Analyzer can read. If no logFile is specified, # then data is not written to the file. # This filter is applied to individual channels, so only the channels # that need logging pay the overhead. # Filter.StandardLogger.ClassName = org.enhydra.servlet.filter.StandardLoggingFilter Filter.StandardLogger.Description = "Standard Enhydra Logging." Filter.StandardLogger.InitArgs.logFile = "/usr/local/enhydra3.1/logs/access.log"esdoc/FR/Appservers/tomcat32.html 0100644 0000764 0000144 00000005650 07410340100 016472 0 ustar gibello users
<servlet> <servlet-name> com.expershop.lite.ExperSHOP </servlet-name> <servlet-class> com.expershop.lite.ExperSHOP </servlet-class> <init-param> <param-name>SHOPCONFIG</param-name> <param-value>/usr/local/ExperSHOP/EShop.cfg</param-value> </init-param> <load-on-startup> -2147483646 </load-on-startup> </servlet>
<Context path="/expershop" docBase="webapps/expershop" crossContext="false" debug="0" reloadable="true"/>
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name> com.expershop.lite.ExperSHOP </servlet-name> <servlet-class> com.expershop.lite.ExperSHOP </servlet-class> <init-param> <param-name>SHOPCONFIG</param-name> <param-value>/usr/local/ExperSHOP/EShop.cfg</param-value> </init-param> <load-on-startup> -2147483646 </load-on-startup> </servlet> </web-app>esdoc/FR/Appservers/tomcat33.html 0100644 0000764 0000144 00000004211 07410423450 016475 0 ustar gibello users
c:\\ExperSHOP\\EShopWin.cfgExemple de fichier web.xml :
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name> com.expershop.lite.ExperSHOP </servlet-name> <servlet-class> com.expershop.lite.ExperSHOP </servlet-class> <init-param> <param-name>SHOPCONFIG</param-name> <param-value>/usr/local/ExperSHOP/EShop.cfg</param-value> </init-param> <load-on-startup> 1 </load-on-startup> </servlet> </web-app>
http://yourhost:8080/servlet/com.expershop.lite.ExperSHOP http://yourhost:8080/servlet/com.expershop.lite.ESAdminServletesdoc/FR/api.html 0100644 0000764 0000144 00000004321 07216073473 013473 0 ustar gibello users
ExperSHOP - Java APIHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewExperSHOP proposes a set of Java classes so the user can easily extend ExperShop's behaviour.This includes :
|
ExperSHOP - ChangesHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support ExperShop version: 2.0 (beta 2). Version date: June 30, 2001. List of changes- Bug fix in the connection pooling - Fixed some locks in the trace configuration - Added jar files from Sun. It's no need to download these packages from the web site from Sun. List of new functionalities- Added multiplexing in the connection pooling. - Added the administration console to administrate the ExperSHOP applications. Now, no need to restart your server when you change the configuration of an application. The administration console help you to manage properties dynamically. Just a simple example, you want to increase the number of jdbc connections, now with the console, you have two ways to do the work. You can increase the number of physical connections, or increase the multiplex property, in this case, many connections to the clients will be managed by the same physical connection. - Added an upload servlet. You give the source file, the destination directory, and the return URL. - Added new payment modules: Lebonkado, PayBox,and new version of SIPS payment. - Added a Switch/Case element for the DynHtml language. ExperShop version: 2.0 (beta 1). Version date: Mars 1, 2001. List of new functionalities- ExperSHOP uses now the new JDBC service from Enhydra to manage the JDBC connections to the database. Now, the administrator can manage the pool of connections. - A new tracing system is now in place, more precise (see the documentation). - This new version integrates some bugs fixing. - Added a new DynHtml tag : $EXITLOOP, to exit from a loop - Added new behavior for $LOOPONRESULTS tag, you can now loop on a tuple and indicate the begin index and the end index: $LoopOnResults nomRequete nomTuple[(i,j)] ExperShop version: 1.1. Version date: November 27, 2000.
List of changesYou are concerned by these changes if you are using an old ExperSHOP version (download before November 27, 2000).Some bugs were fixed, mainly concerning high-traffic sites: - A memory leak when releasing user sessions. - A file descriptor that was sometimes not closed. These bugs had little impact on low and medium-traffic sites, but it is recommended to migrate to the new version. If you have an old expershop, you may have some minor problems to migrate: In case of trouble during the migration phase, e-mail us. List of new functionalitiesFor the french and european users, the ATOS sips secure payment is now supported (but not yet documented! this will be done soon, contact us if you don't find the doc on our site). And also, the DynHtml syntax improvements I described above can be helpful... |
ExperShop LiteTable des Matières Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Tout d'abord, ExperShop est un produit Français, développé par ExperLog à Grenoble: ceci pour répondre à tous ceux qui me disent chaque jour "encore un truc Américain, hein ?" Cette documentation a pour but de vous donner tous les éléments nécessaires pour comprendre le fonctionnement d'ExperShop Lite, et l'utiliser pour créer votre propre application en ligne. Le menu dans la frame de gauche vous guidera pas à pas dans votre découverte du produit. ExperShop Lite est utilisé par des entreprises de toutes tailles, de la petite boutique hébergée par un ISP local à l'application d'entreprise interfacée avec le système d'information.
|
ExperSHOP Lite - TéléchargementPour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Enregistrez vousEntrez vos coordonnées avant de télécharger ExperSHOP Lite ; Tous les champs sont obligatoires.ExperSHOP gardera ces informations confidentielles.
|
ExperSHOP - DynHtmlPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Vue généraleDynHtml est une technologie permettant d'inclure des données provenant d'une base de données, ou d'autres données dynamiques, dans des pages HTML.Les pages DynHtml sont interprétées à la volée par ExperSHOP, et les résultats des requêtes à la base de données sont inclus dans le texte HTML (ainsi que d'autres informations dynamiques comme par exemple des valeurs de paramètres HTTP). Les fichiers sources DynHtml sont des fichiers ASCII, qui mélangent du HTML avec des tags spécifiques DynHtml: ceux-ci sont interprétés à l'exécution, afin d'afficher de l'information dynamique.
Comment écrire une page DynHtmlVoici un exemple de page DynHtml:
<html><body> <b>Liste des Clients</b><p> $DefineSql ListeClients SELECT Prenom, Nom FROM Client $IfPresent AgeMin $AppendSql ListeClients WHERE Age>AgeMin $Endif $ExecSql ListeClients $IfNoResult ListeClients Il n'y a pas de client. $Else $LoopOnResults ListeClients client Nom du client: $client:Nom$, $client:Prenom$<br> $EndLoop $EndIf </body></html> Les valeurs
de "Nom" et "Prenom" retournées dans le résultat de la requête
apparaîtront dans le navigateur web, à la place de $client:Nom$
et $client:Prenom$; Liste des Clients Nom du client:
Durand, Paul Remarquez l'instruction "$IfPresent... $Endif": si la page DynHtml est appelée avec un paramètre HTTP nommé "AgeMin", une clause WHERE est ajoutée à la requête SQL.
Comment s'interprète une page DynHtmlLes pages DynHtml sont interprétées par les servlets ExperSHOP Lite:l'utilisateur n'a rien de particulier à faire.
Instructions DynHtml$# $Action $Add $Append $AppendSql $Assign $Case $CheckNumber $ClearError $Cookie $Debug $DefVar $Div $Else $EndCase $Endif $EndLoop $EndSwitch $ExecSql $Exit $ExitLoop $ExpandFile $IfEe $If $IfEqual $IfError $IfFilePresent $IfGe $IfGt $IfLe $IfLt $IfNoResult $IfPresent $Include $LoopOnEnum $LoopOnFiles $LoopOnResults $Mul $SetCookie $Sub $Switch $System Variables et paramètresVariables, paramètres, colonnes dans la base de donnée, etc... sont désignés par un nom de variable: pour afficher la valeur correspondant à un nom de variable, mettez un caractère "$" de chaque côté du nom de variable:$nom-de-variable$
Il est possible d'utiliser des formats d'affichage, par exemple pour
les valeurs numériques:
le format doit être mis entre parenthèses juste après
le caractère "$" qui délimite la variable (par exemple,
Formats numériques:
Tous formats supportés par la classe java java.text.DecimalFormat. $(.00)Prix$ $(##.##)Total$ Notez que les formats numériques n'ont pas pour but d'arrondir des nombres: leur effet lorsqu'il sont utilisés dans ce but n'est pas garanti, en particulier les formats (0) et (00) peuvent réserver des surprises si on les applique à des réels.
Si vous avez besoin d'arrondis, utilisez les formats (Round), (Ceil) ou
(Floor).
Formats de dates :
Autres formats:
Variables DynHtml prédéfinies$COOKIE$
Le numéro de session client ExperShop, sous forme de paramètre HTTP, à
inclure dans les URL ExperSHOP (dans les liens HTTP utilisant le tag HTML
<A HREF=...> tag). Voir aussi: instruction $Cookie, pour les URLs invoquées via des "FORM" HTML. $\$
Affiche un caractère "$".
Data sets et data objectsUn "data object" est equivalent à un n-uplet de base de données, avec des attributs équivalents aux colonnes du n-uplet.
Un "data set" est un ensemble de "data objects": par exemple, le résultat
d'une requête à une base de données, ou le panier
d'achats d'un client vu comme un ensemble d'articles. Il y a deux types de "data sets": les "data sets" prédéfinis d'ExperSHOP (comme le panier d'achats ou le fichier de configuration de la boutique), et les "data sets" transitoires générés à l'exécution (comme les résultats de requêtes à une base de données, ou les énumérations).
Par exemple, ExperShop fournit un "data set" prédéfini appelé
Le panier d'achats, "ShoppingCart", est aussi un "data set": vous pouvez
boucler sur les articles du panier, pour afficher leurs caractéristiques
(chaque article étant un "data object").
Les requêtes SQL sont elles aussi des "data sets", dès leur
exécution:
Un paramètre est une variable vue comme un paramètre HTTP: en
particulier, il sera transmis aux actions si $Action est utilisé.
(par contre, il ne sera pas transmis si la page courante est soumise en
tant que "form" HTML: c'est un paramètre de la page courante).
Pour ajouter du texte à la fin d'une variable ou d'un paramètre,
utilisez l'instruction
Une variable peut être calculée : $DefVar jour (24 * 60 * 60) EnumérationsUne énumération est une liste de valeurs separées par des virgules, ou une série continue d'entiers, ou les deux; par exemple, vous pouvez définir des énumérations comme ceci:$DefVar mois Jan,Fev,Mar,Avr,Mai,Jun,Jul,Sep,Oct,Nov,Dec $DefVar jourssemaine 1->7 Le premier exemple liste les mois, le second est équivalent à 1,2,3,4,5,6,7. La combinaison des deux syntaxes est valide: par exemple, $DefVar intervalles 1->5,10->20
Il est possible de boucler sur les valeurs d'une énumération, en
utilisant l'instruction $LoopOnEnum mois mm Le mois courant est: $mm:value$ $EndLoop $LoopOnEnum jourssemaine jj Le jour courant est: $jj:value$ $EndLoopEn fait, une énumération est un "data set", dont chaque valeur "data object" comporte une seule colonne, nommée "value" (c'est pourquoi mm:value est utilisé dans la boucle ci-dessus).
Il est possible de traîter les erreurs d'exécution en utilisant
l'instruction
Exemple (dans une page DynHtml, la plupart des "FORM" doiven commemcer ainsi):
<FORM METHOD=POST ACTION="com.expershop.lite.ExperSHOP"> $Cookie Stocker des informations liées à la session$Cookie permet d'accéder à toute information liée à la session client: par exemple, $Cookie:CustId$ est le numéro de client lorsqu'un client est loggé.Notez qu'ExperShop n'utilise pas de "vrais" cookies: dans ce document, "cookie" fait référence à des informations relatives à la session, et disponibles pendant toute sa durée. Il est possible de stocker des informations dans le "cookie":
Requêtes SQLIl est possible de définir des requêtes SQL, de les exécuter, et de boucler sur leurs résultats pour afficher le contenu des n-uplets.
Définir une requête SQL $DefineSql nomRequete instruction-sql Ajouter du texte à une requête SQL $AppendSql nomRequete texte$AppendSql peut être utilisé avec une instruction "If... Else", pour compléter le texte d'une requête. Note: Si "texte" commence par "AND" ou "OR", la chaîne AND ou OR sera supprimée si "texte" est la première condition d'une clause WHERE. Par exemple, ajouter "AND Prix>10" à la requête "SELECT * FROM Articles WHERE" produira "SELECT * FROM Articles WHERE Prix>10". Ensuite, ajouter "AND Prix<100" produira "SELECT * FROM Articles WHERE Prix>10 AND Prix<100".
Exécuter une requête SQL $ExecSql nomRequete Boucler sur les résultats d'une requête $LoopOnResults nomRequete nomTuple[(i,j)] ... $EndLoopIl est possible de rajouter au nom du tuple les bornes de la requête, pour pouvoir boucler de l'élément i, jusqu'à l'élément j. Attention, cette option ne guarantit en rien l'ordre des éléments provenant de la base (contrainte SGBD). exemple : $LoopOnResults MyREQ myTuple(11,20) ... $EndLoop Afficher la valeur d'une colonne (dans une boucle)
Cas où il n'y a pas de résultat $IfNoResult nomRequete ... $Else ... $Endif Gestion d'erreur $IfError ... $Else ... $Endif ActionsVous pouvez exécuter une Action ExperSHOP depuis une page DynHtml, en utilisant l'instruction$Action (pour en savoir plus sur
les Actions ExperSHOP, voir la
page web des actions DynHtml).
Syntaxe: Exemple: vider le panier d'achats. $Action com.expershop.actions.ESEmptyCart Tester la présence d'une variable$IfPresent nomVariable ... $Else ... $EndifExemples: $IfPresent Prenom $IfPresent client:Prenom (dans une boucle)
$IfFilePresent nomFichier ... $Else ... $EndifExemples: $IfFilePresent fichierLocal.txt
(dans le répertoire local)$IfFilePresent /tmp/fichier.txt (chemin absolu)$IfFilePresent f:NomFich (dans une boucle)
$LoopOnFiles repertoire fich Nom: $fich:name$, Extension: $fich:ext$<br> ... $EndLoopLe nom du répertoire est soit relatif à ESRootDir, soit absolu (par exemple, s'il commence par / sous Unix).
$DefVar x 2.3 $CheckNumber $x$ $IfError ERREUR: $x$ n'est pas un nombre<br> $Else Ok<br> $Endif $ClearError Opérateurs de calcul simplesIl est possible de faire des additions, soustractions, multiplications et divisions, en utilisant $Add, $Sub, $Mul and $Div.Les variables utilisées doivent avoir été préalablement déclarées; exemple: $DefVar a 1 $Add a 1 $DefVar b 2 $Div a $b$Dans cet exemple, a=1, puis on ajoute 1 (a=2), et on divise par la valeur de b (à la fin, a=1).
$IfEqual nomvariable valeur ... $Else ... $EndifExemples: $IfEqual Ville Paris $IfEqual Prenom "" $IfEqual Prenom $nom$ $IfEqual client:Prenom Jean (dans une boucle)
Comparaisons de valeurs numériques $IfEe variable 0 Zero! $Endif $IfLe variable 10 $variable$ <= 10 $Endif $IfLt variable $unNombre$ $variable$ < $unNombre$ $Endif $IfGe variable 10 $variable$ >= 10 $Endif $IfGt variable $unNombre$ $variable$ > $unNombre$ $Endif Comparer et évaluer des expressions$If permet d'utiliser des expressions à l'intérieur d'une syntaxe conditionnelle :$If ( expression opérateur expression) ... $Else ... $Endif"expression" peut être un calcul : ($var1$ + 14)*3 + $var2$ "opérateur" peut être un opérateur de comparaison, ou un opérateur logique. Les opérateurs de comparaison sont : < > <= >= = <> !=Les opérateurs logiques sont : && ("et" logique) || ("ou" logique) ! ("not" logique)Il est possible d'utiliser des parenthèses pour regrouper des expressions. Par exemple, la syntaxe suivante est valide : $If $courant$ >= $min$ && ! ($courant$ > $max$) La valeur courante semble correcte. $Else La valeur courante est en dehors des bornes. $Endif Exit$ExitQuitter la page immédiatement. $ExitLoopQuitter la boucle courrante immédiatement.
$Switch var $Case val_1 ... ... $EndCase $Case val_2 ... ... $EndCase $EndSwitchSelon la valeur de l'expression le cas approprié est exécuté.
$ExpandFile chemin $ExpandFile est différent de $Include: par exemple, une variable ou une requête définie dans le fichier expansé ne sera pas accessible au retour dans le fichier d'origine. chemin est relatif au répertoire où se trouve la page courante.
$Include chemin $Include est différent de $ExpandFile: par exemple, une variable ou une requête définie dans le fichier expansé sera accessible au retour dans le fichier d'origine. chemin est relatif au répertoire où se trouve la page courante.
$System command $System exécute une commande du système d'exploitation: les résultats de la commandes sont affichés sur le flux HTML de sortie. Par exemple, pour lister les fichiers dans /tmp sur un système Unix: <pre> $System ls -l /tmp </pre> $Debug texteAffiche du texte sur la sortie standard, dans un but de debug. Exemples: $Debug Bonjour les gars! $Debug Nom = $Nom$
$# Ceci est un Commentaire |
Working with DatesHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewIn most cases, ExperShop uses long integers to store date/time informations: the main reason is that every database has its own Date formats, but every database can store long integers!This way of handling dates is y2k compliant, of course, as ExperShop has been designed in 1999 (with current integer formats, a problem might occur in year... 2037, but in 2037 Integers should be wider than today ;)
Displaying dates in DynHtml templatesDynHtml includes a predefined data object, called "CurrentDate", that gives access to dates relative to the currend day.For example, $CurrentDate:Now$ is the current day. CurrentDate has the following attributes:
Formats are those defined in the java.text.DateFormat class, so you can also use the predefined DateFormat.SHORT, DateFormat.MEDIUM, DateFormat.LONG and DateFormat.FULL formats; Example, $(DateFormat.SHORT)CurrentDate:Now$ will display the current date in short format. Dates can also be shifted, relative to the current time; for example, the following constructs are valid:
Converting text to date valuesThe (DateVal) modifier can be used to convert a date text to an ExperShop date value (a long integer); the date text must be of the following format: yyyy:MM:dd (yyyy is the year, MM the month and dd the day).
For example, if the "dt" variable is defined as such:
Date formatsA date can be formatted for display using the Dateformat format. For example, the current date can be displayed in yyyy/mm/dd format as follows (eg. 2001/10/25 representing October 25th, 2001):$Defvar today $CurrentDate:Now$ $(DateFormat.yyyy/MM/dd)today$The format that follows "DateFormat." corresponds to the format supported by the java.text.SimpleDateFormat java class (Java 2 SDK): the description below is an excerpt from Sun's documentation concerning the java.text.SimpleDateFormat class, and is applicable to ExperShop's date formats. (----- Sun documentation excerpt starts here -----) Format Syntax: To specify the time format use a time pattern string. In this pattern, all ASCII letters are reserved as pattern letters, which are defined as the following: The count of pattern letters determine the format.Symbol Meaning Presentation Example ------ ------- ------------ ------- G era designator (Text) AD y year (Number) 1996 M month in year (Text & Number) July & 07 d day in month (Number) 10 h hour in am/pm (1~12) (Number) 12 H hour in day (0~23) (Number) 0 m minute in hour (Number) 30 s second in minute (Number) 55 S millisecond (Number) 978 E day in week (Text) Tuesday D day in year (Number) 189 F day of week in month (Number) 2 (2nd Wed in July) w week in year (Number) 27 W week in month (Number) 2 a am/pm marker (Text) PM k hour in day (1~24) (Number) 24 K hour in am/pm (0~11) (Number) 0 z time zone (Text) Pacific Standard Time ' escape for text (Delimiter) '' single quote (Literal) '
(Text): 4 or more pattern letters--use full form, < 4--use short or abbreviated form if one exists. (Number): the minimum number of digits. Shorter numbers are zero-padded to this amount. Year is handled specially; that is, if the count of 'y' is 2, the Year will be truncated to 2 digits. (Text & Number): 3 or over, use text, otherwise use number. Any characters in the pattern that are not in the ranges of ['a'..'z'] and ['A'..'Z'] will be treated as quoted text. For instance, characters like ':', '.', ' ', '#' and '@' will appear in the resulting time text even they are not embraced within single quotes. (------ Sun documentation excerpt ends here ------)
|
Pricing ExperShop LiteIMPORTANT Les prix
proposés s'appliqueront à la version 1.x, jusqu'à fin
2000.
Téléchargement gratuit ExperShop Lite peut être téléchargé gratuitement: vous pouvez l'utiliser à des fins de développement, sans garantie ni support. Quand devez-vous payer ? Vous devez payer:
Niveaux de licence:
Les prix sont exprimés en Euros, hors taxes (pour les utilisateurs Européens, TVA France: 19,6 %)
Prix spéciaux (gros hébergeurs, revendeurs) Si vous avez besoins de termes de licence spécifiques (ex. plus de support) ou si vous avez des besoins particuliers (ex. revente du produit), contactez-nous. Vous souhaitez acquérir une licence ExperShop Lite ? Contactez nous ! |
ExperSHOP - Current version and statusHome Contents Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog WARNINGThe current ExperSHOP release is a beta version.Any feedback is welcome!
|
Actions ExperSHOPPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Les Actions, c'est quoi ?Les Actions sont des classes Java, invoquées à la demande par ExperSHOP pour exécuter certaines tâches.
ExperSHOP est livré avec un certain nombre d'actions prédéfinies:
par exemple, l'action Les actions peuvent être invoquées :
Les Actions peuvent recevoir des paramètres (également passés
au servlet comme paramètres HTTP), et peuvent aussi retourner des
paramètres comme résultat (ces nouveaux paramètres
seront visibles du servlet comme des paramètres HTTP).
Une action peut s'exécuter avec succès, ou échouer; il est possible
de récupérer l'erreur et de l'afficher grace à un template:
le paramètre HTTP "ActionFailed" définit quelle page afficher si
l'action échoue. Actions ExperSHOP prédéfiniesLes actions suivantes sont prédéfinies:Actions à usage général:
Actions d'administration :
Actions réservées au paiement sécurisé:
com.expershop.actions.ESAddToCartAjouter un article au panier d'achats.Paramètres d'entrée:
com.expershop.actions.ESUpdateCartMettre à jour le contenu du panier d'achats. Paramètres d'entrée:
com.expershop.actions.ESEmptyCartVider le panier d'achats.Cette action peut être utilisée lors de l'interfaçage d'ExperSHOP avec un système de paiement sécurisé incluant des fonctions de back-office: dans ce cas, le marchand peut ne pas souhaiter utiliser le back-office d'ExperSHOP, et simplement vider le panier d'achats lorsqu'une commande client est confirmée.
com.expershop.actions.ESConfigureCartConfigurer le panier d'achats - en particulier, pour changer la table utilisée pour les produits.Cette action est réservée à des utilisations avancées du panier d'achats. Action "Server-side". Paramètres en entrée :
Tout paramètre qui commence par CONFIG_ .
Paramètres en sortie : aucun. com.expershop.actions.ESSaveCartSauvegarder le contenu du panier d'achats.Paramètres en sortie:
com.expershop.actions.ESRestoreCartRestaurer un panier d'achats précédemment sauvegardé: le contenu du panier sera remplacé.Paramètres d'entrée:
com.expershop.actions.ESCustomerLoginConnecter un client existant (log-in).Paramètres d'entrée:
com.expershop.actions.ESNewCustomerCréer un nouveau client dans la base de données.Paramètres d'entrée:
com.expershop.actions.ESUpdateCustomerMettre à jour un client existant dans la base de données.Paramètres d'entrée:
com.expershop.actions.ESOrderActPasser commande du contenu du panier d'achat (le panier d'achats est ensuite vidé).L'état de la nouvelle commande sera égal à "WAITING" (en attente de paiement), car cette action est destinée au paiement par chèque ou fax.
ESOrderAct crée une nouvelle entrée dans la table ECustOrder de la
base de données: vous pouvez mettre à jour les colonnes
de votre choix dans votre commande, en spécifiant dans votre FORM
HTML des paramètres HTTP portant le même nom que les colonnes
à mettre à jour dans la table ECustOrder. Paramètres d'entrée:
com.expershop.actions.ESCheckParamsContrôle des paramètres obligatoires: par exemple, lors de la soumission d'une forme de saisie, peut servir à vérifier que le nom du client est bien présent.Paramètres d'entrée:
com.expershop.actions.ESSendMailEnvoi d'e-mail.Paramètres de configuration:
com.expershop.actions.ESWriteFileEcrire un fichier sur le disque, par expansion d'un modèle de page DynHtml.Action "server-side" pour des raisons de sécurité: ne peut être invoquée que via $Action .Exemple (Unix):
$Assign Template ESTemplates/xml/toxml.tmpl
Paramètres d'entrée:
Les autres servlets ExperSHOPPour uploader un fichier: com.expershop.lite.ESUploaderServlet La servlet com.expershop.lite.ESUploaderServlet permet d'uploader des fichiers textes ou binaires. Il faut préciser le fichier source qui doit être uploader, le répertoire de destination, ainsi que l'url de redirection qui sera utilisé une fois que l'upload est terminé. Les paramètres obligatoires sont les suivants:
<form enctype="multipart/form-data" method="POST" action="com.expershop.lite.ESUploaderServlet"> <input type="hidden" size="20" name="urles" value="/servlet/com.expershop.lite.ExperSHOP?$Cookie$&Page=MyPage.tmpl"><p> <input type="hidden" size="20" name="overwrite" value="on"> file to upload : <input type="file" size="20" name="uploadfile" value=""><p> destination directory : <input type="text" size="20" name="uploaddirectory" value="/tmp"><p> <input type="submit" name="UPLOADSERVLET" value="UPLOAD"> </form> |
Actions d'administration boutique ExperSHOPPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Les actions, c'est quoi ?Les Actions sont des classes Java, invoquées à la demande par ExperSHOP pour exécuter certaines tâches.
ExperSHOP est livré avec un certain nombre d'actions prédéfinies:
par exemple, l'action Pour plus de détails, voir la documentation des actions ExperShop.
Actions d'administrationLes actions d'administration sont des actions qui ne peuvent être invoquées que depuis le servlet d'administration (com.expershop.lite.ESAdminServlet ).
Essayer de les exécuter via le servlet ExperSHOP provoque une erreur
"Access denied" - accès refusé (pour raison de sécurité).
ExperSHOP fournit des actions d'administration prédéfinies :
com.expershop.admin.ESNewDepartmentCréer un nouveau rayon. La table correspondante dans la base de données est EDepartment, et doit contenir au moins les colonnes "DeptId" (référence rayon) et "Name" (nom du rayon).Paramètres en entrée :
Paramètres en sortie : En cas de succès: aucun. En cas d'erreur:
com.expershop.admin.ESUpdateDepartmentMettre à jour un rayon existant. La table correspondante dans la base de données est EDepartment.Paramètres en entrée :
Paramètres en sortie : aucun com.expershop.admin.ESDropDepartmentSupprimer un rayon existant. La table correspondante dans la base de données est EDepartment.Paramètres en entrée :
Paramètres en sortie : aucun com.expershop.admin.ESNewProductCréer un nouveau produit. La table correspondante dans la base de données est EProduct, et doit contenir au moins les colonnes "ProdId" (référence produit), "Name" (nom du produit) et "Price" (prix du produit).Paramètres en entrée :
Paramètres en sortie : En cas de succès: aucun. En cas d'erreur:
com.expershop.admin.ESUpdateProductMettre à jour un produit existant. La table correspondante dans la base de données est EProduct.Paramètres en entrée :
Paramètres en sortie : aucun com.expershop.admin.ESDropProductSupprimer un produit existant. La table correspondante dans la base de données est EProduct.Paramètres en entrée :
Paramètres en sortie : aucun com.expershop.admin.ESDropCustomerSupprimer un client existant. La table correspondante dans la base de données est ECustomer.Paramètres en entrée :
Paramètres en sortie : aucun com.expershop.admin.ESUpdateOrderMettre à jour l'état d'une commande existante. La table correspondante dans la base de données est ECustOrder, et seuls l'état de la commande et son état de paiement (respectivement "Status" et "PayStatus") peuvent être affectés.Paramètres en entrée :
Paramètres en sortie : aucun com.expershop.admin.ESDropOrderSupprimer une commande existante, inclus la liste des articles commandés et l'en-tête de commande. Les tables concernées dans la base de données sont ECustOrder et EProdOrder.Paramètres en entrée :
Paramètres en sortie : aucun com.expershop.admin.ESRemoveCanceledOrdersSupprimer toutes les commandes annulées - état=CANCELED, inclus la liste des articles commandés et l'en-tête de commande. Les tables concernées dans la base de données sont ECustOrder et EProdOrder.Paramètres en entrée : aucun Paramètres en sortie : aucun com.expershop.admin.ESRemoveProcessedOrdersSupprimer toutes les commandes traitées - état=PROCESSED, inclus la liste des articles commandés et l'en-tête de commande. Les tables concernées dans la base de données sont ECustOrder et EProdOrder.Paramètres en entrée : aucun Paramètres en sortie : aucun |
Administration ExperShopPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog ExperSHOP Lite est livré avec un servlet spécifique, dédié à l'administration de la boutique:
Se connecter à l'outil d'administrationUne fois que votre ExperShop est installé et que la boutique d'exemple fonctionne, accédez simplement àhttp://your-shop-url/servlet/com.expershop.lite.ESAdminServlet
pour vous connecter à l'outil d'administration.
Un mot de passe vous sera demandé pour vous connecter comme Administrateur :
tant que vous ne l'avez pas modifié, sa valeur par défaut
est Entrez le mot de passe, et cliquez sur le bouton Ok: vous êtes maintenant connecté comme Administrateur, suivez les liens HTML!
Gestion des commandes clientLorsqu'un client passe commande, la commande est créée dans la base de données avec un état égal à NEW (nouveau).Les outils de gestion de commandes vous permettent de modifier l'état de la commande au cours de son traitement: un état PROCESSING signifie que le traitement de la commande est en cours, et un état PROCESSED signifie que cette commande est terminée et livrée au client. Les commandes en état PROCESSED peuvent être supprimées à la demande par l'Administrateur de la boutique. La plupart des opérations de mise à jour sont effectuées via les actions d'administration ExperSHOP, par exemple pour modifier l'état des commandes ou supprimer certaines commandes. Mises à jour du catalogueL'outil de mise à jour du catalogue permet à l'Administrateur de créer/mettre à jour/supprimer des rayons et des articles dans la boutique.La plupart des opérations de mise à jour sont effectuées via les actions d'administration ExperSHOP, par exemple la création, mise à jour ou suppression des rayons et des produits. Remarque: ces opérations peuvent aussi être directement réalisées en SQL sur la base de données, cette méthode étant plus rapide pour insérer des articles en grand nombre.
|
Le panier d'achats d'ExperShopPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog IntroductionExperShop Lite inclut un panier d'achats: des articles peuvent y être ajoutés ou supprimés, et le contenu du panier peut être affiché dans une page DynHtml ExperShop.Le panier d'achats intègre des fonctions de calcul de taxes et de frais de port.
Afficher le contenu du panier d'achatsLe panier d'achats est accessible depuis les modèles de page DynHtml à travers un "DataSet" prédéfini, appeléShoppingCart .
Par exemple, vous pouvez à tout instant boucler sur le contenu du panier d'achats : $LoopOnResults ShoppingCart article Ref. article : $article:ProdId$ - Prix : $article:Price$<br> $EndLoopChaque ligne (article) du panier d'achats contient les informations suivantes :
$ShoppingCart:TotalPrice$ est le prix total du
contenu du panier, taxes et frais de port inclus.Les informations suivantes sont accessibles :
Ajouter / Supprimer des articlesLes actions suivantes peuvent affecter le contenu du panier d'achats :
Pour supprimer un article du panier, utilisez l'action ESUpdateCart (soit en spécifiant un paramètre DEL_[ItemId] égal à "y" comme "yes", soit en mettant la quantité (QTY_[ItemId]) à "0").
Gestion des produits avec options (couleurs, tailles...)Lorsque vous ajoutez un article au panier d'achats (avec l'action ESAddToCart), vous pouvez définir des paramètres supplémentaires pour gérer des options produit :OptionNames est la liste des noms d'options (séparés par des virgules): par example, <input type="hidden" name="OptionNames" value="Couleur,Taille">Pour chaque option, vous devez définir un paramètre - généralement via un "contrôle" dans une "form" de saisie (le nom du paramètre est le nom de l'option, sa valeur est la valeur de l'option). Par exemple : <select size="1" name="Couleur"> <option>Rouge <option>Bleu </select> <select size="1" name="Taille"> <option>10 <option>20 </select>Lorsque la "form" HTML sera validée, l'article sera ajouté au panier avec les options positionnées selon le choix de l'utilisateur.
Dans la page qui affiche le contenu du panier, vous pouvez accéder aux valeurs
des options comme suit : $LoopOnResults ShoppingCart art Nom=$art:Name$, Couleur=$art:Options.Couleur$, Taille=$art:Options.Taille$ <br> $EndLoopRemarque: du côté de l'administration boutique, les options pourront être affichées d'une manière comparable (en bouclant sur les articles de la commande), ou directement en tant que $article:Options$ (qui affichera une chaîne de caractères de la forme { Couleur=Bleu, Taille=10 } - suffisante pour être comprise de l'utilisateur).
Stocker des informations utilisateur dans le panierLe panier peut conserver en mémoire des informations utilisateur : elles seront conservées aussi longtemps que le panier ne sera pas vidé.
Pour stocker des information utilisateur dans le panier, utilisez les actions
ESUpdateCart ou ESAddToCart, avec des paramètres de la forme UINFO_[nom]. <input type=text name="UINFO_Prenom">provoquera le stockage d'une information appelée "Prenom" dans le panier au moment où la "form" HTML sera validée.
Pour accéder à des informations utilisateur préalablement stockées,
utilisez $ShoppingCart:UInfo.
Il est possible de modifier dynamiquement les zones taxe et frais de port du
panier, en utilisant l'action
Différents algorithmes de calcul des frais de port peuvent être utilisés :
Exemple : deux zones de frais de port
Par exemple, nous pouvons définir une zone "Magasin" pour les clients
qui viennent prendre livraison de leur commande sur place (avec des frais de
port gratuits), et une zone "Maison" pour ceux qui veulent être livrés
chez eux (avec un frais de port constant, par exemple 10 Euros).
Pour cela, il faudra inclure les informations suivantes dans le fichier de
configuration boutique:
Remarque: les tarifs sont généralement des nombres, mais il est aussi possible
de définir des intervalles: par exemple,
Exemple en syntaxe PostgreSQL :
Créez un fichier texte qui contient les valeurs suivantes :
Lancez le chargeur :
Cette commande va générer les commandes SQL INSERT nécessaires pour
remplir votre table : sauvegardez les dans un fichier, et exécutez-le en tant
que script SQL pour charger votre base.
Par exemple, 2 codes remise (une remise "gold" de 10%, et une remise "silver"
de 5%) peuvent être définies comme suit :
Le code remise est passé en paramètre à l'action
Par exemple, vous pourriez souhaiter utiliser la table suivante :
Deux étapes sont nécessaires pour ajouter un tel produit au panier d'achats :
Par exemple, voici le code pour configurer le panier comme décrit ci-dessus :
Etape 2: ajouter un article au panier d'achats
Si vous utilisez l'action
|
Configuration de l'applicationPage principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Vue généraleExperShop 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 ExperShopCe 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:
Format de fichier:
default: cheminParDefaut Boutique1: cheminBoutique1 ... BoutiqueN: cheminBoutiqueNL'entrée "default" est facultative. Exemple (Windows):
default: c:\\SurfShop\\surf.cfg SurfShop: c:\\SurfShop\\surf.cfg Supermarche: c:\\Supermarche\\super.cfgRemarque: 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 boutiqueChaque boutique nécessite un fichier de configuration. Le fichier
de configuration définit les propriétés suivantes
:
NotesSous 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
|
Console d'administrationPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog
Qu'est-ce ? Installation Utilisation Connection pool Trace configuration Application configuration Trace output on | off Clients for this application Console properties Prérequis
Qu'est-ce ?Une console d'administration est maintenant disponible pour administrer les applications ExperShop. Cette console est une application ExperShop, et peut donc être administrée de la même façon. Elle permet aujourd'hui de démarrer et d'arrêter une application, de configurer les connexions vers la base de données, de gérer les traces provenant de l'application, de gérer les connexions des clients qui se connectent à l'application, ainsi que de nombreux outils d'analyse.InstallationTout d'abord, vous avez besoin du package ExperShop Lite.Si vous ne l'avez pas encore, téléchargez-le sur le Site Web ExperLog. Ensuite, vous avez besoin du package " console d'administration" disponible dans la partie download du site. Et enfin:
Utilisation
[Connection pool]Ce panneau permet de gérer le pool de connexions vers la base de données, ainsi que d'autres paramètres de connexion. En haut du panneau, est indiqué le nombre de connexions physiques présentement utilisées.
[Trace configuration]Ce panneau permet de gérer le "Trace Manager".
[Application configuration]Ce panneau permet d'administrer la configuration générale de l'application.
[Trace output]Ce panneau permet de visionner le fichier d'erreurs et de messages de l'application. Ces logs sont visibles uniquement dans le cas où un fichier de logs a été positionné dans la partie "Trace configuration".[on | off]Ces panneaux permettent de démarrer et d'arrêter une application. Par défaut, une application est démarrée.
[Clients for this application]Tous les clients présentement connectés à l'application sont listés. Lorsqu'on clique sur un client, les informations suivantes sont affichées, certaines sont modifiables.
Un lien vers le caddie est proposé ("Link to cart"), et permet de visionner son contenu. Le fichier de configuration de la console d'administration est presque similaire à celui d'une application ExperShop normale. Les propriétés suivantes sont définies: |
Paramètres console | ||
---|---|---|
Propriété | Description | Valeur par défaut |
console.mbeanserver | nom du serveur MBean utilisé par ExperShop pour la console d'administration. | expershop |
console.color1 | première couleur pour les tableaux. | "#ffffe0" |
console.color2 | seconde couleur pour les tableaux. | "#ffcc99" |
console.applicationcolor | couleur de texte. | "#ff1111" |
console.propertiescolor | couleur des propriétés. | "#008000" |
console.bgcolor | couleur de fond. | "#ffffff" |
La base de donnéesPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog A quoi sert la base de données ?ExperSHOP Lite s'appuie sur une base de données SQL.La base de données sert à stocker toutes les informations concernant:
Quelle base de données utiliser ?N'importe quelle base de données qui dispose d'un driver JDBC.Notez que toute base de données accessible via ODBC est dans ce cas. Comment configurer votre base de données ?Pour qu'ExperSHOP Lite puisse fonctionner, certaines tables doivent être créées dans la base de données: le paragraphe suivant décrit le schéma SQL correspondant.
Schéma SQL de la base de donnéesLe schéma SQL définit les tables de la base de données, avec leurs colonnes (par exemple, une table "Produit" comportera une colonne pour le nom du produit, une autre pour le prix, etc...)Vous pouvez modifier le schéma de la base en fonction de vos besoins, par exemple pour rajouter des champs spécifiques dans la table "EProduct" (les produits qui vous vendez). Les noms des tables, ainsi que certains champs particuliers (les champs "Id", par exemple "ProdId", la référence produit dans la table "EProduct"), ne doivent pas être supprimés ni renommés. Par défaut, ExperSHOP Lite utilise le schéma SQL suivant:
create table EDepartment ( DeptId varchar(20) primary key, Name varchar(64) NOT NULL, DeptImage varchar(128)); create table EProduct ( ProdId varchar(20) primary key, Category varchar(20), Name text NOT NULL, Brand varchar(32), Model varchar(32), Descrip text, Price double NOT NULL, InStock integer, StockLimit integer, ProdImage varchar(80), LargeImage varchar(80), DeptId varchar(20), Publish varchar(1)); create table ECustomer ( CustId varchar(20) primary key, LastName varchar(30) NOT NULL, FirstName varchar(30) NOT NULL, Password varchar(20), Address varchar(120), City varchar(32), ZipCode varchar(20), State varchar(32), Country varchar(32), Fax varchar(32), Tel varchar(32), Email varchar(64)); create table ECustOrder ( OrdId varchar(20) primary key, CustId varchar(20), AffId varchar(20), WlId varchar(20), OrderTime long, TotalPrice double NOT NULL, Tax double NOT NULL, ShippingCost double NOT NULL, ShipName varchar(64), ShipAddress varchar(120), ShipCity varchar(32), ShipZipCode varchar(20), ShipState varchar(32), ShipCountry varchar(32), ShipOptions text, Message text, Status varchar(10), PayStatus varchar(10), PayInfo varchar(32), CcNum varchar(20), CcExpDate varchar(12), CcName varchar(32)); create table EProdOrder ( OrdId varchar(20), ProdId varchar(20), Name text, Price double NOT NULL, Qty integer NOT NULL, Options varchar(80), Config varchar(128), primary key (OrdId, ProdId)); create table ECartSaver ( CartId varchar(32), Item text, ExpDate long); create table EAffiliate ( AffId varchar(32), Name varchar(64), Password varchar(16), Email varchar(64), Miles double );Recopiez simplement le schéma dans un fichier texte, et créez les tables dans votre base de données: cette opération peut nécessiter quelques modifications mineures dans le schéma, parce que la syntaxe de SQL peut varier quelque peu d'une base à une autre.
|
Guide ExperSHOP DynHtml Page Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Instructions DynHtmlPour une liste complète des instructions DynHtml, Cliquez Ici.
Guide d'utilisation DynHtmlDynHtml est le moyen qu'ExperShop Lite met à votre disposition pour inclure des données en provenance d'une base de données dans des pages HTML:L'essentiel du travail à effectuer pour créer et mettre à jour une boutique ExperShop consiste à écrire et maintenir des pages DynHtml. Dans la
boutique de démo ExperSHOP Lite, les pages DynHtml sont dans le
répertoire Ce guide détaille étape par étape une page DynHtml. Liste des produits dans un rayon de la boutiqueLa page DynHtml prise pour exemple permet d'afficher la liste des produits disponibles dans un rayon de la boutique. Voici à quoi ressemble l'affichage:
Maintenant, regardons le code source DynHtml interprété par ExperSHOP pour générer cet écran. Code source DynHtmlDynHtml est un mélange de HTML et d'instructions ExperSHOP, interprétées lors du chargement de la page.Regardez le code source: vous y verrez des tags HTML, et des instructions comme $ExecSql , $LoopOnResults ... $EndLoop , etc...
Ces instructions
permettent d'interroger la base de données, et d'inclure les résultats
de la requête dans la page HTML générée.
$DefineSql LISTPROD SELECT ProdId, Name, ProdImage, Price FROM Comment ça marche ?Regardons le code DynHtml, étape par étape: D'abord,
nous définissons une requête SQL pour lister tous les produits
disponibles dans un rayon de la boutique; pour cela, nous utilisons l'instruction
ExperSHOP
$DefineSql LISTPROD SELECT ProdId, Name, ProdImage,Revenons maintenant au HTML : <HTML> <HEAD> <TITLE>List Products</TITLE> </HEAD> <BODY BGCOLOR=#ffffff> <CENTER>Maintenant, éxécutons la requête que nous avons définie: $ExecSql LISTPRODSi la requête ne produit aucun résultat (s'il n'y a aucun produit dans le rayon), affichons "No Product Available" ("Aucun produit disponible") dans le navigateur du client:
$IfNoResult LISTPROD <h2>No Product Available</h2>Sinon, affichons la liste des produits; d'abord, insérons un en-tête de tableau:
$Else <TABLE BORDER> <TR> <TD ALIGN="CENTER"> <B><FONT SIZE=-1>Product Name</FONT></B> </TD> <TD ALIGN="CENTER"> <B><FONT SIZE=-1>Price</FONT></B> </TD> <TD ALIGN="CENTER"> <B><FONT SIZE=-1>Add to cart</FONT></B> </TD> </TR>... ensuite, insérons une ligne de tableau pour chaque produit du rayon choisi:
Pour cela, nous utiliserons l'instruction ExperSHOP $LoopOnResults
... $EndLoop , pour boucler sur les tuples retournés par la
requête sur la base de données:
$LoopOnResults LISTPROD prod <TR>Cette instruction signifie que l'on boucle sur la requête LISTPROD en utilisant une variable appelée "prod" ("prod" est le nom que nous donnons au tuple de données obtenu à chaque itération). Voyez le
lien HTTP ci-dessous: si le client clique dessus, le servlet
<TD ALIGN=CENTER> <A HREF="com.expershop.lite.ExperSHOP?$COOKIE$&Page=Maintenant, affichons le prix du produit:
<TD ALIGN="CENTER">$(.00)prod:Price$</TD>(.00) est un format d'affichage, qui signifie "2 chiffres après la virgule, avec 0 par défaut". Affichons
le lien "Add to cart" ("Ajouter au panier"): si le client clique dessus,
le Servlet
<TD ALIGN="CENTER"> <FONT SIZE="-1"> <A HREF="com.expershop.lite.ESCartServlet?$COOKIE$&Page= $EndLoopMaintenant, la boucle sur les produits est terminée, fermons le tableau : </TABLE>Le tableau ressemble à ceci :
L'instruction $EndIf marque la fin du groupe d'instructions
$IfNoResult ... $Else ... $Endif :
$EndifMaintenant, terminons la page HTML:
</BODY> </HTML> |
ExperSHOP - Vue GénéralePage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Que peut-on faire avec ExperSHOP ?ExperSHOP est un serveur d'applications java léger, basé sur les servlets et JDBC.Il intègre les fonctions de base d'un serveur d'application: pool de connexions vers la base de données, multi-applications, gestion de sessions client, et interface vers des objets métier java. Pour les sites marchands, ExperShop intègre un panier d'achats, un système de prise de commandes et des passerelles vers des systèmes de paiement sécurisé. ExperShop vous permettra de créer des applications très rapidement, tout en ne limitant pas la créativité des web designers : pour cela, il intègre une technologie de "fusion" - modèles de page HTML avec code dynamique intégré, le tout interprété à la volée. Par exemple, pour créer votre site marchand : prenez la boutique de démonstration ExperSHOP Lite, modifiez-la selon vos besoins, c'est prêt!
Quel système, serveur Web et base de données utiliser ?
Nos préférences en termes de serveur Web :
Apache avec JServ ou
Tomcat,
ou JRun (surtout pour les serveurs
Netscape et IIS)
Nos préférences en termes de base de données :
MySQL
ou PostgreSQL. Nos préférences en termes de système : Linux, Unix en général. Quel paiement sécurisé peut-on utiliser ?Plusieurs systèmes sont supportés : CyberCash (USA), CyberMut (France), OpenMarket Transact (Utilisé par de nombreux prestataires, dont Telecommerce de France Télécom).Nous prévoyons d'interfacer d'autres systèmes prochainement : si vous avez un besoin spécifique dans le domaine du paiement, contactez-nous, car nous agirons d'abord en fonction des priorités et des besoins exprimés.
|
ExperSHOP - Démarrer rapidementPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Prérequis
Il y a une base de données InstantDB dans le package ExperSHOP (la version n'est pas garantie). InstallationTout d'abord, vous avez besoin du package ExperShop Lite.Si vous ne l'avez pas encore, téléchargez-le sur le Site Web ExperLog. Ensuite :
Le répertoire ExperSHOP contient un script shell (essetup.sh) qui peut
simplifier l'installation (en particulier, pour positionner les droits
d'accès aux fichiers d'InstantDB...). Pages DynHtmlElles se trouvent dans le répertoireExperSHOP/shops/lite/ESRootDir/ESTemplates/Shop :allez les consulter, avec l'aide du guide d'utilisation DynHtml.
Faire fonctionner la boutique d'exemple ExperSHOP LiteFaire fonctionner ExperShop avec servletrunner
Une manière simple de tester la boutique est de la faire tourner
avec
Sous Windows :
Sous Unix :
Note pour la base de données InstantDB : Sur certaines
plateformes, des problèmes d'initialisation peuvent se produire,
causant un mauvais fonctionnement du panier d'achats. Faire fonctionner ExperShop avec Enhydra
Enhydra est un serveur d'applications open-source, developpé et
maintenu by Lutris technologies. Ensuite, après avoir installé Enhydra sur votre serveur, consultez nos "Release Notes" ExperShop pour Enhydra :
Faire fonctionner ExperShop avec Tomcat Tomcat est l'implementation de référence des servlets java, fournie par Apache. Tomcat est destiné à remplacer Apache JServ. Vous pouvez télécharger Tomcat sur les pages du projet jakarta d'Apache. Ensuite, après avoir installé Tomcat sur votre serveur, consultez nos "Release Notes" ExperShop pour Tomcat : Faire fonctionner ExperShop avec BEA Weblogic Weblogic est le serveur de servlets de BEA systems. Vous pouvez évaluer ou acheter Weblogic sur le site web de BEA. Ensuite, après avoir installé Weblogic sur votre serveur, consultez nos "Release Notes" ExperShop pour Weblogic: Faire fonctionner ExperShop avec Apache JServ Le module Apache JServ, distribué par Apache, permet de faire tourner des servlets (voir le projet Apache Java - en anglais - pour plus d'informations). Nous supposerons que vous avez convenablement installé Apache et JServ. Ensuite:
Faire fonctionner ExperShop avec un serveur Netscape Nous recommandons de ne pas utiliser l'interface servlet native de Netscape: utilisez plutôt JRun pour les servlets.
Faire fonctionner ExperShop avec Java Web Server D'abord, copiez les fichiers de configuration ExperSHOP dans le répertoire racine de Java Web Server.
Les fichiers de configuration sont dans le répertoire
Ensuite:
|
Servlets ExperSHOPPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Servlets ExperSHOPSon rôle principal est d'interpréter des pages DynHtml, pour générer dynamiquement du contenu HTML.Tout ce qui concerne la gestion de la session client (déterminer qui est connecté) et du panier d'achats est transparent pour l'utilisateur. ExperSHOP se compose de deux servlets:
Paramètres HTTPLe servlet ExperShop a besoin des paramètres HTTP suivants :
Exemple:
<a href=com.expershop.lite.ExperSHOP?S_=SurfShop> Surf Shop</a><br> <a href= com.expershop.lite.ExperSHOP?S_=Supermarket> Faites vos courses!</a><br>Exemple de lien HTTP vers une page ExperSHOP, dans une page DynHtml (liste des rayons de la boutique) : <a href= com.expershop.lite.ExperSHOP?$COOKIE$&Page=ESListeRayons.tmpl> Rayons</a>$COOKIE$ sera remplacé par toute l'information nécessaire à ExperSHOP pour savoir qui est connecté. Page dit à ExperSHOP quelle page DynHtml afficher lorsque l'utilisateur clique sur le lien. Voir le Guide DynHtml pour plus de détails.
Panier d'achats, et autres "Data Sets" prédéfinisDans les pages DynHtml, vous pouvez boucler sur des "data sets" (jeux de données, comme par exemple des résultats de requêtes SQL) et afficher leur contenu.Certains "Data Sets" sont prédéfinis, et toujours accessibles:
Paramètres et Data Sets spécifiques du servlet d'AdministrationVoir la documentation du servlet d'administration pour plus de détails.
|
Version
2.1 (28 Janvier 2002) Liste des évolutions (en anglais) |
Paiement CyberMut ou PaiementCICPage 'Paiement Sécurisé' Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog PrésentationExperShop supporte CyberMut ou PaiementCIC à partir de la version 1.2, (aucun test n'a été effectué avec les versions plus anciennes).CyberMut et PaiementCIC s'apppuient sur la même plateforme technique : dans la suite du document, le terme "CyberMut" sera utilisé, pour CyberMut ou PaiementCIC. Les librairies CyberMut ne sont pas incluses dans la livraison ExperShop: vous les obtiendrez du Crédit Mutuel ou du CIC à l'ouverture de votre compte CyberMut. Pour plus d'information, consultez le site web CyberMut, ou celui de PaiementCIC
PlateformesPour l'instant, nous n'avons testé que sous Linux (intel) et Windows NT...Contactez-nous pour d'autres plateformes possibles. Comment fonctionne CyberMut ?CyberMut est un service de paiement sécurisé Crédit Mutuel.Pour y accéder, vous devez ouvrir un compte bancaire professionnel au Crédit Mutuel, puis vous abonner au service. Une fois remplies ces formalités, vous pourrez facilement configurer votre boutique ExperShop pour utiliser CyberMut. CyberMut dispose d'un serveur de paiement, qui prend le contrôle durant toute la phase de paiement: l'acheteur tape son numéro de Carte Bleue directement sur un serveur du Crédit Mutuel, qui contrôle la validitéde la transaction et accepte ou refuse le paiement; ensuite, le serveur CyberMut prévient le commerçant du succès ou de l'échec de la transaction. Le service est asynchrone: la boutique est rappelée par le serveur de paiement via une requête HTTP contenant les informations relatives à l'état du paiement. Le numéro de Carte Bleue du client est seulement connu de la banque: il n'est pas transmis au commerçant.
Configurer ExperShop pour CyberMutLes propriétés suivantes doivent être précisées dans le fichier de configuration de la boutique:shop.Currency : la devise utilisée (par exemple, USD pour le Dollar, EUR pour l'Euro). pay.cmut.URL
: L'URL du service de paiement CyberMut (fournie par CyberMut).
CyberMut
va vous demander un certain nombre d'informations permettant d'ouvrir
votre compte, parmi lesquelles l'URL utilisée pour la confirmation
des paiements.
Installer CyberMut sur votre systémeLors de l'ouverture de votre compte CyberMut, divers éléments vous seront remis, parmi lesquels les librairies CyberMut à installer sur votre système.Installation sous Linux (intel) La librairie ExperShop s'appelle libESCyberMut.so, et se trouve dans ExperSHOP/etc/cmut/linux-intel.
Principes:
Installation sous Windows NT La librairie CyberMut s'appelle CMSSL.dll; La librairie ExperShop s'appelle ESCyberMut.dll, et se trouve dans ExperSHOP\etc\cmut\win32. Pour cette raison, votre variable systéme PATH doit pointer vers ExperShop\etc\cmut\win32, ainsi que vers le répertoire contenant CMSSL.dll. N'oubliez pas de positionner la variable d'environnement CMKEYDIR de CyberMut : elle doit pointer vers le répertoire qui contient le fichier de "clé commerçant" livré par CyberMut. Pour plus de détails concernant l'installation de CyberMut, voir le manuel CyberMut. Appeler CyberMut depuis les templates ExperShopAppeler CyberMut, cela veut dire afficher une form HTTP, généré par CyberMut : cette form contient uniquement des chanps cachés ("hidden") et un bouton "submit". ExperShop
fournit une Action CyberMut, via la classe Pour afficher la form, vous devez invoquer l'action, puis afficher la valeur de CyberMutFORM; l'exemple suivant, lorsqu'il est copié dans un template DynHtml ExperShop, réalise les opérations nécéssaires :
$Action com.expershop.pay.cmut.ESGenFormAct $CyberMutFORM$La ligne "$Action" invoque l'action "com.expershop.pay.cmut.ESGenFormAct", puis $CyberMutFORM$ affiche la valeur du paramétre "CyberMutFORM". L'action ESGenFormAct reçoit 2 paramètres optionnels:
|
CyberCash PaymentPage 'Paiement Sécurisé' Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog OverviewExperShop supports CyberCash MCK 3.2 and later, but has not been tested against previous versions.Currently, only the credit-card payment is supported.
Quick StartYou can test the CyberCash integration against our CyberCash test account :
SetupThere are different steps to integrate a merchant server with CyberCash :
Installing the ExperShop CyberCash filesIn the ExperShop/etc/cych directory, you will find :
For PERL users : Installing the PERL scripts Go in the perl-scripts directory, then copy the CCMerchantCustom.pm and CCMerchantTest.pm files in the directory that contains the CyberCash MCK CGI scripts (depends on your MCK installation). For C users : Installing the C scripts Go in the c-scripts directory, then copy the CCMerchantCustom.c, CCMerchantCustom.h, CCMerchantTest.c and CCMerchantTest.h files in the c-scripts directory under your CyberCash MCK installation. Before doing that, you may wish to save the previous version of the files : if so, temporarily copy them somewhere else. Go in the
c-scripts/browser directory under your CyberCash MCK installation,
then compile with the makefile : Copy the generated .cgi files in the directory that contains the CyberCash MCK CGI scripts (depends on your MCK installation). Installing the templates Go in the MCK CGI directory (if you installed the MCK for testing, there's a test-mck/mck-cgi directory somewhere). Create an expershop_templates directory there, and copy the files from expershop_csk/expershop_templates in the new directory. Edit the conf/merchant_conf file, and change the "TEMPLATE_DIR=./templates" line to "TEMPLATE_DIR=./expershop_templates".
Invoking CyberCash from ExperShop templatesCyberCash is invoked from ExperShop by invoking thecom.expershop.pay.cych.ESOrderAct
action.
The action invokes the CyberCash services for payment : if the payment is successful, the shopping cart content is ordered.
Action : com.expershop.pay.cych.ESOrderActPlace Order, with CyberCash secure payment : a new order is created upon payment success, the shopping cart is emptied.If the payment fails, no order is placed, and the shopping cart remains unchanged. We recommend that the page that triggers this action be invoked through SSL (for credit-card info encryption). Input parameters
:
|
Paiement SécuriséPage Principale Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog Les systèmes de paiement sécurisé du marchéExperShop s'interface avec différentes solutions de paiement sécurisé disponibles sur le marché.Actuellement, les systèmes suivants sont supportés :
Comment ça marche ?La plupart des systèmes de paiement impliquent :
Pour que ce système fonctionne, le marchand doit s'abonner à un service de paiement, puis l'interfacer avec son site web marchand. ExperShop, en tant qu'outil de développement de serveurs marchands, inclut des interfaces pré-configurées pour supporter facilement certains systèmes de paiement sécurisés bien connus du marché, comme CyberCash aux Etats-Unis ou CyberMut en France.
Comment faire son paiement soi-même...Les petites boutiques, au moins au démarrage, veulent parfois s'abstenir de recourir aux services (payants) d'un prestataire de paiement.Il y a au moins deux moyens de gérer votre paiement vous-même : Le paiement par Chèque ou Fax Demandez simplement à vos clients de payer par Fax (avec leur Carte Bleue) ou par Chèque, avant de traiter la commande (par exemple, affichez un bon de commande en ligne, à imprimer et à vous renvoyer...) Chiffrement SSL Si votre serveur web (ou votre hébergeur) supporte SSL, vous pouvez le configurer pour transmettre un numéro de Carte Bleue préalablement chiffré. Inconvénients :
|
OpenMarket SecureLink PaymentPage 'Paiement Sécurisé' Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog OverviewExperShop supports OpenMarket SecureLink 3.0 and later, but has not been tested against previous versions.OpenMarket SecureLink is the client access to OpenMarket Transact servers : Transact is not only a payment system, it covers all aspects of the commercial transaction, including the shopping cart, the order management, the secure payment, and the shop's back-office. When using OpenMarket SecureLink with ExperShop, you completely override ExperShop's shopping cart, order management and back-office implementation : ExperShop is only used for the shop catalog, and to interface OpenMarket Transact servers.
PlatformsCurrently, only Windows NT is supported.Contact us for needs related to other platforms. SetupThere are different steps to integrate a merchant server with OpenMarket SecureLink :
Invoking OpenMarket SecureLink from ExperShop templatesFor each item sold in your shop, you have to generate an OpenMarket SecureLink "Digital Offer" : a digital offer is an URL with parameters that calls your OpenMarket secure payment provider's server.The Digital Offer is generated by the OpenMarket libraries : it contains some encrypted information for authentication and security checks. To generate
a digital offer from an ExperShop template, you have to invoke the Then, the
Digital Offer value can be retrieved from the As it is an URL, it can be used directly in an HTTP link, example : $Action com.expershop.pay.omkt.A more complete example follows : $DefineSql LISTITEMS select * from EProduct where DeptId='sunglasses' $ExecSql LISTITEMS <ul> $LoopOnResults LISTITEMS item $Action com.expershop.pay.omkt.ESGenDoAct |
Paiement PayboxPage 'Paiement Sécurisé' Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog PrésentationExperShop supporte PayBox à partir de la version 2.0 beta 2, (aucun test n'a été effectué avec les versions plus anciennes).Les scripts CGI PayBox ne sont pas inclus dans la livraison ExperShop: vous les obtiendrez sur le site web de PayBox, ainsi que l'ouverture de votre compte PayBox. Pour plus d'information, consultez le site web PayBox
PlateformesPoure l'instant, nous n'avons testé que sous Linux (intel)...Contactez-nous pour d'autres plateformes possibles, mais rien n'indique que sur d'autres plateformes, le paiement ne marche pas. Comment fonctionne PayBox ?PayBox est un service de paiement sécurisé PAYBOX SERVICE.1 Lorsqu'un acheteur a sélectionné des produits sur une galerie, le serveur du commerce redirige l'acheteur vers le serveur PAYBOX. Ce dernier établit alors une connexion cryptée avec l'acheteur (en SSL), pour que la saisie du numéro de carte bancaire soit effectuée en toute sécurité. PAYBOX vérifie la validité de la carte auprès de la banque du commerçant, et enregistre le paiement si la carte est authentifiée. Un ticket de paiement est ensuite affiché sur l'écran de l'acheteur. Ce même ticket lui sera renvoyé par courrier électronique (e-mail), comme preuve du paiement. L'acheteur a alors la possibilité de revenir sur la galerie marchande pour effectuer d'autres achats. PAYBOX envoie également par courrier électronique un double du ticket de paiement au commerce. C'est ce ticket qui constitue la preuve du paiement par l'acheteur. Le système PAYBOX s'intègre très facilement dans tout système de galerie marchande. Il suffit d'installer sur le serveur, un module CGI fourni par 'PAYBOX SERVICES', et d'ajouter un bouton sur une des pages HTML (ou templates .tmpl) de la galerie. L'utilisation de PAYBOX nécessite la signature préalable d'un contrat VAD/VPC avec l'établissement bancaire du commerçant, et l'abonnement au serveur PAYBOX auprès de la société "PAYBOX SERVICES". Une fois remplies ces formalités, vous pourrez facilement configurer votre boutique ExperShop pour utiliser PayBox.
Configurer ExperShop pour PayBoxLes propriétés suivantes doivent être précisées dans le fichier de configuration de la boutique:
pay.paybox.Url: L'URL du module CGI (ex: http://mon_host/cgi-gin).
Installer PayBox sur votre systèmeIci, nous décrivons uniquement la procédure d'installation sous Linux, pour d'autres plateformes, nous contacter, à priori, toutes les plateformes supportées par PayBox fonctionnent.Installation sous Linux (intel) Vous devez tout d'abord télécharger sur le site de PayBox le module CGI pour Linux, copiez ce fichier dans le répertoire cgi-bin de votre serveur http, et donnez les droits d'exécution à ce fichier.
chmod 555 module.cgi Appeler PayBox depuis les templates ExperShopAppeler PayBox, cela veut dire afficher une form HTTP, généré par le module CGI de PayBox. L'appel peut être le suivant:
... $ExecSql GETCUSTOMER $LoopOnResults GETCUSTOMER cust <FORM METHOD=POST ACTION=com.expershop.lite.ExperSHOP> $Cookie <INPUT type=hidden name="Page" value="PayBox/ESRedirect.tmpl"> <INPUT type=hidden name="ActionFailed" value="PayBox/ESOrderFailed.tmpl"> <INPUT type=hidden name="email" value="$cust:Email$"> <INPUT TYPE=hidden name="Mandatory" value="ShipName,ShipAddress,ShipCity,ShipZipCode,ShipCountry,email"> ... ... ... <INPUT type=submit VALUE="Order Now!"> </FORM>Le template PayBox/ESRedirect.tmpl ne contient que les informations suivantes, et ne doit en aucun cas contenir des informations html.
$Action com.expershop.pay.paybox.ESOrderAct $PayBoxFORM$Cette action ExperSHOP appelle le module CGI PayBox, et retourne le résultat de l'appel dans un paramètre de sortie appelé PayBoxFORM .Tous les champs de l'input Mandatory sont obligatoires, ainsi que le mail de la personne. La page générée par le module CGI contient un bouton, inutile d'appuyer sur celui-ci, le client sera redirigé vers le serveur PayBox pour le paiement sécurisé. Une fois le paiement effectué, le client aura la possibilité de revenir sur la boutique avec un lien. Note: l'action ESOrderAct "pré-commande" le contenu du panier d'achat: lorsque PayBox confirmera à ExperShop le succès du paiement, la "pré-commande" deviendra une commande à part entière.
|
Paiement ATOS SIPSPage 'Paiement Sécurisé' Table Pour tout rapport de bug ou suggestion, envoyez un mèl au Support ExperLog IntroductionExperShop supporte ATOS SIPS à partir de la version 4.03 pour java.ATOS SIPS est commercialisée par Atos en direct, ainsi que par de nombreux partenaires bancaires; en voici une liste indicative et non exhaustive:
Les librairies ATOS SIPS ne sont pas incluses dans la livraison ExperShop: vous les obtiendrez d'ATOS ou de votre banque à l'ouverture de votre compte de paiement sécurisé. Pour plus d'information, consultez le site web ATOS SIPS.
PlateformesToute plateforme supportée par ATOS SIPS 4.03 pour java, soit une large gamme de plateformes Unix et Windows (nous n'avons pas testé sur MacOS).Comment fonctionne ATOS SIPS ?SIPS est un service de paiement sécurisé bancaire.Pour y accéder, vous devez disposer d'un compte bancaire professionnel généralement chez l'une des banques partenaires d'ATOS (sauf achat direct de la prestation chez ATOS, qui doit savoir fonctionner avec la plupart des banques du marché). Une fois remplies ces formalités, vous pourrez facilement configurer votre boutique ExperShop pour utiliser SIPS. SIPS communique avec un serveur de paiement, qui prend le contrôle durant toute la phase de paiement: l'acheteur tape son numéro de Carte Bancaire directement sur un serveur SIPS de la banque, qui contrôle la validitéde la transaction et accepte ou refuse le paiement; ensuite, le serveur SIPS prévient le commerçant du succès ou de l'échec de la transaction. Le service est asynchrone: la boutique est rappelée par le serveur de paiement via une requête HTTP contenant les informations relatives à l'état du paiement. Le numéro de Carte Bancaire du client est seulement connu de la banque: il n'est pas transmis au commerçant.
Configurer ExperShop pour SIPSLa propriété suivante doit se trouver dans le fichier de configuration principal d'ExperSHOP - celui spécifié dans la variable d'initialisation SHOPCONFIG (par défaut, EShop.cfg, ou EShopWin.cfg sous Windows) :pay.sips.Pathfile: Le chemin vers le fichier de paramétrage "pathfile" de SIPS. La raison pour laquelle cette variable n'est pas dans le fichier de configuration boutique est liée à la conception de SIPS; ceci induit la restriction suivante: interfacer plusieurs systèmes SIPS chez des partenaires différents depuis un même serveur ExperSHOP (par exemple, un Banque Populaire et un Crédit du Nord) est impossible sans lancer deux instances de serveur de servlet différentes sur la machine, ce qui peut nécessiter beaucoup de mémoire). Les propriétés suivantes doivent être précisées dans le fichier de configuration de la boutique: Propriétés obligatoires :
pay.sips.MerchantId: l'identifiant commerçant fourni par la banque. Propriétés facultatives :
pay.sips.MerchantCountry: Le pays d'origine du marchand.
Installer SIPS sur votre systèmeLors de l'ouverture de votre compte SIPS, divers éléments vous seront remis, parmi lesquels les librairies SIPS à installer sur votre système.Installation sous Linux (ou Unix en général)
Installation sous Windows NT Même procédure que sous Unix. Appeler SIPS depuis les templates ExperShopAppeler SIPS, cela veut dire afficher une form HTTP, générée par SIPS : cette form contient uniquement des chanps cachés ("hidden") et un bouton "submit".
ExperShop fournit une Action SIPS, via la classe
Pour afficher la form, vous devez invoquer l'action, puis afficher la valeur de SipsFORM; l'exemple suivant, lorsqu'il est copié dans un template DynHtml ExperShop, réalise les opérations nécéssaires :
$Action com.expershop.pay.sips.ESGenFormAct $SipsFORM$La ligne "$Action" invoque l'action "com.expershop.pay.sips.ESGenFormAct", puis $SipsFORM$ affiche la valeur du paramétre "SipsFORM". Notez que ESGenFormAct est une action "server-side" (on ne peut pas la mettre dans le paramètre HTTP "Action" d'ExperShop, pour des raisons de sécurité: il faut impérativement utiliser $Action pour l'appeler). L'action ESGenFormAct reçoit plusieurs paramètres facultatifs :
|
The main tasks involved in a Weblogic configuration are:
weblogic.httpd.servlet.classpath=C:/weblogic/myserver/servletclasses;c:/ExperSHOP/lib/expershop.jar;c:/ExperSHOP/InstantDB/idb.jarRegister the ExperSHOP servlets, with their init arguments; Example, on Windows:
weblogic.httpd.register.com.expershop.lite.ExperSHOP=com.expershop.lite.ExperSHOP weblogic.httpd.initArgs.com.expershop.lite.ExperSHOP=SHOPCONFIG=c:\\ExperSHOP\\EShopWin.cfg weblogic.httpd.register.com.expershop.lite.ESAdminServlet=com.expershop.lite.ESAdminServlet weblogic.httpd.initArgs.com.expershop.lite.ESAdminServlet=SHOPCONFIG=c:\\ExperSHOP\\EShopWin.cfg
http://yourhost:7001/com.expershop.lite.ExperSHOP http://yourhost:7001/com.expershop.lite.ESAdminServletesdoc/US/Appservers/enhydra3.html 0100644 0000764 0000144 00000036152 07410337712 016613 0 ustar gibello users
#!/bin/sh export CLASSPATH=/usr/local/ExperSHOP/lib/expershop.jar:/usr/local/ExperSHOP/InstantDB/idb.jar /usr/local/enhydra3.1/bin/multiserver ## more complex startup scenario - with additional environment variables ## export CMKEYDIR=/usr/local/CYBERMUT ## /usr/local/enhydra3.1/bin/multiserver -java-arg -Djava.library.path=/usr/local/ExperSHOP/etc/cmut/linux-intel
# Enhydra Multiserver Config File # ================================== # This file contains the configuration options for the # Enhydra Multiserver. Typically it is manipulated # through the Multiserver Admin application, however, # power users may wish to edit it by hand. # # Notes: # * The Multiserver only reads this file on startup. # It is thus necessary to stop and restart the server if # changes are made by hand. # * The order of the parameters in this file is not significant. # * Quotes are not required to delimit strings but are advised. # * Array parameters are specified as a comma separated list. # The parameter name is identified as an array with a "[]" # suffix. # # Server Section ----------------------------------------------------- # ============== # These options configure server-wide attributes. # # Server.ConfDir # -------------- # This is where the application's config files are stored. # Each Enhydra application has a configuration # file that must be placed in this directory in order for the # application to be visible by the Multiserver and the Multiserver # admin application. # # Server.LogFile # -------------- # This is the file where the server log is written. # # Server.LogToFile[] # ------------------ # This is a comma separated list of message types to send to the log # file specified in server.logFile. # # Server.LogToStderr[] # -------------------- # This is a comma separated list of message types to send to standard error. # # Possible logger levels: # ----------------------- # These levels will be familiar to anyone that has used the UNIX # syslog functionality: # # EMERGENCY # Panic condition. # ALERT # A condition that should be corrected immediately, such as # database corruption. # CRITICAL # Critical conditions such as had device errors. # ERROR # General errors that are not usually fatal, but must be # resolved. # WARNING # Warning condition that may need attention, although the # need is not immediate. # NOTICE # Conditions that are not error conditions, but may require # special handling such as infrequent conditions. # INFO # General informational conditions, knowledge of which will # help to keep the server in good order. # DEBUG # Messages that contain information normally of use only when # debugging an application. # CLASSLOAD # Information about the loading of application classes. Very # useful debugging class path problems. # REQUEST # The StandardLoggingFilter logs hits to this facility if # this is specified (normally it writes to it's own file). # XMLC # Information about auto-compiling XMLC pages. # XMLC_DEBUG # Debug information about auto-compiling XMLC pages. # # Server.ConfDir = "/usr/local/enhydra3.1/apps" Server.LogFile = "/usr/local/enhydra3.1/logs/multiserver.log" Server.LogToFile[] = EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, INFO Server.LogToStderr[] = EMERGENCY, ALERT, CRITICAL, ERROR, WARNING, INFO # # The above setting is for verbose output. When running as a daemon # process you may want to print out only emergencies, for example: # Server.LogToStderr[] = EMERGENCY # # Enhydra Application Section ----------------------------------------- # ========================== # Each Enhydra application is added to the Multiserver with the # following syntax. Note that multiple applications can be # defined, the only restriction is that the [APPLICATION_ID] must # be unique. # # Application.[APPLICATION_ID].ConfFile # ------------------------------------- # This is set to "filename.conf", which must exist in the directory # defined by "Server.ConfDir". # # Application.[APPLICATION_ID].Description # ---------------------------------------- # A description of the application. This is visible in the # management console. # # Application.[APPLICATION_ID].Running = yes | no # ----------------------------------------------- # This is basically the same as the start/stop buttons in the admin # app. If the server has running = no, then it will not be instantiated, # until the user of the admin app clicks on the "start" button. # Application.MultiserverAdmin.ConfFile = multiserverAdmin.conf Application.MultiserverAdmin.Description = "Multiserver Management Console." Application.MultiserverAdmin.Running = yes # Servlet Section ---------------------------------------------------- # =============== # The Multiserver is able to run standard servlets in addition to # Enhydra applications. The following syntax is # used to define a servlet. Note that multiple servlets # can be defined, the only restriction is that the [SERVLET_ID] # must be unique. # # Each servlet is defined with: # # Servlet.[SERVLET_ID].ClassName = entryClass # Servlet.[SERVLET_ID].DocRoot = Document root for servlet. # Servlet.[SERVLET_ID].Description = "A description of servlet" # Servlet.[SERVLET_ID].Running = yes | no # # where the ".classname" parameter defines the class with the # service() method and ".description" defines a description used # by the admin tool. The ".docRoot" is the full path to the # directory used as the document root for this servlet and # ".running" indicated whether to automatically start the # servlet when the Multiserver is started. # # Optionally a servlet can be further specified with the following # options: # # Servlet.[SERVLET_ID].InitArgs # ----------------------------- # This is a collection of name-value pairs that are passed to the # servlet and initial arguments. Refer to the servlet documentation # for more information. # For example: # Servlet.[SERVLET_ID].InitArgs.LogFile = /tmp/log # Servlet.[SERVLET_ID].InitArgs.Max = 256 # Servlet.[SERVLET_ID].InitArgs.Names[] = "Joe Bob", "Jane Bee" # # Servlet.[SERVLET_ID].ClassPath[] # -------------------------------- # This is set to a comma-separated list of classpath elements. The # class loader will be extended with these paths so that the # servlet can successfully load any required classes. # # Application.[APPLICATION_ID].Running # ------------------------------------ # This is basically the same as the start/stop buttons in the admin # app. If the server has running = no, then it will not be instantiated, # until the user of the admin app clicks on the "start" button. # # ExperShop main servlet Servlet.ExperSHOP.ClassName = com.expershop.lite.ExperSHOP Servlet.ExperSHOP.DocRoot = /home/httpd/html Servlet.ExperSHOP.Description = "ExperSHOP servlet." Servlet.ExperSHOP.ClassPath[] = /usr/local/ExperSHOP/lib/expershop.jar,/usr/local/ExperSHOP/InstantDB/idb.jar Servlet.ExperSHOP.Running = yes Servlet.ExperSHOP.InitArgs.SHOPCONFIG = /usr/local/ExperSHOP/EShop.cfg # ExperShop admin servlet Servlet.ESAdminServlet.ClassName = com.expershop.lite.ESAdminServlet Servlet.ESAdminServlet.DocRoot = /tmp Servlet.ESAdminServlet.Description = "ESAdminServlet servlet." Servlet.ESAdminServlet.ClassPath[] = /usr/local/ExperSHOP/lib/expershop.jar,/usr/local/ExperSHOP/InstantDB/idb.jar Servlet.ESAdminServlet.Running = yes Servlet.ESAdminServlet.InitArgs.SHOPCONFIG = /usr/local/ExperSHOP/EShop.cfg # Document root for all static HTML content Servlet.HTML.ClassName = org.enhydra.servlet.servlets.FileServerServlet Servlet.HTML.DocRoot = "/home/httpd/html" Servlet.HTML.Running = yes # For CyberMut secure payment return servlet # This is just an example - forget this if not using CyberMut Servlet.CyberMut.ClassName = com.expershop.pay.cmut.ESCgi2Servlet Servlet.CyberMut.DocRoot = /home/httpd/html Servlet.CyberMut.Description = "CyberMut return servlet." Servlet.CyberMut.ClassPath[] = /usr/local/ExperSHOP/lib/expershop.jar,/usr/local/ExperSHOP/InstantDB/idb.jar Servlet.CyberMut.Running = yes Servlet.CyberMut.InitArgs.SHOPCONFIG = /usr/local/ExperSHOP/EShop.cfg # Connection Methods Section ----------------------------------------- # ========================== # This section defines all the possible ways that the Multiserver will # accept requests. Any number of connection methods are allowable # so long as the [CONNECTION_ID] is unique. The [CONNECTION_ID] # is used when associated with an application/servlet by defining # a channel. # # Connection.[CONNECTION_ID].Type # ------------------------------- # The connection type is set to any supported connection method. # Possible types are: # # "http" # This instructs the Multiserver to directly listen for http requests on the # specified port. The port is specified with: # Connection.[CONNECTION_ID].Port = [port] # The number of handler threads my be specified with: # Connection.[CONNECTION_ID].NumThreads = [num] (optional) # The number of socket requests to queue (after accept, before processing) # may be specified with: # Connection.[CONNECTION_ID].QueueSize = [num] (optional) # The idle timeout period for a client connection, in seconds. This is the # amount of time to block without activity. # Connection.[CONNECTION_ID].ClientTimeout = [num] (optional) # The idle timeout period for a handler thread, in seconds. Shorter timeouts # minimize the number of threads (memory) while slowing response time for # bursts of activity. # Connection.[CONNECTION_ID].ThreadTimeout = [num] (optional) # # "https" # This instructs the Multiserver to directly listen for secure-http requests # on the specified port. The port is specified with: # Connection.[CONNECTION_ID].Port = [port] # The number of handler threads my be specified with: # Connection.[CONNECTION_ID].NumThreads = [num] (optional) # The number of socket requests to queue (after accept, before processing) # may be specified with: # Connection.[CONNECTION_ID].QueueSize = [num] (optional) # Connection.HttpConn8001.Type = http Connection.HttpConn8001.Port = 8001 Connection.HttpConn8002.Type = http Connection.HttpConn8002.Port = 8002 # Channel Section ---------------------------------------------------- # =============== # This section defines how applications/servlets are connected with # connection methods. Each channel entry represents an entry point # to an application than can be individually controlled. Note that # like other IDs, each [CHANNEL_ID] must by unique. # # Each channel is defined with: # # Channel.[CONNECTION_ID].[CHANNEL_ID].Servlet = [APPLICATION_ID] # or # Channel.[CONNECTION_ID].[CHANNEL_ID].Servlet = [SERVLET_ID] # # and # Channel.[CONNECTION_ID].[CHANNEL_ID].Url = [url prefix] # and # Channel.[CONNECTION_ID].[CHANNEL_ID].Filters = [FILTER_ID],[FILTER_ID] # and # Channel.[CONNECTION_ID].[CHANNEL_ID].Enabled = yes | no # # # where the ".Servlet" parameter defines the application/servlet # to connect to and the [CONNECTION_ID].[CHANNEL_ID] path defines # the connection method to connect to. # The Url should generally begin and end with a '/'. # The ".Filters" is optional and defines a # list of [FILTER_ID] that a channel is subject to. Filters are # executed in the order that they are defined. The most common use # of a filter is for logging purposes. In general, filters are an # advanced topic that is discussed in the developers guide. Channel.HttpConn8001.AdminChannel.Servlet = MultiserverAdmin Channel.HttpConn8001.AdminChannel.Url = / Channel.HttpConn8001.AdminChannel.Enabled = yes Channel.HttpConn8002.ExperSHOPChannel.Servlet = ExperSHOP Channel.HttpConn8002.ExperSHOPChannel.Url = /servlet/com.expershop.lite.ExperSHOP Channel.HttpConn8002.ExperSHOPChannel.Filters[] = StandardLogger Channel.HttpConn8002.ExperSHOPChannel.Enabled = yes Channel.HttpConn8002.ESAdminServletChannel.Servlet = ESAdminServlet Channel.HttpConn8002.ESAdminServletChannel.Url = /servlet/com.expershop.lite.ESAdminServlet Channel.HttpConn8002.ESAdminServletChannel.Filters[] = StandardLogger Channel.HttpConn8002.ESAdminServletChannel.Enabled = yes Channel.HttpConn8002.HTML.Enabled = yes Channel.HttpConn8002.HTML.Servlet = HTML Channel.HttpConn8002.HTML.Url = / # For CyberMut secure payment return servlet # This is just an example - forget this if not using CyberMut Channel.HttpConn8002.CyberMutChannel.Servlet = CyberMut Channel.HttpConn8002.CyberMutChannel.Url = /servlet/com.expershop.pay.cmut.ESCgi2Servlet Channel.HttpConn8002.CyberMutChannel.Filters[] = StandardLogger Channel.HttpConn8002.CyberMutChannel.Enabled = yes # Filter Section ----------------------------------------------------- # ============== # This section is allows filters to be defined and subsequently used # on a channel declaration. Note that each [FILTER_ID] must be unique. # # WARNING: It is the responsability of the administrator to ensure that # the CLASPATH is set up prior to running the Multiserver such that the filter # (and any classes it needs) will be found. The location of the filter # class on disk is not specified. # # Each filter is defined with: # # Filter.[FILTER_ID].ClassName = entryClass # Filter.[FILTER_ID].Description = "A description of filter" # # where the ".classname" parameter defines the class with the # service() method and ".description" defines a description used # by the admin tool. # # Optionally a filter can be further specified with the following option: # # Filter.[FILTER_ID].InitArgs # ----------------------- # This is a collection of name-value pairs that are passed to the # servlet and initial arguments. Refer to the developers guide # for more information. # For example: # Filter.[FILTER_ID].InitArgs.configFile = /tmp/filter_config # Filter.[FILTER_ID].InitArgs.myParam = myValue # # # This filter is used to log the requests as they are made to the server # (aka "hits"). If the key REQUEST is present in Server.LogToFile or # Server.LogToStderr (above), then a simple summary of the request and # response will be sent to the standard logging facility. This kind of # logging is usefull for quick debugging of an application. If the key # REQUEST is not present, then data is not sent to the standard logging # facility. # If the initial argument "logFile" (optional, below) is set, then this filter # will append data about the requests to the specified file, in a standard # format that tools like Web Analyzer can read. If no logFile is specified, # then data is not written to the file. # This filter is applied to individual channels, so only the channels # that need logging pay the overhead. # Filter.StandardLogger.ClassName = org.enhydra.servlet.filter.StandardLoggingFilter Filter.StandardLogger.Description = "Standard Enhydra Logging." Filter.StandardLogger.InitArgs.logFile = "/usr/local/enhydra3.1/logs/access.log"esdoc/US/Appservers/tomcat32.html 0100644 0000764 0000144 00000005377 07410337302 016532 0 ustar gibello users
The main tasks involved in a Tomcat configuration are:
<servlet> <servlet-name> com.expershop.lite.ExperSHOP </servlet-name> <servlet-class> com.expershop.lite.ExperSHOP </servlet-class> <init-param> <param-name>SHOPCONFIG</param-name> <param-value>/usr/local/ExperSHOP/EShop.cfg</param-value> </init-param> <load-on-startup> -2147483646 </load-on-startup> </servlet>
<Context path="/expershop" docBase="webapps/expershop" crossContext="false" debug="0" reloadable="true"/>
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name> com.expershop.lite.ExperSHOP </servlet-name> <servlet-class> com.expershop.lite.ExperSHOP </servlet-class> <init-param> <param-name>SHOPCONFIG</param-name> <param-value>/usr/local/ExperSHOP/EShop.cfg</param-value> </init-param> <load-on-startup> -2147483646 </load-on-startup> </servlet> </web-app>esdoc/US/Appservers/tomcat33.html 0100644 0000764 0000144 00000003777 07410422766 016546 0 ustar gibello users
The main tasks involved in a Tomcat configuration are:
c:\\ExperSHOP\\EShopWin.cfgSample web.xml file content:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name> com.expershop.lite.ExperSHOP </servlet-name> <servlet-class> com.expershop.lite.ExperSHOP </servlet-class> <init-param> <param-name>SHOPCONFIG</param-name> <param-value>/usr/local/ExperSHOP/EShop.cfg</param-value> </init-param> <load-on-startup> 1 </load-on-startup> </servlet> </web-app>
http://yourhost:8080/servlet/com.expershop.lite.ExperSHOP http://yourhost:8080/servlet/com.expershop.lite.ESAdminServletesdoc/US/api.html 0100644 0000764 0000144 00000004321 07216073604 013507 0 ustar gibello users
ExperSHOP - Java APIHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewExperSHOP proposes a set of Java classes so the user can easily extend ExperShop's behaviour.This includes :
|
ExperSHOP - ChangesHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support ExperShop version: 2.0 (beta 2). Version date: May 28, 2001. List of changes- Bug fix in the connection pooling - Fixed some locks in the trace configuration - Added jar files from Sun. It's no need to download these packages from the web site from Sun. List of new functionalities- Added multiplexing in the connection pooling. - Added the administration console to administrate the ExperSHOP applications. Now, no need to restart your server when you change the configuration of an application. The administration console help you to manage properties dynamically. Just a simple example, you want to increase the number of jdbc connections, now with the console, you have two ways to do the work. You can increase the number of physical connections, or increase the multiplex property, in this case, many connections to the clients will be managed by the same physical connection. - Added an upload servlet. You give the source file, the destination directory, and the return URL. - Added new payment modules: Lebonkado, PayBox,and new version of SIPS payment. - Added a Switch/Case element for the DynHtml language. ExperShop version: 2.0 (beta 1). Version date: Mars 1, 2001. List of new functionalities- ExperSHOP uses now the new JDBC service from Enhydra to manage the JDBC connections to the database. Now, the administrator can manage the pool of connections. - A new tracing system is now in place, more precise (see the documentation). - This new version integrates some bugs fixing. - Added a new DynHtml tag : $EXITLOOP, to exit from a loop - Added new behavior for $LOOPONRESULTS tag, you can now loop on a tuple and indicate the begin index and the end index: $LoopOnResults nomRequete nomTuple[(i,j)] ExperShop version: 1.1. Version date: November 27, 2000.
List of changesYou are concerned by these changes if you are using an old ExperSHOP version (download before November 27, 2000).Some bugs were fixed, mainly concerning high-traffic sites: - A memory leak when releasing user sessions. - A file descriptor that was sometimes not closed. These bugs had little impact on low and medium-traffic sites, but it is recommended to migrate to the new version. If you have an old expershop, you may have some minor problems to migrate: In case of trouble during the migration phase, e-mail us. List of new functionalitiesFor the french and european users, the ATOS sips secure payment is now supported (but not yet documented! this will be done soon, contact us if you don't find the doc on our site). And also, the DynHtml syntax improvements I described above can be helpful... |
ExperShop LiteTable of Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support This documentation will tell you how ExperShop Lite works, and how you can use it to setup your own application (like for example an online shop, or any business application including database content). The menu in the left frame tells you step by step what you should understand and do. ExperShop Lite is currently used by businesses of all sizes, from the small shop hosted by a local ISP to the large scale enterprise solution with back-office integration.
|
ExperSHOP Lite - DownloadHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support Registration FormBefore downloading ExperSHOP Lite, please register; All fields are mandatory.ExperSHOP will NOT redistribute or sell your personal information.
|
ExperShop - DynHtmlHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewDynHtml is a technology dedicated to include database and other dynamic content in HTML pages.DynHtml pages are expanded on-the-fly by ExperSHOP, and database query results are included in the HTML text (as well as other possible dynamic information, such as HTTP parameters for example). DynHtml templates are ascii files that mix HTML with specific DynHtml tags: they are expanded at run time, to display dynamic information.
How to write a DynHtml templateHere's an example of DynHtml template:
<html><body> <b>Customer List</b><p> $DefineSql GetCustomers SELECT FirstName, LastName FROM Customer $IfPresent AgeMin $AppendSql GetCustomers WHERE Age>AgeMin $Endif $ExecSql GetCustomers $IfNoResult GetCustomers There's no Customer. $Else $LoopOnResults GetCustomers cust Customer Name: $cust:FirstName$, $cust:LastName$<br> $EndLoop $EndIf </body></html> The values
of FirstName and LastName returned in the query results will appear in
the browser in place of $cust:FirstName$ and $cust:LastName$; Customer List Customer
Name: Paul, Smith Note the "$IfPresent... $Endif" statement: if the DynHtml template is invoked with an HTTP parameter named "AgeMin", a WHERE clause is appended to the SQL query.
How to expand a DynHtml pageDynHtml pages are expanded by the ExperSHOP Lite servlets: the user has nothing to do to expand the pages.
DynHtml statements$# $Action $Add $Append $AppendSql $Assign $Case $CheckNumber $ClearError $Cookie $Debug $DefVar $Div $Else $EndCase $Endif $EndLoop $EndSwitch $ExecSql $Exit $ExitLoop $ExpandFile $If $IfEe $IfEqual $IfError $IfFilePresent $IfGe $IfGt $IfLe $IfLt $IfNoResult $IfPresent $Include $LoopOnEnum $LoopOnFiles $LoopOnResults $Mul $SetCookie $Sub $Switch $System
Some formatting information can be specified, for example to format
numeric values: The format should be enclosed in parentheses, just after
the "$" character that delimits the variable (for example,
Numeric formats:
Any format supported by the java.text.DecimalFormat class. $(.00)Price$ $(##.##)TotalPrice$ Note that numeric formats can have unspecified effects when rounding numbers to integer values: particularly, (0) or (00) when applied to something else than integers.
If this is what you want to do, first round the values by using (Round),
(Ceil) or (Floor) formats.
Date formats: Other formats:
UrlEncode - URL-encode a value
(example:
DynHtml predefined variables$COOKIE$
The ExperShop session information, to be included in ExperSHOP URLs
(in HTTP links, using the <A HREF=...> tag). See also: $Cookie statement, for URLs invoked as HTML form actions. $\$
Displays a "$" character.
Data sets and data objectsA data object is equivalent to a database tuple, with attributes equivalent to database columns.
A data set is a set of data objects: for example, the result of a
database query, or the shopping cart seen as a set of items. There are two kinds of data sets: the expershop built-in data sets (like the Shopping Cart or the Shop's configuration file), and the run-time data sets (transient data sets, like database query results or string enumerations).
For example, ExperShop provides a built-in data object called
The Shopping Cart is also a data set: you can loop on cart items,
then display each item's characteristics (each item being a data object).
Of course, SQL queries are data sets, as soon as they have been
executed:
A parameter is a variable that will be considered an HTTP parameter in
the current page: it will be passed to actions if $Action is used.
(note: parameters won't be transmitted furter if the current page is
submitted as a form.
To append text to a previously defined variable or parameter, use the
A variable may be computed : $DefVar day (24 * 60 * 60) EnumerationsAn enumeration is a list of values separated by commas, or a continuous series of integers, or both; for example, you can define enumerations like this:$DefVar months Jan,Feb,Mar,Apr,May,Jun,Jul,Sep,Oct,Nov,Dec
$DefVar weekdays 1->7
The first one lists the months, the 2nd is equivalent to 1,2,3,4,5,6,7. It is valid to combine the 2 constructs: for example, $DefVar intervals 1->5,10->20
It is possible to loop on enumeration values, using the
$LoopOnEnum months mm Current Month is: $d:value$ $EndLoop $LoopOnEnum weekdays d Current day is: $d:value$ $EndLoopIn fact, an enumeration value can be considered as a data set, with tuples that contain only one column, called "value" (the reason for mm:value in the loop above).
It is possible to handle runtime errors using the
Example (most HTML forms should begin as follows in a DynHtml template):
<FORM METHOD=POST ACTION="com.expershop.lite.ExperSHOP"> $Cookie
Note that ExperShop does not use REAL cookies: in this document, "cookie" refers to session information stored on the server and associated to a session id. It is possible to store variables in the "cookie" information:
Define SQL request $DefineSql requestName sql-statement Append text to SQL request $AppendSql requestName text$AppendSql can be used in conjunction with "If... Else" statements, to complete an SQL request text. Note: If text begins with "AND" or "OR", the AND or OR string will be removed if text is the first condition of a WHERE clause. For example, appending "AND Price>10" to a query equal to "SELECT * FROM Items WHERE" will result in "SELECT * FROM Items WHERE Price>10". Then, appending "AND Price<100" will result in "SELECT * FROM Items WHERE Price>10 AND Price<100".
Execute SQL $ExecSql requestName Loop on query results $LoopOnResults requestName tupleName[(i,j)] ... $EndLoopIt is possible to add to the tuple name, the boundaries of the request, to loop from i to j. Attention, this option does not guaranty the order of the elements coming from the database. exemple : $LoopOnResults MyREQ myTuple(11,20) ... $EndLoop Display a column value (in a loop)
Handle no result case $IfNoResult requestName ... $Else ... $Endif Handle error $IfError ... $Else ... $Endif ActionsYou can execute an ExperSHOP Action from a DynHtml template, using the$Action statement (to learn more about ExperSHOP Actions,
see the DynHtml actions web page).
Syntax: Example: empty the shopping cart $Action com.expershop.actions.ESEmptyCart $IfPresent varname ... $Else ... $EndifExamples: $IfPresent FirstName $IfPresent customer:FirstName (in a loop)
$IfPresent filename ... $Else ... $EndifExamples: $IfFilePresent localFile.txt (in the current directory)$IfFilePresent /tmp/afile.txt (absolute path)$IfFilePresent f:FileName (in a loop)
$LoopOnFiles directory file Name: $file:name$, Extension: $file:ext$<br> ... $EndLoopThe directory may be relative to ESRootDir, or absolute (for example, if it starts with / on a Unix system).
$DefVar x 2.3 $CheckNumber $x$ $IfError ERROR: $x$ is not a number<br> $Else Ok<br> $Endif $ClearError
$DefVar a 1 $Add a 1 $DefVar b 2 $Div a $b$In this example, a=1, then we add 1 (a=2), then divide by the value of b (at the end, a=1).
$IfEqual varname value ... $Else ... $EndifExamples: $IfEqual City New-York $IfEqual FirstName "" $IfEqual FirstName $Name: $ $IfEqual customer:FirstName John (in a loop)Number comparisons
$IfEe varname 0 Zero! $Endif $IfLe varname 10 $varname$ <= 10 $Endif $IfLt varname $anumber$ $varname$ < $anumber$ $Endif $IfGe varname 10 $varname$ >= 10 $Endif $IfGt varname $anumber$ $varname$ > $anumber$ $Endif
$If ( expression operator expression) ... $Else ... $Endif"expression" can be : ($var1$ + 14)*3 + $var2$ "operator" can be a comparison operator, or a logical operator. Comparison operators are: < > <= >= = <> !=Logical operators are: && (logical and) || (logical or) ! (logical not)Parentheses can be used to group expressions. For example, the following construct is valid: $If $current$ >= $min$ && ! ($current$ > $max$) Current value looks ok. $Else Current value is out of range. $Endif Exit$ExitLeave the page immediately. $ExitLoopLeave the current loop immediately.
$Switch var $Case val_1 ... ... $EndCase $Case val_2 ... ... $EndCase $EndSwitchDepends on the expression value, the appropriate case is executed.
$ExpandFile filepath $ExpandFile is different from $Include: for example, a variable or an SQL query defined in the expanded file will no longer be accessible when back in the original file. filepath is relative to the directory where the current template is located.
$Include filepath $Include is different from $ExpandFile: for example, a variable or an SQL query defined in the expanded file will be accessible when back in the original file. filepath is relative to the directory where the current template is located. $System command $System executes a system command: the command output, if any, is displayed on the output HTML stream. For example, to list the files in /tmp on a Unix system: <pre> $System ls -l /tmp </pre> $Debug textDisplays text on the standard output, for debug purposes. Examples: $Debug Hello World! $Debug LastName = $LastName$
$# Comment |
ExperShop Lite - PricingIMPORTANT NOTICE: The prices
listed here will apply to release 1.x, and will be maintained until
the end of 2000.
Free Download ExperShop Lite can be download and used for development purposes at no charge, with no warranty and no support. When do I have to pay ? You have to pay:
License levels:
Prices are expressed in US Dollars (European users should add a 19.6% VAT).
ISP or Reseller specials Contact us for any specific agreement with us. You are ready to buy an ExperShop Lite license ? Contact us.
|
ExperShop - Current version and statusHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support WARNINGThe current ExperShop release is a beta version.Any feedback is welcome!
|
ExperSHOP Lite ActionsHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support What are Actions ?Actions are java classes that can be called by ExperShop to perform some tasks.
ExperSHOP comes with predefined actions: for example, the
Actions may be invoked:
Actions may receive parameters (also passed as HTTP parameters to the
servlet), and may also return parameters that will be visible to the
servlet. Actions may succeed or fail; you can associate a template to an action failure, to pretty print the error: the "ActionFailed" HTTP parameter specifies which page to display if an action fails.
ExperSHOP predefined actionsThe following actions are predefined:General-purpose actions:
Administrative actions:
Other actions:
com.expershop.actions.ESAddToCartAdd an item to the shopping cart.Input parameters:
com.expershop.actions.ESUpdateCartUpdate the cart content. Input parameters:
com.expershop.actions.ESConfigureCartConfigure the shopping cart - mainly to change the product database table.This action is reserved for advanced shopping cart functionalities. Server-side action. Input parameters:
Any parameter that starts with CONFIG_ .
Output parameters: none. com.expershop.actions.ESEmptyCartEmpty the shopping cart.This action can be used when interfacing ExperSHOP with a secure payment system that provides shop back-office functionalities: if so, the merchant may not want to use ExperSHOP's back-office, then just empty the cart when a customer order is confirmed. com.expershop.actions.ESSaveCartSave the shopping cart content.Input parameters: none. Output parameters:
com.expershop.actions.ESRestoreCartRestore a previously saved shopping cart: the shopping cart content becomes equal to the previously saved content. Input parameters:
com.expershop.actions.ESCustomerLoginLog in an existing customer. Input parameters:
com.expershop.actions.ESNewCustomerCreate a new customer in database. Input parameters:
com.expershop.actions.ESUpdateCustomerUpdate a customer in database.Input parameters:
com.expershop.actions.ESOrderActPlace Order: a new order is created, the shopping cart is emptied.This action is dedicated for check or fax payment: the status of the new order will be set to "WAITING" (stands for "waiting for payment"). Note ESOrderAct
creates an entry in the ECustOrder database table: you can affect column
values by specifying HTTP parameters in your HTML forms with the same
names as the table column values. Input parameters:
com.expershop.actions.ESCheckParamsEnforce mandatory parameters: for example, when an entry form is submitted.Input parameters:
com.expershop.actions.ESSendMailSend an e-mail.Configuration parameters:
com.expershop.actions.ESWriteFileWrite a file to the server's disk, by expanding a DynHtml template.Server-side Action, for security reasons: can be invoked using $Action only.Example (Unix):
$Assign Template ESTemplates/xml/toxml.tmpl
Input parameters:
Other ExperSHOP servletsTo upload a file: com.expershop.lite.ESUploaderServlet The com.expershop.lite.ESUploaderServlet servlet allows to upload text or binairy files. You need to specify the source file which has to be uploaded, the destination directory, and the redirection url which will be used when the upload process will be finished. The obligatory parameters are the following:
<form enctype="multipart/form-data" method="POST" action="com.expershop.lite.ESUploaderServlet"> <input type="hidden" size="20" name="urles" value="/servlet/com.expershop.lite.ExperSHOP?$Cookie$&Page=MyPage.tmpl"><p> <input type="hidden" size="20" name="overwrite" value="on"> file to upload : <input type="file" size="20" name="uploadfile" value=""><p> destination directory : <input type="text" size="20" name="uploaddirectory" value="/tmp"><p> <input type="submit" name="UPLOADSERVLET" value="UPLOAD"> </form> |
ExperSHOP Administrative ActionsHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support What are Actions ?Actions are java classes that can be called by ExperShop to perform some tasks.
ExperSHOP comes with predefined actions: for example, the
For more details, see the ExperShop actions documentation.
ExperSHOP Administrative actionsAdministrative actions are actions that can be invoked from the administration servlet only (com.expershop.lite.ESAdminServlet ).
Trying to execute them from the ExperSHOP servlet will result in an
"Access denied" error (for security reasons).
The following administrative actions are predefined:
com.expershop.admin.ESNewDepartmentCreate a new shop department. The target database table is EDepartment, and must contain at least a DeptId and a Name fields.Input parameters:
Output parameters: Upon success: none. Upon error:
com.expershop.admin.ESUpdateDepartmentUpdate an existing shop department. The target database table is EDepartment.Input parameters:
Output parameters: none com.expershop.admin.ESDropDepartmentDelete an existing department. The target database table is EDepartment.Input parameters:
Output parameters: none com.expershop.admin.ESNewProductCreate a new shop product. The target database table is EProduct, and must contain at least a ProdId, a Name and a Price fields.Input parameters:
Output parameters: Upon success: none. Upon error:
com.expershop.admin.ESUpdateProductUpdate an existing shop product. The target database table is EProduct.Input parameters:
Output parameters: none com.expershop.admin.ESDropProductDelete an existing product. The target database table is EProduct.Input parameters:
Output parameters: none com.expershop.admin.ESDropCustomerDelete an existing customer. The target database table is ECustomer.Input parameters:
Output parameters: none com.expershop.admin.ESUpdateOrderUpdate an existing shop order's status. The target database table is ECustOrder, and only the order status and payment status can be affected.Input parameters:
Output parameters: none com.expershop.admin.ESDropOrderDelete an existing shop order, including the order information header and the order items. The target database tables are ECustOrder and EProdOrder.Input parameters:
Output parameters: none com.expershop.admin.ESRemoveCanceledOrdersDelete all orders in CANCELED status, including the order information header and the order items. The target database tables are ECustOrder and EProdOrder.Input parameters: none Output parameters: none com.expershop.admin.ESRemoveProcessedOrdersDelete all orders in PROCESSED status, including the order information header and the order items. The target database tables are ECustOrder and EProdOrder.Input parameters: none Output parameters: none |
ExperShop Shop Administration toolsHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support ExperShop comes with a specific servlet dedicated for shop administration tasks:
Entering the Shop Administration ToolOnce ExperShop is installed and the demo shop works, just selecthttp://your-shop-url/servlet/com.expershop.lite.ESAdminServlet
to start with the administration tool.
You will then be requested to log in as administrator: unless you modified
the password, its default value is Type in the password, then submit the form: you are now logged as Administrator, follow the links! Order ManagementWhen a customer places an order, the order is created in the database with a status set to NEW.The administration servlet allow the shop administrator to change the order's status while processing the order: PROCESSING means the shop staff is currently processing the order, and PROCESSED means the items have been delivered to the customer. PROCESSED orders can then be deleted by the shop administrator on demand. Most update actions are performed using ExperSHOP Administrative actions, for example to update orders status or delete orders.
Catalog UpdatesThe Catalog Update tool allows the user to create/edit/delete Shop departments and Products.Most update actions are performed using ExperSHOP Administrative actions, for example to create, update or delete shop departments and products. Note this can be done directly in SQL on the database, which is faster if you wish to insert many items.
|
ExperShop Shopping CartHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewExperShop Lite includes a shopping cart: items can be added and removed from the shopping cart, and the shopping cart content can be displayed in ExperShop DynHtml templates.The shopping cart also includes facilities to calculate taxes and shipping costs.
Displaying the cart contentThe shopping cart is accessible from DynHtml templates as a predefined data set, calledShoppingCart .
For example, you can loop on the shopping cart content at any time: $LoopOnResults ShoppingCart item Item Reference: $item:ProdId$ - Price: $item:Price$<br> $EndLoopShopping cart items include the following information:
$ShoppingCart:TotalPrice$ is the total price for
the shopping cart, tax and shipping costs included.The following fields can be displayed:
Adding/Removing itemsThe following actions can affect the shopping cart content:
To remove an item from the cart, use the ESUpdateCart action (and either specify a DEL-[ItemId] parameter equal to "y", or set the item quantity to "0").
Handling products with options (colors, sizes...)When you add an item to the shopping cart (with the ESAddToCart action), you may define additional parameters to handle product options:OptionNames lists the option names (comma separated): for example, <input type="hidden" name="OptionNames" value="Color,Size">For each option, you must define an input control: the input's name is the option's name, and its value will set the option's value. Example: <select size="1" name="Color"> <option>Red <option>Blue </select> <select size="1" name="Size"> <option>10 <option>20 </select>Then, when the form is submitted, the item is added to the cart with the corresponding options set. In the page
that lists the cart content, you can retrieve the option values like this
: $LoopOnResults ShoppingCart item Name=$item:Name$, Color=$item:Options.Color$, Size=$item:Options.Size$ <br> $EndLoopNote that, in the shop admin, the options will be retrieved from the order item as $item:Options$, in a less user-friendly manner: this will display a string that looks like { Color=Blue, Size=10 } - which is enough to be human-readable. Keeping user info in the cartThe shopping cart can keep user information in memory: the information is kept as long as the cart is not emptied. To store
user information in the cart, use the ESUpdateCart or ESAddToCart actions,
with UINFO_ To retrieve
previously stored user information, use $ShoppingCart:UInfo.
The shopping cart can be associated to a tax zone and a shipping zone:
zones are affected using the
Different kinds of shipping cost calculation algorithms can be used:
Example: defining two shipping zones
For example, let's define a "Drive-In" zone for customers who come to the
shop (with free shipping, of course), and a "Home" zone for customers who
require delivery at home (we'll charge them a flat rate cost, for example
10 USD).
The definitions in the configuration file can be the following:
Note that rates are generally numbers, but you may also define intervals:
for example,
Example in Postgres syntax:
Create an input file that contains the values
Run the loader
This will generate the INSERT SQL requests to fill in your table:
save them into a file, and execute it as an SQL script in your database.
For example, 2 discount codes (a 10% "gold" discount, and a 5% "silver"
discount) can be defined as follows:
The discount code is passed as a parameter to the
For example, we may want to use the following table:
Two steps are necessary to add such a product to the shopping cart:
For example, here's the code to configure the cart as described above:
Step 2: adding an item to the cart
If using the
|
ExperShop - Application configurationHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewExperShop can support multiple shops: Each shop has its configuration file, that defines a set of properties: the database driver, user and password, the currency unit, etc...A global configuration file defines, for each shop, the path to its specific configuration. ExperShop global configuration fileThis file associates shop names to shop configuration files: it contains one entry for each shop, plus one called "default" that will be used when ExperShop is invoked with no shop name specified.If you have only one shop on the server, you can directly use this file as a shop configuration file: see next chapter for the file format. By default, the configuration file name is EShop.cfg on Unix, and EShopWin.cfg on windows, and is located in the web server's root directory for user files. This default name can be changed, by setting servlet init properties:
File Format:
default: defaultPath Shop1: shop1Path ... ShopN: shopNPathThe "default" entry is optional. Example (Windows):
default: c:\\SurfShop\\surf.cfg SurfShop: c:\\SurfShop\\surf.cfg Supermarket: c:\\Supermarket\\super.cfgNote that on windows, "\" characters in file paths must be duplicated (on Unix, a path will look like /users/SurfShop/surf.cfg). Shop Configuration FileEach shop requires a shop configuration file. The configuration
file defines the following properties:
NotesOn Windows,
if you specify file paths that include "\" characters, duplicate them
in the configuration file (example: Example (Windows): jdbc.Driver: sun.jdbc.odbc.JdbcOdbcDriver jdbc.Url: jdbc:odbc:my_shop jdbc.User: john jdbc.Password: mcenroe jdbc.MaxConn: 1 shop.Name: MyShop shop.ManagerEmail: john@myshop.com shop.ManagerTemplate: ESTemplates\\EMail\\manager.tmpl shop.AdminPassword: admin shop.Currency: USD shop.Timeout: 7200 shop.RootDir: C:\\ExperSHOP\\shops\\lite\\ESRootDir |
Administration consoleHome Page Table Please email any bug reports, comments or suggestions to ExperLog's Online Support
What is ? Installation Use Connection pool Trace configuration Application configuration Trace output on | off Clients for this application Console properties Prerequisite
What is ?An administration console is now available to manage the ExperSHOP applications. This console is an ExperShop application itself, and can be administrated too. Now, you can start and stop an application, configure the JDBC connections, manage the logs, view the client sessions, and many other tools.InstallationTo the beginning, you need the ExperShop Lite package.You can download it from the ExperLog Web Site. And you need the "administration console" package available from the download part of the web site. And to finich, do the following steps:
Use
[Connection pool]This page allows you to manage the connections pool of the database, and other jdbc parameters. On top of the page, you have the number of physical connections used.
[Trace configuration]This panel allows you to manage the "Trace Manager".
[Application configuration]This panel allows you to manage the global configuration of the application.
[Trace output]This panel allows you to view the error file of the application. These logs are available only when a log file has been set in the "Trace configuration" section.[on | off]These panels allow you to start and stop an application. By default, the application has been started.
[Clients for this application]All clients currently connected to the application are displayed. When you click on a client id, you'll see informations about him. Some of them (informations) are modifiable.
A link to the cart is here ("Link to cart"), to view its content. The configuration file of the administration console is very similar to a standard ExperSHOP application. The following properties are defined: |
Console parameters | ||
---|---|---|
Properties | Description | Default value |
console.mbeanserver | MBean server name used by ExperSHOP for the administration console. | expershop |
console.color1 | first color for the table. | "#ffffe0" |
console.color2 | second color for the table. | "#ffcc99" |
console.applicationcolor | text color. | "#ff1111" |
console.propertiescolor | properties color. | "#008000" |
console.bgcolor | background color. | "#ffffff" |
The databaseHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support Why do we need a database ?ExperSHOP Lite is backed on an SQL database.The database is used to store all the information concerning:
Which database can you use ?Any database that supports a JDBC driver.Note that all database accessible via ODBC are accessible via JDBC. How to setup your database ?You need to create some tables in your database for ExperSHOP Lite: see the next paragraph, concerning the database schema.
Database schemaThe database schema describes the database tables, with all the fields they contain (for example, a "Product" table will contain fields for the product name, the price, etc...)ExperShop Lite allows you to change the database schema so it fits your needs: for example, you can easily add new fields to the EProduct table so it reflects the structure of the products you sell. The table
names must not change. By default, ExperSHOP Lite uses the following database schema, expressed in SQL:
create table EDepartment ( DeptId varchar(20) primary key, Name varchar(64) NOT NULL, DeptImage varchar(128)); create table EProduct ( ProdId varchar(20) primary key, Category varchar(20), Name text NOT NULL, Brand varchar(32), Model varchar(32), Descrip text, Price double NOT NULL, InStock integer, StockLimit integer, ProdImage varchar(80), LargeImage varchar(80), DeptId varchar(20), Publish varchar(1)); create table ECustomer ( CustId varchar(20) primary key, LastName varchar(30) NOT NULL, FirstName varchar(30) NOT NULL, Password varchar(20), Address varchar(120), City varchar(32), ZipCode varchar(20), State varchar(32), Country varchar(32), Fax varchar(32), Tel varchar(32), Email varchar(64)); create table ECustOrder ( OrdId varchar(20) primary key, CustId varchar(20), AffId varchar(20), WlId varchar(20), OrderTime long, TotalPrice double NOT NULL, Tax double NOT NULL, ShippingCost double NOT NULL, ShipName varchar(64), ShipAddress varchar(120), ShipCity varchar(32), ShipZipCode varchar(20), ShipState varchar(32), ShipCountry varchar(32), ShipOptions text, Message text, Status varchar(10), PayStatus varchar(10), PayInfo varchar(32), CcNum varchar(20), CcExpDate varchar(12), CcName varchar(32)); create table EProdOrder ( OrdId varchar(20), ProdId varchar(20), Name text, Price double NOT NULL, Qty integer NOT NULL, Options varchar(80), Config varchar(128), primary key (OrdId, ProdId)); create table ECartSaver ( CartId varchar(32), Item text, ExpDate long); create table EAffiliate ( AffId varchar(32), Name varchar(64), Password varchar(16), Email varchar(64), Miles double );Just copy/paste the schema in a text file, and create the tables in your favourite database : this may require minor modifications in the schema, because of minor SQL syntax differences between databases.
|
Working with DatesHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewIn most cases, ExperShop uses long integers to store date/time informations: the main reason is that every database has its own Date formats, but every database can store long integers!This way of handling dates is y2k compliant, of course, as ExperShop has been designed in 1999 (with current integer formats, a problem might occur in year... 2037, but in 2037 Integers should be wider than today ;)
Displaying dates in DynHtml templatesDynHtml includes a predefined data object, called "CurrentDate", that gives access to dates relative to the currend day.For example, $CurrentDate:Now$ is the current day. CurrentDate has the following attributes:
Formats are those defined in the java.text.DateFormat class, so you can also use the predefined DateFormat.SHORT, DateFormat.MEDIUM, DateFormat.LONG and DateFormat.FULL formats; Example, $(DateFormat.SHORT)CurrentDate:Now$ will display the current date in short format. Dates can also be shifted, relative to the current time; for example, the following constructs are valid:
Converting text to date valuesThe (DateVal) modifier can be used to convert a date text to an ExperShop date value (a long integer); the date text must be of the following format: yyyy:MM:dd (yyyy is the year, MM the month and dd the day).
For example, if the "dt" variable is defined as such:
Date formatsA date can be formatted for display using the Dateformat format. For example, the current date can be displayed in yyyy/mm/dd format as follows (eg. 2001/10/25 representing October 25th, 2001):$Defvar today $CurrentDate:Now$ $(DateFormat.yyyy/MM/dd)today$The format that follows "DateFormat." corresponds to the format supported by the java.text.SimpleDateFormat java class (Java 2 SDK): the description below is an excerpt from Sun's documentation concerning the java.text.SimpleDateFormat class, and is applicable to ExperShop's date formats. (----- Sun documentation excerpt starts here -----) Format Syntax: To specify the time format use a time pattern string. In this pattern, all ASCII letters are reserved as pattern letters, which are defined as the following: The count of pattern letters determine the format.Symbol Meaning Presentation Example ------ ------- ------------ ------- G era designator (Text) AD y year (Number) 1996 M month in year (Text & Number) July & 07 d day in month (Number) 10 h hour in am/pm (1~12) (Number) 12 H hour in day (0~23) (Number) 0 m minute in hour (Number) 30 s second in minute (Number) 55 S millisecond (Number) 978 E day in week (Text) Tuesday D day in year (Number) 189 F day of week in month (Number) 2 (2nd Wed in July) w week in year (Number) 27 W week in month (Number) 2 a am/pm marker (Text) PM k hour in day (1~24) (Number) 24 K hour in am/pm (0~11) (Number) 0 z time zone (Text) Pacific Standard Time ' escape for text (Delimiter) '' single quote (Literal) '
(Text): 4 or more pattern letters--use full form, < 4--use short or abbreviated form if one exists. (Number): the minimum number of digits. Shorter numbers are zero-padded to this amount. Year is handled specially; that is, if the count of 'y' is 2, the Year will be truncated to 2 digits. (Text & Number): 3 or over, use text, otherwise use number. Any characters in the pattern that are not in the ranges of ['a'..'z'] and ['A'..'Z'] will be treated as quoted text. For instance, characters like ':', '.', ' ', '#' and '@' will appear in the resulting time text even they are not embraced within single quotes. (------ Sun documentation excerpt ends here ------)
|
ExperShop DynHtml tutorialHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support DynHtml StatementsFor a complete DynHtml statements quick reference, Click Here.
TutorialDynHtml is the way for ExperShop to publish database content in HTML pages:The main work for a shop administrator who wants to customize a shop is writing and maintaining DynHtml pages. In the ExperSHOP
Lite sample shop, the DynHtml pages are in the This tutorial details a DynHtml example, step by step. Listing products by departmentThe DynHtml page detailed here displays the list of all products in a given shop department. The output looks like this:
Now, let's have a look at the DynHtml source code expanded by ExperSHOP to generate this output. DynHtml sourceDynHtml is a blend of HTML and ExperSHOP statements, interpreted and expanded at run time.Look at the source: you can find HTML tags, and statements like $ExecSql ,
$LoopOnResults ... $EndLoop , etc...
These statements
allow to query the database, and include the query results in the generated
HTML page.
$DefineSql LISTPROD SELECT ProdId, Name, ProdImage, How it worksLet's have a look, step by step, at the DynHtml code: First, we
define an SQL query to list the products contained in a shop department;
ExperSHOP's
$DefineSql LISTPROD SELECT ProdId, Name, ProdImage,Back to HTML now: <HTML> <HEAD> <TITLE>List Products</TITLE> </HEAD> <BODY BGCOLOR=#ffffff> <CENTER>Now, let's execute the query we defined before: $ExecSql LISTPRODIf there was no result (if there's no product in the department), display "No Product Available" in the customer's browser:
$IfNoResult LISTPROD <h2>No Product Available</h2>Else, display the product list; first, let's display a table header, that looks like this :
$Else <TABLE BORDER> <TR> <TD ALIGN="CENTER"> <B><FONT SIZE=-1>Product Name</FONT></B> </TD> <TD ALIGN="CENTER"> <B><FONT SIZE=-1>Price</FONT></B> </TD> <TD ALIGN="CENTER"> <B><FONT SIZE=-1>Add to cart</FONT></B> </TD> </TR>... then, a table line for each product in the department, that looks like this:
For that, we'll use ExperSHOP's $LoopOnResults ... $EndLoop
statements,to loop on the tuples returned by the database query:
$LoopOnResults LISTPROD prod <TR>That statement means we loop on the LISTPROD query results using a variable named "prod" ("prod" is the name we assign to the data tuple). See the
link above: if the customer clicks it, the
<TD ALIGN=CENTER> <A HREF="com.expershop.lite.ExperSHOP?$COOKIE$&Page=Now, display the product's price:
<TD ALIGN="CENTER">$(.00)prod:Price$</TD>(.00) is a format directive, that tells the value should be displayed with 2 decimal digits, with default values of "0" (for instance, 20.123 will be displayed as 20.12, and 20.1 as 20.10). Display
the "Add to cart" link: if the customer clicks it, the
<TD ALIGN="CENTER"> <FONT SIZE="-1"> <A HREF="com.expershop.lite.ESCartServlet?$COOKIE$&Page=ESViewCart.tmpl $EndLoopNow the loop on the products list is ended, let's end with the table: </TABLE>The table we displayed looks like this:
The $EndIf statement marks the end of the $IfNoResult
... $Else ... $Endif statement:
$EndifNow, it's the end of the HTML page:
</BODY> </HTML> |
ExperSHOP OverviewHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support What can you do with ExperSHOP ?ExperSHOP is a lighweight java application server, based on servlets and JDBC.It includes the basic functions of an application server: database connexion pool, multi-application support, client session handling, and java business objects interface. For merchant sites, ExperShop has a built-in shopping cart and order management system, and gateways to some 3rd-party secure payment systems. ExperShop is designed to quickly develop applications, without limiting the creativity of web designers: it includes a "fusion" technology - HTML page templates with dynamic code inside, interpreted on the fly. For example, to create your own online shop : take the ExperSHOP lite sample shop, customize it to your needs, it's ready!
Which platform, web server and database can you use ?
Our Web Server best choice:
Apache with JServ or
Tomcat, or
JRun (especially for Netscape server
or IIS users).
Our database best choice: MySQL or
PostgreSQL. Our platform best choice: Linux, or Unix
in general (Windows should work too, but we made few tests). Which secure payment systems are supported ?Several systems are supported, including CyberCash, OpenMarket Transact (used by AT&T secure payment services, and many others throughout the world), CyberMut (a french system).Future versions will support more payment systems: if you have specific needs, let us know.
|
ExperSHOP - Quick Start instructionsHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support Prerequisite
InstallationFirst, we suppose you have downloaded ExperSHOP.If you don't have ExperSHOP, get it on ExperLog's Web Site. Then:
The ExperSHOP directory contains a shell script (essetup.sh) that can make
the install easier (mainly concerning InstantDB file permissions...). DynHtml pagesThey are in theExperSHOP/shops/lite/ESRootDir/ESTemplates/Shop
directory: have a look at them, along with the
DynHtml tutorial.
Running the sample shopRunning the sample shop with servletrunner
An easy way of testing the sample shop is to run it using
Windows Users:
Unix Users:
Note For InstantDB Users: You may
encounter problems with the shopping cart, due to database initializing
problems on some platforms: if the cart does not work properly, run Running the sample shop with Enhydra
Enhydra is an open-source application server, developed and maintained by
Lutris technologies. Then, after you installed Enhydra on your server, check our Enhydra configuration for ExperShop release notes:
Running the sample shop with Tomcat Tomcat is the reference implementation for java servlets, provided by Apache. It is intended to replace Apache JServ. You can download Tomcat from Apache jakarta project pages. Then, after you installed Tomcat on your server, check our Tomcat configuration for ExperShop release notes: Running the sample shop with BEA Weblogic Weblogic is the servlet and HTTP server provided by BEA systems. You can evaluate and purchase Weblogic from BEA's web site. Then, after you installed Weblogic on your server, check our Weblogic configuration for ExperShop release notes: Running the sample shop with Apache JServ You need the JServ Apache module, to run servlets (see the java apache project for more info). We'll suppose Apache and JServ are properly configured. Then:
Running the sample shop with a Netscape server Using the Netscape native servlet interface is not recommended: if you are using a Netscape server, better use JRun for servlets.
First, copy the configuration files in Java Web Server's root directory.
The configuration files are in the Then:
Troubleshooting
The demo shop has "all" traces enabled - which corresponds to a high level
of verbosity, not recommended in production environment.
|
ExperSHOP ServletsHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support ExperSHOP servletsTheir role is mainly to expand DynHtml pages to generate dynamic HTML content.Everything that concerns the session handling (who is connected) and the shopping cart management is transparent to the user. ExperSHOP Lite comes with two servlet classes:
Expected HTTP parametersThe ExperSHOP servlets expect the following HTTP parameters:
Example:
<a href=com.expershop.lite.ExperSHOP?S_=SurfShop> Bill's Surf Shop</a><br> <a href=com.expershop.lite.ExperSHOP?S_=Supermarket> Online SuperMarket</a><br>Example of a link to an ExperSHOP page, in a DynHtml page: <a href=com.expershop.lite.ExperSHOP?$COOKIE$&Page=ESListDep.tmpl> Departments</a>$COOKIE$ is expanded into all the necessary information for ExperSHOP. Page tells ExperSHOP which DynHtml page to expand when the link is clicked. See the DynHtml tutorial for more details.
Shopping Cart, and Predefined data setsIn DynHtml template pages, you can loop on data sets (like query results) and display their content.Some data sets are predefined, and always accessible:
Parameters and data sets specific to the Administration servletSee the shop administration documentation for details.
|
Version
2.1 (January 28, 2002) Changes and new functionalities |
CyberMut or PaiementCIC PaymentHome 'Secure payment' Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewExperShop supports CyberMut or PaiementCIC 1.2 and later, but has not been tested against previous versions.In the current document, "CyberMut" will be used for both "CyberMut" and "PaiementCIC", as both systems are based on the same technical platform and infrastructure. The CyberMut libraries are not included in the ExperShop software: you obtain them when setting your CyberMut account. If you speak
french, you can go to the CyberMut
home page or the PaiementCIC home
page for more information (although CyberMut offers an english-language
interface, the web site does not). PlatformsCurrently, only Linux (intel) and Windows NT are supported.Contact us for needs related to other platforms. How does CyberMut work ?CyberMut is a secure payment service operated by a french bank, Crédit Mutuel.Using CyberMut requires that you open a business bank account there, while registering with the CyberMut services. When this is done, you can easily set up your ExperShop store to use CyberMut. CyberMut runs a secure payment server, that overtakes the whole customer payment transaction: the shop gives control to the CyberMut server that requests the customer to type in his credit-card info, checks the validity of the transaction, and calls back the shop with information concerning the payment status. The service is asynchronous: the shop is called back through an HTTP request, and must provide a script there to deal with the payment results. Note that the credit-card information is never transmitted to the shop: only the bank knows it.
Configuring ExperShop for CyberMutThe following properties must be set in the shop configuration file:shop.Currency : the currency used in the shop (the standard name for the currency: for example, USD for US Dollar, EUR for Euro). pay.cmut.URL
: the CyberMut payment services URL (provided by CyberMut).
CyberMut
will ask you for information necessary to set up your account: among
the information requested, one item is the URL used for payment confirmation.
Installing CyberMut on your systemWhen registering for a CyberMut account at Crédit Mutuel, you will get all the necessary material: particularly, the CyberMut libraries to install on your system.Installing on Linux (intel) The ExperShop library is called libESCyberMut.so, located in the ExperSHOP/etc/cmut/linux-intel directory.
Principles:
Installing on Windows NT The CyberMut library involved is CMSSL.dll; the ExperShop library is ESCyberMut.dll, located in ExperSHOP\etc\cmut\win32. For that reason, your PATH needs to point to both ExperShop\etc\cmut\win32 and the directory that contains CMSSL.dll. Note that CyberMut comes with a merchant key file, to install on your system : then, you have set the CMKEYDIR environment variable to the directory where the merchant key is installed. For detailed CyberMut-specific installation instruction, see the CyberMut manual. Invoking CyberMut from ExperShop templatesInvoking CyberMut implies displaying a form, generated by CyberMut: the form has only hidden tags and a "submit" button. ExperShop
includes a CyberMut Action, of class To display the form, you have to invoke the action, then display the value of CyberMutFORM; the following example, in an ExperSHOP template, does the job:
$Action com.expershop.pay.cmut.ESGenFormAct $CyberMutFORM$The "$Action" line invokes the "com.expershop.pay.cmut.ESGenFormAct" action, then $CyberMutFORM$ displays the value of the "CyberMutFORM" parameter. ESGenFormAct receives 2 optional parameters:
|
CyberCash PaymentHome 'Secure payment' Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewExperShop supports CyberCash MCK 3.2 and later, but has not been tested against previous versions.Currently, only the credit-card payment is supported.
Quick StartYou can test the CyberCash integration against our CyberCash test account :
SetupThere are different steps to integrate a merchant server with CyberCash :
Installing the ExperShop CyberCash filesIn the ExperShop/etc/cych directory, you will find :
For PERL users : Installing the PERL scripts Go in the perl-scripts directory, then copy the CCMerchantCustom.pm and CCMerchantTest.pm files in the directory that contains the CyberCash MCK CGI scripts (depends on your MCK installation). For C users : Installing the C scripts Go in the c-scripts directory, then copy the CCMerchantCustom.c, CCMerchantCustom.h, CCMerchantTest.c and CCMerchantTest.h files in the c-scripts directory under your CyberCash MCK installation. Before doing that, you may wish to save the previous version of the files : if so, temporarily copy them somewhere else. Go in the
c-scripts/browser directory under your CyberCash MCK installation,
then compile with the makefile : Copy the generated .cgi files in the directory that contains the CyberCash MCK CGI scripts (depends on your MCK installation). Installing the templates Go in the MCK CGI directory (if you installed the MCK for testing, there's a test-mck/mck-cgi directory somewhere). Create an expershop_templates directory there, and copy the files from expershop_csk/expershop_templates in the new directory. Edit the conf/merchant_conf file, and change the "TEMPLATE_DIR=./templates" line to "TEMPLATE_DIR=./expershop_templates".
Invoking CyberCash from ExperShop templatesCyberCash is invoked from ExperShop by invoking thecom.expershop.pay.cych.ESOrderAct
action.
The action invokes the CyberCash services for payment : if the payment is successful, the shopping cart content is ordered.
Action : com.expershop.pay.cych.ESOrderActPlace Order, with CyberCash secure payment : a new order is created upon payment success, the shopping cart is emptied.If the payment fails, no order is placed, and the shopping cart remains unchanged. We recommend that the page that triggers this action be invoked through SSL (for credit-card info encryption). Input parameters
:
|
Secure PaymentHome Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support 3rd Party Secure Payment SystemsExperShop Lite does not provide built-in secure payment capabilities : it provides interface modules for third-party secure payment services.Currently, the following systems are supported :
Using your own Payment MethodSmall shops may not wish to subsribe to 3rd party payment services : payment services are not free!There are at least two ways to manage yourself the payment : Check or Fax Payment You can simply request your customers to pay by Fax (with their credit-card number) or Check, then proceed with the order only when you get paid... SSL encryption If your web server supports SSL encryption, you can simply configure it to securely transmit a credit card number : of course, you need a business bank account with credit card payment enabled. Drawbacks :
How does it work ?Most payment systems involve at least three entities :
As a merchant server tool, ExperShop includes pre-built interfaces to some market-leading payment servers, like CyberCash in Northern America or CyberMut in France. |
OpenMarket SecureLink PaymentHome 'Secure payment' Contents Please email any bug reports, comments or suggestions to ExperLog's Online Support OverviewExperShop supports OpenMarket SecureLink 3.0 and later, but has not been tested against previous versions.OpenMarket SecureLink is the client access to OpenMarket Transact servers : Transact is not only a payment system, it covers all aspects of the commercial transaction, including the shopping cart, the order management, the secure payment, and the shop's back-office. When using OpenMarket SecureLink with ExperShop, you completely override ExperShop's shopping cart, order management and back-office implementation : ExperShop is only used for the shop catalog, and to interface OpenMarket Transact servers.
PlatformsCurrently, only Windows NT is supported.Contact us for needs related to other platforms. SetupThere are different steps to integrate a merchant server with OpenMarket SecureLink :
Invoking OpenMarket SecureLink from ExperShop templatesFor each item sold in your shop, you have to generate an OpenMarket SecureLink "Digital Offer" : a digital offer is an URL with parameters that calls your OpenMarket secure payment provider's server.The Digital Offer is generated by the OpenMarket libraries : it contains some encrypted information for authentication and security checks. To generate
a digital offer from an ExperShop template, you have to invoke the Then, the
Digital Offer value can be retrieved from the As it is an URL, it can be used directly in an HTTP link, example : $Action com.expershop.pay.omkt.ESGenDoActA more complete example follows : $DefineSql LISTITEMS select * from EProduct where DeptId='sunglasses' $ExecSql LISTITEMS <ul> $LoopOnResults LISTITEMS item $Action com.expershop.pay.omkt.ESGenDoAct $item : |