Electronic Manual - SunnyShop
© SunnyScript - www.sunnyscript.com

 
Table of contents
 
Installation and configuration [go] Directory structure
[go] File transfer to the server
[go] Configuration
General information about shops [go] Successful shop planning
[go] Shop size vs. system resources
Administration panel [go] Admin menu
Shop settings adjustment [go] Edit shop parameters
[go] Consumers groups - overview
[go] Consumers groups - available consumers group settings (part 1)
[go] Consumers groups - available ... settings (part 2, payment methods)
Store management [go] Manage your own stores
[go] Create and edit stores (product tables)
[go] Create product table fields
[go] Edit or remove existing fields
[go] Category handling
[go] Table maintenance
[go] Product options (also price-/weight-/volume-affecting)
[go] Product time management
[go] Product associations
[go] Warehouse management and quantity handling
[go] Sale analysis
[go] Images / Binaries / Memos
[go] Temporarily blocking of product records
[go] User voting and comments of products
[go] Automatic backup generation (applicable to product & system tables)
[go] Re-randomization (applicable to product tables)
[go] Search requests statistics
[go] View, add, clone, update and delete product records
[go] Database import and export tools
Office tools management [go] Manage the office behind your shop
[go] Registered users database
[go] Order and payment tracking
[go] Invoice management
[go] Print address labels
[go] Send out mailings
Shop-frontend and template management [go] Access the shop-frontend
[go] Adjust product table parameters
[go] Shop-frontend customization with templates
[go] Available templates
[go] Customization of templates
Helpful hints and technical reference [go] Affiliate management with YourAffiliates
[go] Special order of product listings
[go] Advanced search features
[go] Collected technical notes and tips
[go] Forgot your admin password ?
[go] Shop-frontend and template translations
Customer services [go] Need help ? Contact the SunnyScript service department !

Smart tip: This handbook is also designed to be printed... set your printer's page orientation to landscape format, so there is enough space to place hand-written notes on the left and right margin easily.
 


 
Installation and configuration
 
SunnyScript offers an optional available installation service, if you don't want to install the software yourself.
Please contact our customer service department by e-mail for detailed information and pricing.
 
Directory structure...

The software can be installed at any place that allows the execution of CGI software: Most server systems provide a special directory called "cgi-bin" where you have to install the application, while others are not limited to a particular location.

In a common environment, we recommend to create a new sub-directory within the existing "cgi-bin" folder to separate the software from other already installed products.

Required "template.en" directory:

Inside the directory you desired for installation, please create a new sub-directory called "template.en". It's used to hold the content of "template.en" directory delivered with your software package.

Required "data" directory:

Inside the directory you desired for installation, please create a new sub-directory called "data". It's used to hold the content of "data" directory delivered with your software package.

Adjust path to Perl:

Open all program files (*.pl and *.cgi) in a text editor and change the first line "#!/usr/bin/perl" that it reflects the correct path to Perl 5 (or higher version) on your system. This is required to let your server know where the Perl interpreter is located.

Usage note: On most systems, /usr/bin/perl is already the default path to Perl and so no modifications are required.
 

File transfer to the server...

Upload all files to the created directories. If a ftp client is used, ensure to set the "ASCII transfer mode" for file submissions.

Detailed file table: Scheme: [filename | suggested place to upload (short description); file permission]:
 
Filename...
Description...
Filename...
Description...
* cgi-bin (program & data files); 755 template.en/* template.en (templates); 666
    data/* data (basic data files); 666

Important notes: Please double-check file permissions and transfer mode, otherwise the software may not work as intended. Depending upon the server configuration, different file permissions than the ones stated above may be necessary.

Smart tip: Our installation helper install.cgi makes it easier... just call it from your web browsing software (requires correct installation of this script) and it automatically checks your entire installation, adjusts permissions and fixes typical errors.
 

Configuration...

After you have uploaded all files, you may wish to start the admin panel first time to initialize the system parameters. In order to do so, please call admin.cgi with your favorite web browsing software:
 
Action to perform...
URL to call (location varies on your system, of course)...
Open admin panel http://www.sunnyscript.com/cgi-bin/ss/admin.cgi

Before you proceed, it is highly recommended to set an administration password. After this is done, access to the admin panel is granted only by authenticating yourself with the chosen password.

Now click on the button "Edit system parameters" and configure the shown parameters according your needs.

Usage note: Since all parameters are automatically filled with correct values, modifications on your side may not be required.

Directories and files:
 
Name of parameter to set...
Description...
CGI files directory
Example: /usr/www/cgi-bin/ss
Absolute path to the location of SunnyShop on your server.
"data" directory
Example: /usr/www/cgi-bin/ss/data
Absolute path to the location that holds databases and related files.
"binarydata" directory *
Example: /usr/www/cgi-bin/ss/bindata
Absolute path to the location that holds binary database content.
"templates" directory
Example: /usr/www/cgi-bin/ss/template.en
Absolute path to the location of web and mail templates.
"auth" directory
Example: /usr/www/cgi-bin/ss/auth
Absolute path to the location of session info files (e.g. passwords).

* Technical note: The software tries to create this directory at a web-accessible place (certain cgi-bin locations doesn't allow to deliver multimedia content). If you experience problems in content delivery, please move it manually to a suited location.

Platform specific settings:
 
Name of parameter to set...
Description...
Mailing program (for Unix only)
Example: /usr/bin/sendmail
Absolute path to Sendmail (or compatible) application on your server.
SMTP server
Example: smtp.sunnyscript.com
SMTP server for handling mails; when left blank, default mail application is used. This setting is required for non-Unix systems, otherwise optional.
Don't use flock
Example: Unchecked
"flock" is normally supported directly by the operating system; should it be unavailable for any reason (e.g. on Win9x, WinMe), mark this checkbox.
Admin e-mail address
Example: admin@sunnycript.com
E-mail address of the system administrator (e.g. webmaster).

URLs:
 
Name of parameter to set...
Description...
Binary directory URL
Example: http://www.sunnyscript.com/cgi-bin/ss/bindata
URL to the location that holds binary database content.
URL of CGI files directory
Example: http://www.sunnyscript.com/cgi-bin/ss
URL to the location of SunnyShop on your server.
URL of checkout script (should be secure)
Ex.: https://www.sunnyscript.com/cgi-bin/ss/checkout.cgi
URL pointing to the checkout part of SunnyShop. In order to enable SSL encryption, change the transfer protocol to HTTPS.
URL of user's help document (optional)
Example: http://www.sunnyscript.com/myhelp.htm
URL to an optional help document (not included); may also consist of an e-mail link (e.g. "mailto:support@sunnyscript.com").

Usage note: Should contain a link to your company's terms of business, customer service details or any other related document.

Various parameters:
 
Name of parameter to set...
Description...
Authentication time (in seconds)
Example: 10800
Time frame keeping user authentications active (after expiration, people must log in again); recommended range: 1 to 12 hours.
Default records per page
Example: 25
Maximum number of records (unless specified exactly) appearing on one page; recommended range: 5 to 30 records.
Max. number of links
Example: 10
Max. number of selectable links on a page flicker when displaying search results; recommended range: 5 to 30 links.
Default table (optional)
Example: firsttable
Standard table used when no specific table is called.

After you have verified all settings carefully, click on the button "Save parameters" to take over modifications to the system. It is also possible to bring back previous values with the "Let the script restore defaults" button.
 

Congratulations - you have successfully installed the software :-)

 
General information about shops

Conventions for this document:

The expression "shop" refers to the entire shopping mall and the terms "store" or "table" means a shop's department (e.g. group of similar items or a line of products; explained more detailed below).

SunnyShop is compatible with all types of currencies and all types of mass units (any specific shown is just an example).
 

Successful shop planning...

1. Multiple stores and/or product categories:

SunnyShop is able to host multiple stores under one roof as well as different product categories within each store.

So if you sell very similar goods or a small amount of different products, you just may create one store and divide your products into categories (e.g. a carpet store separated into "wool carpets", "polyester carpets", ...).

However when distributing a wide range of products, it is recommended to create multiple stores (departments) and then divide each one into categories (e.g. stores for carpets, wallpapers, paints, ..., each having its own detailed sections).

There is no general rule to say when it's time to create multiple stores instead of just having one store with different categories. But you should prefer creating multiple stores instead of a wide-spread category system for increased performance.

2.1. Determine required product database fields:

All stores have its own product databases able to manage a theoretically unlimited number of fields; each field holds product related data, like its name, description, pictures, price and other information you want to show to the customer.

Although it is possible to add, modify and delete fields later at any time, it is recommended to create a list of all required fields beforehand. In this way, you can ensure having a consistent and logical data structure.

2.2. Assign field types and edit controls:

Field types describes the content of the concerned fields closer. By default, SunnyShop uses the type "text" which accepts any input - but it can be wiser to be a bit more specific (e.g. a field like "Product picture" should be set to the type "image").

Edit controls determines how particular fields are displayed internally. By default, SunnyShop uses a single input line. But it is possible to use any edit control supported by HTML (like text boxes, radiobuttons, drop-down lists, checkboxes, ...).

Please take some time to work out suited field types and edit controls. Especially when having different people working on one database, meaningful settings will increase data consistency dramatically - and so, this makes it also easier finding a product.

Helpful hint: Confused about all this stuff ? Don't worry, the correct usage will be explained later. At this stage, you should just have a basic understanding of the shop structure.

3. Shipping, taxes, invoices & more - behind the scenes:

SunnyShop provides versatile settings for shipping and payment methods, tax handling and invoice management. The basis is a system of different consumers groups, each allowed to have its own preferences.

Each consumers group may reflect a list of specific countries and continents or a specific type of customers (e.g. retail and wholesale ones); depending upon your requirements, also other classifications are possible.

4. Check all of your planning steps:

Last but not least you should go carefully through your planning again and again. It's a matter of course that you can modify all settings later when your shop is finished, but some planning may save valuable time and efforts.

Helpful hint: We recommend to test your new shop carefully before celebrating the grand opening, e.g. by inviting selected people to evaluate it or by running internal beta-tests by yourself.
 

Shop size vs. system resources...

SunnyShop is highly optimized and supports shops with an unlimited number of different products, so the performance mainly depends upon the used server type and available system resources.

In a common system environment, you don't have to take care about this issue. However if you have more specific questions regarding this topic, please contact SunnyScript's customer service department for personal assistance.
 


 
Administration panel

The administration panel is a convenient way to work interactively with SunnyShop. You can start the admin panel by calling admin.cgi with your favorite web browsing software:
 
Action to perform...
URL to call (location varies on your system, of course)...
Open admin panel http://www.sunnyscript.com/cgi-bin/ss/admin.cgi

How to access your shop:
 

Action to perform...
URL to call (location varies on your system, of course)...
Access main entrance http://www.sunnyscript.com/cgi-bin/ss/sshop.cgi

Helpful hint: Instead of the main entrance, it's also possible to show a specific store, product category or even product first. Please refer to the chapter "Shop-frontend and template management" for more information.
 

Admin menu...

This screen allows the following actions:
 
Main menu options...
Description...
Manage product tables ("stores") Select the desired action and click on the submit button.
Order information Quick overview about incoming orders as well as links to some tools.
Manage system tables
 
Table...
Description...
... of registered users Database containing customer profiles.
... of orders Database containing processed orders.
... of invoices Database containing invoices.
 
Edit shop parameters Modify general shop parameters and create / maintain consumers groups.
Create new products table This form is intended to create a new store (department within your shop).
Change password Change admin password.
Other administrative features
 
Section...
Description...
Edit system parameters Modify system related parameters.
Edit templates Edit the layout templates.
Import / export data Import and export databases.
 

The top menu line provides additional selections (depending on the current system status):
 

Top menu options...
Description...
Admin Go to the main admin menu.
Home Browse the currently active store.
Search Search the currently active store (advanced search).
Search stats Show usage statistics of the currently active store.
View stock Browse the virtual warehouse of the currently active table.
Login / Logout Login or logout as administrator.
Restructure Modify structures and parameters of the currently active table.
Mailings Send out mailings to registered customers or table members.
Categories Manage categories for currently active table.
Add / Clone / Update / Delete Add, clone, update or delete records / products.
 

 
Shop settings adjustment
Edit shop parameters...

First of all you must configure basic system settings which take effect to the behavior of the software. Click on the button "Edit shop parameters" when you're in the admin menu.

General settings:
 

SunnyShop asks...
Description...
Shop name Name of your shop (e.g. "My sample company").
URL of site URL of your website (e.g. "http://www.sunnyscript.com"), as it will be displayed at the shop-frontend and within mailings.
Footer to be added to each e-mail Default footer being added to all outgoing e-mails; suited especially for showing your business card or advertisements.

Security settings:
 

SunnyShop asks...
Description...
Time to keep cart on server (hours) Specify the time period, shopping carts of your customers will be held in the system. Recommended range: 1 to 5 hours.

Technical note: As longer you keep the carts alive, as more diskspace is temporarily required (about 1 KB per cart).

Max. time to await payment
confirmation from card processor
It defines the time period the system waits for order confirmations from the credit card processor. Recommended value: 12 hours.

Usage note: Applicable for the payment method "Credit card real-time processing" only (described closer below).

Primary currency settings:
 

SunnyShop asks...
Description...
Primary currency prefix Type in the prefix of the standard currency (e.g. "$" for usage in "$12.34 USD").
Primary currency suffix Type in the suffix of the standard currency (e.g. " USD" for usage in "$12.34 USD").
Primary currency decimals Specify the number of decimal places in standard currency (commonly two).
Primary currency 3-digits separator Decide for a character you want to use in order to separate amounts every three digits (e.g. $1'499.80 USD or 2.700.40 EUR).
Primary currency name Type in the name of the standard currency here (e.g. "European Currency Unit").

Multi-currency settings:
 

SunnyShop asks...
Description...
Display price also in these
secondary currencies *
Type in comma separated currency codes (as set below) to display product prices also in different currencies than your standard one, e.g. "EUR,CAN,GBP".
Display totals also in these
secondary currencies *
Same as above, but this setting refers to the sub-total and total amounts shown at the shopping cart and during the checkout process.
Rates of secondary currencies Specify the secondary currencies used beside of the standard one; all currencies used in the parameters above must be set here. Use one line per definition.

Format: <Currency code>:<Currency name>:<Exchange rate>

For example:

CAN:Canadian Dollars:0.897
EUR:European Currency:1.23
GBP:British Pound:1.234

Technical note: The exchange rate uses your standard currency as basis.

* Requires a JavaScript capable web browsing software to enable this feature on the shop-frontend.

Measuring units:
 

SunnyShop asks...
Description...
Weight unit Type in the label of the standard weight unit (e.g. "kg" or "pound").
Volume unit Type in the label of the standard volume unit (e.g. "cm³" or "dm³").

Order logging settings:
 

SunnyShop asks...
Description...
Orders log file
Required by YourAffiliates
Absolute path of the log file location used by YourAffiliates (or other compatible affiliate managers) to track sale based commissions. Leave it empty to disable tracking.

Sample setting: /usr/www/cgi-bin/ya/data/sales.db

Orders log file format Select either "New release format" or "New release format, moderated" when using YourAffiliates ("Old release compatibility" is intended for elder releases of this product).
How long keep "affiliate cookie"
on user's computer (in hours)
If you use SunnyShop to place affiliate cookies (see "Helpful hints and technical reference"), then you can set the time period to hold cookies on visitor's computer.

Recommended value: 48 hours. Parameter is optional.

Popular products:

SunnyShop is able to rate products by popularity (based upon the number of shopping cart additions). In this way, you can let advertise bestsellers automatically. Popular products are generated for each unique store category.
 

SunnyShop asks...
Description...
Track products' popularity Check this button to enable tracking of popular products.
Calculate products' popularity for
this number of days
Type in the number of days used to compare products. The popularity is calculated based upon the number of cart additions made for a particular product within this period.
Show this number of pop. products
in root category
Maximum number of products shown for root categories (left column on shop-frontend). Recommended range: 2 to 10 items.
Show this number of pop. products
in sub-categories
Maximum number of products shown for sub-categories (left column on shop-frontend). Recommended range: 2 to 10 items.
Show this number of pop. products
on "popular products" page
Maximum number of products shown at the store-wide "popular products" page. Recommended range: 10 to 50 items.
Show this number of pop. products
on front page near each table
Maximum number of products shown at the initial shop-frontend screen (store listings). Recommended range: 2 to 5 products.

Technical note: This feature requires at least two product tables available.

Shopping cart layout:
 

SunnyShop asks...
Description...
Menu layout
Menu items separator Characters that will appear between the top menu items (standard value: " | ").
Main menu entries Right box (available selections): Choose entry and click on "Add" to select it.

Left box (current selections): Click on "Delete" to remove an entry or use "Up" and "Down" buttons to change entry order.

Alternatively you can type in a comma delimited list of entries manually.

"Home", "Search", "Cart",
"Checkout" and "Help" entry text *
Labels (linking text) used for top menu entries.

You can also insert image tags according valid HTML standard. "Help" allows also an e-mail address, like "mailto:support@sunnyscript.com".

Cart mode
Default cart display mode Display mode of the summarized shopping cart (left column on shop-frontend):
 
Available options...
Description...
Totals Number of items currently in cart and total amount.
Brief Brief product listings and total amount.
Full Same as "Brief", but shows all product fields.
Edit cart form Completely editable shopping cart.
 
Cart mode after adding a product Display mode of the summarized shopping cart (left column on shop-frontend), after a new product was added to the cart. Same options as before are available.
Display this page after adding a
product to cart
Display mode of the shop-frontend, after a new product was added to the cart:
 
Available options...
Description...
Products in category of
added product
Category, the added product belongs to.
Products in top category Root category of the concerned store.
Edit cart form Completely editable shopping cart form.
 
Show links to other product tables Enable this feature when having multiple product tables; links to each table will be provided at the left column on the shop-frontend.
Order of product tables Specify the order of product tables as they will appear on the shop-frontend. Choose a product table and click on "Up" or "Down" to move the table in hierarchy.

Alternatively you can type in a comma delimited list of table names manually.

Hide "out of stock" goods Enable this feature to prevent sold out products being shown at the shop-frontend (refer to the following chapter for details).
"Add one item to cart" link
Display this text or HTML code
instead of "Add one item to cart"
Type in text or HTML code that will appear instead of the default "Add one item to cart" text. In this way, also an image may be used instead of a text string.

For example: <IMG SRC="http://www.sunnyscript.com/additem.gif">

Ordering options:
 

SunnyShop asks...
Description...
Checkout settings
Allow placing order without
registering an account
Marked to allow people placing orders without the need to register before. Registered customers are stored in the table of registered users.
Store user's first name / last name
in cookies after checkout
Use this for personal greetings to returning customers. Read chapter "Helpful hints and technical reference", part "Collected technical notes and tips" for more details.
Admin's notification
Send receipt to admin Marked to send a notification to admin for each new incoming order.

"Recommend this product" feature:
 

SunnyShop asks...
Description...
Mode of "recommend this product
to a friend" feature
Allow users of the shop-frontend to recommend products to other people by sending an e-mail message together with some personal greetings.
 
Available options...
Description...
Don't show anything Disable the recommendation feature.
Show popup when link clicked Form is shown at request (popup window).
Show form when link clicked Form is shown at request (on the product page).
Always show form Form is shown on each product page.
 

"Bookmarked" products:

SunnyShop can remember products previously ordered by a particular customer and show them at a later time again for direct placement into the shopping basket.

This feature is excellent for selling goods and services which are often re-ordered, because it saves time and prevents people to always search for the same articles in the stores.
 

SunnyShop asks...
Description...
Enable bookmarked prod. tracking Mark the button to enable product bookmarking.

Technical note: Bookmarking works also without prior customer registrations, because it uses cookies to store all information remotely.

Show this number of products
on "bookmarked products" page
Maximum number of products shown on the "bookmarked products" page. Recommended range: 10 to 100 items.
Show this number of products
in "bookmarked products" column
Maximum number of products shown in the "bookmarked products" column (left colum on shop-frontend). Recommended range: 1 to 10 items.
Days to keep bookmarks on prod. Specify the number of days to keep the products bookmarked for each customer. Recommended value: 90 days.

After you have verified all settings carefully, click on the button "Save parameters" to take over modifications to the system. It is also possible to bring back previous values with the "Let the script restore defaults" button.

"Out-of-stock product" notification:

More information is available at the chapter "Store management", part "Warehouse management and quantity handling".

"New products / updated products" notification:

More information is available at the chapter "Store management", part "Warehouse management and quantity handling".

Order status change notifications:

SunnyShop is able to notify the customer when the status of an open order changes (at table of orders).
 

SunnyShop asks...
Description...
Send "Payment confirmed" notice Mark the button to send a notification when payment was received.

Technical note: Message is sent only when you change the order status manually to prevent notifying a customer mistakenly twice for online credit card payments.

Send "Shipping started" notice Mark the button to send a notification that the order is on the way.
Send "Cancellation conf." notice Mark the button to send a notification that confirms the order was cancelled.
 
Consumers groups - overview...

Consumers groups are used by SunnyShop to allow individual tax, shipping, payment and discount preferences for a particular group of customers (e.g. wholesale/retail), locations (e.g. countries/continents) or any other desired unity.

During the checkout procedure, customer selects the matching consumers group. Should you just have one consumers group active, it is automatically taken without the need to select it; however at least one group is mandatory.

Click on "Edit shop parameters" (see main admin menu) and go to "Edit consumers group settings" in order to access the consumers groups parameters.

How to create a new consumers group:

Type in the name of the new group (e.g. "European customers") and click on the button "Create new consumers group".

How to edit / remove a consumers group:

Select the consumers group from the list, click on "Delete" or "Edit" and follow the provided instructions.

How to change the sorting of consumers groups:

Select the group you wish to move around and click on either "Move up" or "Move down" button to change its position (this affects the group's order within the list appearing during the checkout process).
 

Consumers groups - available consumers group settings (part 1)...

Consumers group name:
 
SunnyShop asks...
Description...
Consumers group name Name of the current group, as it will be displayed during the checkout process.

Order restrictions:
 

SunnyShop asks...
Description...
Order sub-total
Minimum order value Type in the minimum amount of an order, before granting checkout.
Format: 12.34 (without any currency prefix or suffix)
Maximum order value Type in the maximum total amount allowed per single order.
Format: 12.34 (without any currency prefix or suffix)
Delivery location restrictions
These parameters are recommended to be set for location based consumers groups (like country, state or city divided).
Show standard country list Select this option and a pre-defined list of countries will be shown.
Deliver to these locations only Type in a list of locations to which you will deliver. Use a two-char location code and full name separated by pipe, one pair per line.

Format: <Two-char abbreviation>|<Full location name>

For example:

UK|United Kingdom
FR|France
DE|Germany

Usage note: There is no need to keep attention to specific conventions, you can invent your own list of locations depending upon your requirements.

Payment location restrictions
These parameters are recommended to be set for location based consumers groups (like country, state or city divided).
Show standard country list Enable this option and a pre-defined list of countries will be shown.
Accept payments from following
locations only
Type in a list of locations from which you will accept payments. Use a two-char location code and full name separated by pipe, one pair per line.

Format: <Two-char abbreviation>|<Full location name>

For example:

UK|United Kingdom
FR|France
DE|Germany

Usage note: There is no need to keep attention to specific conventions, you can invent your own list of locations depending upon your requirements.

Important note: Under normal conditions, all locations as defined at "Deliver to these locations only" should be also placed here.

Order form template:
 

SunnyShop asks...
Description...
"Order form" template file Choose the template file used for the order form.

Shipment (single shipping method):

Pre-requisite for weight / volume based shipping:

For weight-based shipping, system field _weight is required; for volume-based shipping, system field _volume is required. Both must contain the weight or volume intended to calculate shipping charges. Format: 12.34 (without any prefix or suffix).
 

SunnyShop asks...
Description...
Don't charge shipping Shipping charges are not calculated (e.g. already included in the product price, handled by the customer or just free of charge).
Single shipping method,
fixed amount per order
Charge a fixed amount per order.
Format: 12.34 (without any currency prefix or suffix)
Single shipping method,
use weight as base
Use a variable charge based upon the total weight of all products.

Format: Absolute amounts (positive and negative ones), percentage values.

Sample 1: 110%
Total weight = 15 kg, shipping charge = 16.50 EUR (110 % of 15 kg).
Sample 2: 110%+4.90
Total weight = 15 kg, shipping charge = 21.40 EUR (110 % of 15 kg + 4.90 EUR).
Sample 3: 90%-2
Total weight = 15 kg, shipping charge = 11.50 EUR (90 % of 15 kg - 2 EUR).

Single shipping method,
use cost as base
Use a variable charge based upon the order's sub-total (before discounts and taxes).

Format: Absolute amounts (positive and negative ones), percentage values.

Sample 1: 10%
Sub-total = 150 EUR, shipping charge = 15 EUR (10 % of 150 EUR).
Sample 2: 10%+5
Sub-total = 150 EUR, shipping charge = 20 EUR (10 % of 150 EUR + 5 EUR).
Sample 3: 20%-7.50
Sub-total = 150 EUR, shipping charge = 22.50 EUR (20 % of 150 EUR - 7.50 EUR).

Single shipping method,
use volume as base
Use a variable charge based upon the total volume of all products.

Format: Absolute amounts (positive and negative ones), percentage values.

Sample 1: 12%
Total volume = 150 cm³, shipping charge = 18 EUR (12 % of 150 cm³).
Sample 2: 12%+4.90
Total volume = 150 cm³, shipping charge = 22.90 EUR (12 % of 150 cm³ + 4.90 EUR).
Sample 3: 30%-25
Total volume = 150 cm³, shipping charge = 20 EUR (30 % of 150 cm³ - 25 EUR).

Multiple shipping methods Provide multiple shipping methods per consumers group (like overnight delivery).

Shipment (multiple shipping methods):

When selecting multiple shipping methods, set your own range of shipping methods here. Please refer to the end of the screen "Editing consumers groups". There you'll find "Edit shipment methods":
 

Possible action...
Description...
Create a shipment method Type in the desired name (e.g. "International express") and click on the button "Create new shipment method" in order to proceed.
Edit / remove a shipment method Select the shipment method from the list, click on "Delete" or "Edit" and follow the provided instructions.
Change sorting of shipment methods Select the method you wish to move around and click on either "Move up" or "Move down" button to change its position (as it will appear on the checkout screen).

Edit shipment method:

After you've selected to create or edit a shipment method, the following screen appears.
 

SunnyShop asks...
Description...
Shipment method name
Shipment method name Name of the shipment method, as it will be displayed at the shop-frontend.
Calculation
Don't charge shipping Shipping charges are not calculated (e.g. already included in the product price, handled by the customer or just free of charge).
Amount per order Charge a fixed amount per order.
Format: 12.34 (without any currency prefix or suffix)
Use weight as base Use a variable charge based upon the total weight of all products.

Format: Absolute amounts (positive and negative ones), percentage values.

Sample 1: 110%
Total weight = 15 kg, shipping charge = 16.50 EUR (110 % of 15 kg).
Sample 2: 110%+4.90
Total weight = 15 kg, shipping charge = 21.40 EUR (110 % of 15 kg + 4.90 EUR).
Sample 3: 90%-2
Total weight = 15 kg, shipping charge = 11.50 EUR (90 % of 15 kg - 2 EUR).

Use cost as base Use a variable charge based upon the order's sub-total (before discounts and taxes).

Format: Absolute amounts (positive and negative ones), percentage values.

Sample 1: 10%
Sub-total = 150 EUR, shipping charge = 15 EUR (10 % of 150 EUR).
Sample 2: 10%+5
Sub-total = 150 EUR, shipping charge = 20 EUR (10 % of 150 EUR + 5 EUR).
Sample 3: 20%-7.50
Sub-total = 150 EUR, shipping charge = 22.50 EUR (20 % of 150 EUR - 7.50 EUR).

Use volume as base Use a variable charge based upon the total volume of all products.

Format: Absolute amounts (positive and negative ones), percentage values.

Sample 1: 12%
Total volume = 150 cm³, shipping charge = 18 EUR (12 % of 150 cm³).
Sample 2: 12%+4.90
Total weight = 150 cm³, shipping charge = 22.90 EUR (12 % of 150 cm³ + 4.90 EUR).
Sample 3: 30%-25
Total weight = 150 cm³, shipping charge = 20 EUR (30 % of 150 cm³ - 25 EUR).

Weight-based shipment cost
calculation table
Similar to "Use weight as base", however you can charge lower / higher fees for different weight levels, different countries and postal codes.

Format: <Minimum weight>:<Shipping cost>:<Country code>:<PCode>

<Minimum weight>: Minimum weight level.
<Shipping cost>: Absolute amounts or percentage value (with weight as basis).
<Country code>: Limit combination to a specific 2-char location code. Optional field.
<PCode>: Limit combination to a specific postal code. Optional field.
 

Sample input...
Description...
10:5.80:DE
50:2%+3:DE
100:25:DE
10 kg to 49.99 kg -> 5.80 EUR shipping charge.
50 kg to 99.99 kg -> 2 % of weight plus 3 EUR.
Above 100 kg -> 25 EUR.

Usage notes: An unlimited number of combinations is possible. Unspecified ranges will lead into not charging shipping for them...

In above sample, delivery is free of charge for weight less than 10 kg as well as for all countries except "DE" (Germany). Double-check any made calculation table carefully !

Cost-based shipment cost
calculation table
Similar to "Use cost as base", however you can charge lower / higher fees for different sub-total amount levels, different countries and postal codes.

Format: <Minimum total>:<Shipping cost>:<Country code>:<PCode>

<Minimum total>: Minimum sub-total level.
<Shipping cost>: Absolute amounts or percentage value (with sub-total as basis).
<Country code>: Limit combination to a specific 2-char location code. Optional field.
<PCode>: Limit combination to a specific postal code. Optional field.

Please refer to weight-based table for a sample and usage notes.

Volume-based shipment cost
calculation table
Similar to "Use volume as base", however you can charge lower / higher fees for different volume levels, different countries and postal codes.

Format: <Minimum volume>:<Shipping cost>:<Country code>:<PCode>

<Minimum volume>: Minimum volume level.
<Shipping cost>: Absolute amounts or percentage value (with volume as basis).
<Country code>: Limit combination to a specific 2-char location code. Optional field.
<PCode>: Limit combination to a specific postal code. Optional field.

Please refer to weight-based table for a sample and usage notes.

Cost-weight-volume based shipment
cost calculation script
Most versatile shipping charge calculation accepting even Perl expressions (samples are included within the software).

The following variable names are reserved and hold system data (their values can be used within the calculation script):
 

Variable name...
Description...
$total Sub-total of the actual order.
$weight, $volume Total weight and total volume of the order (contains numerical value only, format: 12.34).
$country, $zip 2-char location and postal codes.

Important note: Due to their complexity, calculation scripts are recommended for experienced users only.

Value added taxes:
 

SunnyShop asks...
Description...
Tax rate
Don't charge tax No taxes are added to the order.
Flat tax rate (percentage) Charge a fix percentage of VAT; format: 12.34.
Tax rates table,
based upon sub-total
Calculate a variable VAT based upon the order's sub-total.

Format: <Minimum amount>:<Tax formula>

<Minimum amount>: Minimum sub-total level.
<Tax formula>: Absolute amounts (positive and negative ones), percentage values.
 

Sample input...
Description...
3:5.80
20:3+10%
100:13%
3.00 EUR to 19.99 EUR -> 5.80 EUR.
20.00 EUR to 99.99 EUR -> 3 EUR + 10 % of amount.
100.00 EUR and more -> 13 % of amount.

Usage note 1: You can have an unlimited number of combinations.

Usage note 2: Ranges kept unspecified will lead into not charging sales tax for them (e.g. in above sample, for less than 3.00 EUR, no tax applies).

Tax base
Determine whether or not to include shipping costs or coupons and gift certificates in the taxing base (by default, this formula is used: VAT basis = Sub-total - volume discount).
Include shipping cost in taxing base If enabled: VAT basis = ... + shipping costs
Include coupons / gift certificates
discount amount in taxing base
If enabled: VAT basis = ... - coupons and gift certificates

Discounts:
 

SunnyShop asks...
Description...
Volume discounts
Minimum order values and
corresponding discounts
Grant volume discounts based upon the sub-total.

Format: <Minimum amount>:<Discount formula>

<Discount formula>: Abs. amounts (positive, negative ones), percentage values.
 

Sample input...
Description...
100:8.60
500:3%
1000:5%+10
100 EUR to 499.99 EUR -> 8.60 EUR.
500.00 EUR to 999.99 EUR -> 3 % of amount.
1000.00 EUR and more -> 5 % of amount + 10 EUR.

Usage note 1: You can have an unlimited number of combinations.

Usage note 2: Ranges kept unspecified will lead into not granting discounts for them (e.g. in above sample, for less than 100 EUR, no discount applies).

Coupon / Gift certificate discounts
By providing a correct discount code, the concerned discount is deducted from the order's sub-total amount.
Ask user to enter coupon / gift
certificate to get discount
Mark this button in order to enable the coupon / gift certificate feature.
Enter valid coupon numbers and
corresponding discounts
Type in the coupon / gift certificate codes and corresponding discounts here.

Format: <Discount code>:<Discount formula>:<Hold flag>

<Discount code>: A-Z, a-z, 0-9 and "-" (case-sensitive).
<Discount formula>: Abs. amounts (positive, negative ones), percentage values.
<Hold flag>: Set to "1" to keep this coupon forever ("0" or empty does ignore flag).
 

Sample input...
Description...
123-aBc:3%
0987654321:9.80:0
0987654321:9.80:0
A1B2c:5%+15:1
A1B2c:5%+15:1
3 % rebate; delete coupon after used one time. *
9.80 EUR rebate; delete coupon after used one time. *
9.80 EUR rebate; keep coupon at the system. **
5 % and 15 EUR rebate; keep coupon at the system. *
5 % and 15 EUR rebate; keep coupon at the system. **
* "Remove coupon code after used one time" feature is enabled.
** "Remove coupon code after used one time" feature is disabled.

Usage notes: You can have an unlimited number of combinations. The "hold flag" is optional (if kept unspecified, it is considered as not being set).

Remove coupon code after used
one time
Mark this button in order to allow using each coupon / gift certificate code only once; after usage, the code is automatically removed by the system.

Technical note: If you wish to remove all coupon codes, but keep certain ones, enable this feature and use the "hold flag" (which has a higher priority than this option).

 
Consumers groups - available consumers group settings (part 2, payment methods)...

Free of charge:

This payment method is suited when handling "free" goods, like ad brochures & catalogues or free product samples.
 

SunnyShop asks...
Description...
Allow buyer choose "Free of charge" Mark this checkbox to enable the "Free of charge" payment method.
Deduct ordered quantity from
products with limited quantity
When having products with a limited quantity (system field _quantity set in product records), mark this button to deduct the ordered quantity from the remaining total.

Please refer to the next chapter for details regarding this feature.

Allow buyer cancel an order Check it to allow the customer to cancel an order until order processing has started. Customers will see a "Cancel order" link on their order receipts.

If an order was cancelled through the customer, you get notified by e-mail and the field "Order cancelled" (table of orders) is set to "Yes" for the concerned order.

Usage note: Disable "User can cancel order" in the table of orders as soon as you started order processing and don't wish the customer to cancel its order anymore.

Important note: Please be careful using this option.

Receipt message template Choose the template file used for the "Free of charge" receipts.

Offline payment:

This payment option applies, when you handle payment processing outside (orders are only taken, no invoices generated).
 

SunnyShop asks...
Description...
Allow buyer choose "Offline
checkout"
Mark this checkbox to enable the "Offline checkout" payment method.
Deduct ordered quantity from
products with limited quantity
When having products with a limited quantity (system field _quantity set in product records), mark this button to deduct the ordered quantity from the remaining total.

Please refer to the next chapter for details regarding this feature.

Allow buyer cancel an order Check it to allow the customer to cancel an order until order processing has started. Customers will see a "Cancel order" link on their order receipts.

If an order was cancelled through the customer, you get notified by e-mail and the field "Order cancelled" (table of orders) is set to "Yes" for the concerned order.

Usage note: Disable "User can cancel order" in the table of orders as soon as you started order processing and don't wish the customer to cancel its order anymore.

Important note: Please be careful using this option.

Receipt message template Choose the template file used for the "Offline payment" receipts.

Send invoice:

This payment option will create a customizable invoice for each order.
 

SunnyShop asks...
Description...
Allow buyer choose "Send invoice" Mark this checkbox to enable the "Send invoice" payment method.
Deduct ordered quantity from
products with limited quantity
When having products with a limited quantity (system field _quantity set in product records), mark this button to deduct the ordered quantity from the remaining total.

Please refer to the next chapter for details regarding this feature.

Allow buyer cancel an order Check it to allow the customer to cancel an order until order processing has started. Customers will see a "Cancel order" link on their order receipts.

If an order was cancelled through the customer, you get notified by e-mail and the field "Order cancelled" (table of orders) is set to "Yes" for the concerned order.

Usage note: Disable "User can cancel order" in the table of orders as soon as you started order processing and don't wish the customer to cancel its order anymore.

Important note: Please be careful using this option.

Receipt message template Choose the template file used for the "Send invoice" receipts.

Credit card real-time processing:

This payment option requires a "merchant account" registered at a payment processor. In this way, you can handle credit card payments electronically through an online payment system.

Usage note: If you process credit cards by yourself (e.g. via terminal or an electronic cash register), please refer to the payment option "Credit card manual processing" as described later.

Passing back order details from the credit card processor to SunnyShop:

After a payment has been processed (no matter, if accepted or declined), the payment processor must hand over the results back to SunnyShop. For this application, the program passback.cgi is intended.

Instruct your credit card processor to transfer all data to passback.cgi of your SunnyShop installation:
 

Action to perform...
URL to provide to payment processor (location varies on your system, of course)...
Hand over payment processing results to SunnyShop http://www.sunnyscript.com/cgi-bin/ss/passback.cgi

And here you can see how to configure SunnyShop to work together with a payment processor...
 

SunnyShop asks...
Description...
Allow buyer choose "Credit card
realtime processing"
Mark this checkbox to enable the "Credit card realtime processing" payment method.
Deduct ordered quantity from
products with limited quantity
When having products with a limited quantity (system field _quantity set in product records), mark this button to deduct the ordered quantity from the remaining total.

The following behavior options are available:
 

Possible settings...
Description...
Do not deduct Disable this feature.
Deduct after order confirmation Remaining total quantity is reduced after placing the order (before processing payment).
Deduct after pay. confirmation Remaining total quantity is reduced after payment was successfully processed.

Please refer to the next chapter for details regarding this feature.

Allow buyer cancel an order Check it to allow the customer to cancel an order until order processing has started. Customers will see a "Cancel order" link on their order receipts.

If an order was cancelled through the customer, you get notified by e-mail and the field "Order cancelled" (table of orders) is set to "Yes" for the concerned order.

Usage note: Disable "User can cancel order" in the table of orders as soon as you started order processing and don't wish the customer to cancel its order anymore.

Important note: Please be careful using this option. Providing payment refunds must be handled manually by yourself.

Generate invoice for each
transaction
SunnyShop can add an invoice to the table of invoices for each single transaction.
 
Possible settings...
Description...
Do not generate Disable this feature.
Generate, but internal use only Invoice is generated, but invisible to the customer.
Generate and show to buyers Invoice is generated and link to a printable version is shown to the customer.
 
Order confirmation message
This message confirms the order arrival ("queued for processing").
Send confirmation message to user Select at which stage in order processing an order confirmation is sent to the customer.
 
Possible settings...
Description...
Send receipt in payment
confirmation message
Don't send a confirmation before payment was surely handled by the payment processor.
Send separate receipt Send an order confirmation as soon as the order arrived (payment may be not done so far).
 
Message template Choose the template file used for the order confirmations.
Payment confirmation message
This message confirms successful payment through the credit card processor.
Pay. confirm. message template Choose the template file used for the payment confirmations.
Payment gateway configuration
Important note: All parameter settings described here must be provided by the payment processor; set them very carefully.
Name of credit card processor Type in the name of the payment processor.
Payment gateway URL SunnyShop sends all order details to this URL for payment processing.
Payment URL request method Select the submission method (GET or POST).
Form variables SunnyShop will send these variable/value pairs to the payment gateway URL.

Format: <Name of variable>=<Submitted value>
(put only one pair into a single line)

Sample 1: $cart_id=$cart_id
Submit the variable $cart_id and its assigned value.
Sample 2: account=abc123
Submit a variable called account and its fix value abc123.
Sample 3: ordertotal=$total
Take over the value from $total to a new variable.
Sample 4: name=$first_name $last_name
Put two system variables into a ne