Documentation

No results, but don't despair

Contact Support

Basic Principles

Current Version

Version 1.3.0 / 22.11.2017

Requirements

For using the Agile Shopping System you will need a web hosting server to install the system core. The web hosting should meet the following minimum requirements:

Parameter Specification / Requirements
Server Apache 2.0 under Windows/Linux
Modules and libraries:
- ionCube
- Apache mod_headers
- Multibyte String
Security SSL certificate
Programming languages PHP 5.3
Database MySQL 5

Technology

The Agile Shopping System has three logical instances:

Control Panel

The Control Panel is the place you can configure the system core and also maintain system settings and have access to all incoming data (orders, customers).

System Core API

The core API is part of the Control Panel instance and since it will be used with remote requests from external websites, it should be accessible on a public web hosting.

Public API

The public API is also part of the Control Panel instance and thus it should also be accessible on a public web hosting. This API will be used for styling the HTML elements when integrating the Agile Shopping System on external websites.

Licensing

In order to use the Agile Shopping System you will need to buy a license first. Although the system is modular and customers can choose whether to buy a license for every module, a Main License is always required. The Main License pack consists of the system core and the modules needed for adequate usage. Once the Main License has been purchased, customers can buy additional licenses for the rest of the modules they need to add.

Buying a license is permanent – there will be no subscriptions or any additional and periodical fees for using the software described with the license. Customers will have free access to all updates corresponding to the license they have purchased. New software versions or features, however, could be a matter of additional licensing.

How it works

Installation

Main license

In order to have the Agile Shopping System up and running, first you will need to install the system core, which is part of the Main License pack and requires the following actions:

  1. Unzip and upload the installation pack into a folder which can be accessed in a browser.
  2. Change folder permissions for /data/uploads/ and /tmp/ (with all subfolders included) to 777.
    This step may not be necessary if the hosting environment is correctly set and you are using the right FTP user for uploading all files.
  3. In case the chosen main folder is not the root public folder on the hosting server, edit the .htaccess file and add the relative folder path before index.php on line 45. For example:
    RewriteRule ^(.*)$ /chosen_folder/index.php?url=$1 [QSA,L]
  4. In case the chosen main folder is not the root public folder on the hosting server, edit the config.php file and add the relative folder path for variable urlExtend on line 16. For example:
    'urlExtend' => 'chosen_folder/'
  5. Open the file /cdn/js/lib.js and change the apiUrl and host variables to correspond to the hosting path to the system. For example:
    apiUrl : '//www.domain.com/chosen_folder/',
    host : '\/\/www\.domain\.com\/?',
  6. Create a new database and a user with full access for that database.
  7. Change the permissions for the file mysql_config.php to 666.
    This step may not be necessary if the hosting environment is correctly set and you are using the right FTP user for uploading all files.
  8. Make sure you have ionCube installed on the server, otherwise the software system cannot be installed.
  9. Run the /chosen_folder/install/ script in a browser and follow the steps by filling in the installation form.
    You will need to have the software license key and licensing data on disposal!
    Installation Step 1 Installation Step 2
  10. Delete the /install/ folder upon successful installation.

Once you have the system installed, you will be informed for the URL to access the Control Panel. The things you need to do when you enter the Control Panel for the first time, are:

  1. Edit the main administrator password in the profile using the link Edit profile at the top right corner. Installation Step 3
  2. 2. Edit the settings for sending e-mails (to customers, administrators, and agents) using section System Settings > Mail. Installation Step 4
  3. 3. Add your company financial data (which will be used for payments when placing orders) in section Content Setup > Financial data. Installation Step 5

There are several automatic scripts for exporting orders and customers' data, and also maintaining customers' sessions, which should be added to the crontab set up on the hosting server. The scripts are located in the /cron/ folder of the system and should be ran using absolute path to the php files. Here is a brief explanation of those scripts:

  • cron_orders.php - used for sending a CSV export with the latest (new) orders placed on the system to the general Admin E-mail (System Settings > Mail). Should run on a daily basis.
  • cron_users.php - used for sending a CSV export with the customers' data from the latest (new) orders placed on the system to the general Admin E-mail (System Settings > Mail). Should run on a daily basis.
  • session_clear.php - used for cleaning customers' sessions from the server log.
  • tmp_clear.php - used for cleaning temporary files. Should run on a daily basis.

Additional modules

When you buy additional module(s) with your Main License purchase, those modules will be included in the installation pack you will receive and there will be no additional installation required.

When you buy additional module(s) in a separate purchase (that means you already have the Main License installed on your server) you will receive a new installation pack. Follow these steps to have that pack added to your Agile Shopping System:

  1. Unzip the installation pack.
  2. Upload and overwrite the content of the new pack to the root folder of your Agile Shopping System installation.
    The additional installation pack may include folders /cron/ and /modules/ - whatever files and subfolders are included in these two folders should be uploaded and should overwrite any existing content on your server.
Once you have the system updated, you can log in to the Control Panel and start using it with the new modules.

Depending on which additional module(s) you have purchased, there will be several new automatic scripts to be added to the crontab set up on the hosting server. The scripts are located in the /cron/ folder of the system and should be ran using absolute path to the php files. Here is a brief explanation of the new scripts:

  • cron_report_daily.php - used for sending PDF reports to website Agents (included in module "Commissions/Affiliates"). Should run on a daily basis.
  • cron_report_weekly.php - used for sending PDF reports to website Agents (included in module "Commissions/Affiliates"). Should run on a weekly basis.
  • cron_report_monthly.php - used for sending PDF reports to website Agents (included in module "Commissions/Affiliates"). Should run on a monthly basis.
  • send_reports_mails.php - used for sending PDF reports to website Agents (included in module "Commissions/Affiliates"). Should run on a daily basis.
  • cron_sessions.php - used to maintain and force close to old/unused customers' sessions (included in module "Sessions"). Advisable period for running this script is three months.

Usage

Once the Agile Shopping System main license is successfully installed, you can use the system on external website(s) following these instructions:

Initialization

The public part of the system is represented by product purchase forms and shopping cart module. In order for these to be available, you will first need to initialize the system which should be done on each and every HTML page where you will apply product forms. The initialization can be done by adding the following JavaScript code at the bottom of the HTML code, before closing the </body> tag:

<script type="text/javascript" src="//www.domain.com/chosen_folder/init/"></script>
Please note the configuration for the chosen public location of the system core

Shopping Cart / Basket

Once the system has been successfully initialized you can also add the HTML code to represent the shopping cart/basket on your page. This can be done by adding the following code:

<div id="agile-shopping-basket"></div>
It is advisable but not required to also add <div style="clear:both;"></div> before and after the shopping cart code above in order to have the basket element separated from other HTML elements on the page.

The successful initialization of the shopping cart/basket code will result in having the following element on the page:

Checkout button
The currency sign depends on the currency chosen in the Control Panel module of the system for this particular domain/website.

The layout of the element also depends on the chosen skin.

Products

Once the system has been successfully initialized you can also add the HTML code to represent the products that can be purchased on your page. This can be done by adding the following code somewhere on your page:

<div class="agile-shopping-product" data-width="200" data-product-number="Product number" data-name="Product name" data-price="1:10.00;2:9.00;3:8.00"></div>
The code above represents the minimum required attributes which should be set for a product to be initialized.

The required attributes are:

  • class: This attribute should be literally presented with the value "agile-shopping-product".
  • data-product-number: This attribute should define the product number that will be used in future orders. The value of the attribute can include any text except for double quotes.
    The value of this attribute for each product should be unique!
  • data-name: This attribute should define the product title that will be used in future orders. The value of the attribute can include any text except for double quotes.
  • data-price: This attribute should define the price of the product. The attribute allows defining different prices for different quantities, and should contain data using the following format:
    "<quantity_integer>:<price_float>;<quantity_integer>:<price_float>;<quantity_integer>:<price_float>"
    You can have as many quantity definitions as you need. By leaving only one definition (for example: "1:10.00", you will define that the product will have the same price for every number. If you have set different quantity prices, the last one will be used for all quantities above it. For example: data-price="1:10.00;2:9.00;3:8.00" will mean that a single product will cost 10.00, two products will cost 9.00 each, three products (and for more than three) will cost 8.00 each.

There are also optional attributes that can be added to the code and which can be used to enrich the product form:

  • data-weight: This attribute can be added to specify the weight for a product. The attribute can have decimal values (1; 1.000; 1.250). The measure of weight does not matter since the system is using this value to calculate the overall weight of the ordered products and thus calculate the delivery price. Example: data-weight="1.200".
    If the weight attribute is not present and, at the same time, all delivery methods are based on this attribute, the delivery calculation will always return 0.
  • data-button-text: This attribute can be added to change the text value on the buy-button. For example: data-button-text="ADD" will change the word "buy" with "add".
  • data-width: This attribute can be used for modifying the width of the product form. The attribute should only have integer values (in pixels).
  • data-category: This attribute can be added to assign the product to a category which has been created in the Control Panel module. The categorization can be used on a later stage for future statistics, as well as for specifying discounts on category level.
    The attribute should contain the exact value of the "Key" record of the category in the Control Panel; in case a non-existing category key is used, the product form will not be initialized.
  • data-parameters: This attribute can be added to add a new parameter to the product purchase form. The parameters need to be created in the Control Panel module first. A parameter can be selection of a list with weights, sizes, colors, or anything else.
    The attribute should contain the exact value of the "Key" record of the parameter in the Control Panel; in case a non-existing parameter key is used, the product form will not be initialized.

    You can add more than one parameter using the same attribute by separating the key values for each parameter with a comma. For example: data-parameters="Weight,Color,Type".
  • data-comments: The presence of this attribute will add a comment field to the product purchase form. The value of the attribute does not matter - the system will only lookup for its presence.
  • data-discounts: The presence of this attribute will add a field for discounts to the product purchase form. The value of the attribute does not matter - the system will only lookup for its presence.

Here is an example of the HTML code for initializing a product purchase form using all attributes (including the optional ones):

<div class="agile-shopping-product" data-button-text="ADD" data-width="350" data-product-number="452-01" data-name="Product name 2" data-price="1:10.00;2:8.00;3:7.50" data-discounts="1" data-category="Category 1" data-parameters="Color" data-comments="1" data-discounts="1" data-weight="2.200"></div>

Examples of graphical representation of different product purchase forms:

Product element
When defining product attributes you need to use values corresponding to the parameter in the Control Panel, otherwise the product form will not be initialized.

In the Control Panel there is a section where you can easily generate the HTML snippet code. The section is located in Content Data > Generate product code.

Customization

If you want to be able to change the layout of the product elements and/or the checkout forms, you can use your own style sheet files. The easiest way to do that is at the initialization step by adding two variables to the script source location:

<script type="text/javascript" src="//www.domain.com/chosen_folder/init/?useLocalCSS=true&localCSS=//www.domain.com/local-css-path/local-css-file.css"></script>
Please note the configuration for the chosen public location of the system core.

The value for the useLocalCSS variable should be set true (it's default value is false even if it's not present).

The value for the localCSS variable should contain the exact relative path where your CSS file is located (preferably including the domain name.

Ordering Process

Each click on the "buy" button (the button title may be different) for a product will add the product to the shopping cart also remembering the values of all available attributes (defined by administrator during the initialization stage) and parameters (defined by the customer). Clicking on the cart button itself will open a modal window where the actual ordering/checkout process will be handled.

The checkout process consists of the following steps:

Cart preview

The first step in the checkout process will allow the customer to preview the chosen products and:

  • Change each product quantity.
  • Change the values of the attributes for each product.
  • Add and/or remove discount codes (for products with initialized discount attribute).
  • Remove products from the list.

Each of the above events will update the cart content and the sub-total price.

Example of graphical representation for the step:

Cart Preview
Personal data

The second step will require entering personal billing and shipping details from the customer. Any future taxes will be calculated and added to the order total based on the country and state selected in this step.

Example of graphical representation for the step:

Personal data
Delivery methods

This step will allow the customer to select one of the existing delivery methods (created in the Control Panel). Depending on the selected delivery method, the price (based on either the overall products weight, or the current sub-total amount) will be recalculated and updated.

Having delivery methods for every website is not mandatory, i.e. customers will be able to place orders even without delivery.

Example of graphical representation for the step:

Delivery methods
Payment methods

This step will allow the customer to select one of the existing payment methods.

Having at least one payment method selected for every website is mandatory, i.e. customers will not be able to place orders without a payment method.

Depending on the settings in the Control Panel for each website, there are 4 possible payment methods to choose from:

  • Collect on delivery.

    Selecting this method will not require any additional data from the customer.

  • Bank transfer.

    Selecting this method will not require any additional data from the customer.

  • Credit card (real time through Authorize.net).

    Selecting this method will require and verify customer credit card data and perform automatic payment in real time using the Authorize.net services. The credit card data will not be stored in the database.

  • Credit card.

    Selecting this method will also require and verify customer credit card data, but there will be no payment. Instead, the data will be stored in the database and remain on disposal for future usage and batch payments from the administrators.

    Storing credit cards information in the database may require additional legal advice before starting sales.
  • PayPal.

    Selecting this method will open the PayPal payment gateway in the current browser tab.

    Note that once people click on the button to proceed to PayPal, the current modal window will close and they will be redirected to another domain. When the payment is either finished or cancelled in PayPal, people will automatically return to your website root folder.

Example of graphical representation for the step:

Payment methods
Confirmation

Upon successful completion of all previous steps, a confirmation will appear that the order has been placed. The details of the order will be included in this step with a button for printing the data. Closing the modal window after this step will prepare the cart for new orders.

Control Panel

Below you will find a description of all modules included in the Control Panel for managing the customers/orders data and setting up the Agile Shopping System.

Dashboard

The home page of the Control Panel contains basic statistical data about what has recently happened.

  • Total number of active websites.
  • Total number or orders for all websites.
  • Number of orders with status New.
  • Total number of orders for each website.
  • Number of orders for each website with status New.
Control Panel - Dashboard

Sales

This section consists of several modules for managing orders, customers, commissions, and sessions.

Orders

This module will include a list of all orders placed on all websites using the system. The following operations are available:

  • Search/filter orders by number, status, website origin, dates (from-to), user name, e-mail, country, address.
    Control Panel - Orders - Search
  • Export orders in CSV file.
    Control Panel - Orders - Export to CSV
  • Change order status.
    Control Panel - Orders - Status change
    All orders are stored with status New at first. You can change this status to Processed, Shipped, and Cancelled. Selecting status Shipped will open two fields where you can optionally add the name of the Delivery Company and the Tracking ID - this information will be sent to the customer.

    Changing the order status will automatically send an e-mail to the customer, which content you can control in section Notifications > To user > Change status.
    Control Panel - Notifications - To user - Status change
    When editing the content of the e-mail, you can use dynamic variables which will be replaced with real data for the particular order and customer.
    Control Panel - Notifications - Dynamic variables
  • Preview order details.
    Control Panel - Orders - Preview
    Status change is also available in the Preview mode.
  • Send notification to customers.
    Control Panel - Orders - Notifications - Send
    Sending notification will actually send an e-mail to the customer and can be used for briefly notifying him/her about anything concerning the order processing. The content of the e-mail to be sent to the customer can be managed in section Notifications > To user > Order notification.
    Control Panel - Notifications - To user - Order notification
    When editing the content of the e-mail, you can use dynamic variables which will be replaced with real data for the particular order and customer.
    Control Panel - Notifications - Dynamic variables
  • Preview notifications history.
    Control Panel - Orders - Notifications - History
    Notifications history is also available in the order Preview mode.

Customers

This module will include a list of all customers who have placed orders on all websites using the system. The following operations are available:

  • Search/filter customers by website origin, dates (from-to), user name, e-mail, country, address, and order status.
    Control Panel - Customers - Search
    Since by default the list will include all customers grouped by their orders, this will mean that the same person can appear more than once if he/she has placed more than one order. For that reason, there is a selection in the filter called Unique and if it is checked, those customers will only appear once.
  • Export customers in CSV file.
    Control Panel - Customers - Export to CSV
  • View all orders placed by a customer.
    Control Panel - Customers - Orders

Commissions

The module is only available if "Commissions/Affiliates" license is purchased.

This module will include statistics for collected commissions for each website using the system. The list will consist of all orders with status other than New. The following operations are available:

  • Search/filter commissions by order website origin, order dates (from-to), and Agent name.
    Control Panel - Commissions - Search
    Filtering by Agent name is only available if "Commissions/Affiliates" license is purchased.
  • Export commissions in CSV/PDF file.
    Control Panel - Commissions - Export to CSV

Sessions

The module is only available if "Sessions" license is purchased.

This module will be used to provide thorough information about all customers' sessions on the websites, including those who haven't completed their orders. The module can be used for customer support finding a specific session and exploring the steps the customer has gone through.

The main module page contains statistical data for the currently month and overall about:

  • The number of Active Sessions – people who have visited one of the websites using the system, but still haven’t completed an order and their first visit was made within the last three months.
  • The number of Inactive Sessions – people who have visited one of the websites using the system, but still haven’t completed an order and their first visit was more than three months ago.
  • The number of Success Sessions – people who have successfully completed orders on one of the websites using the system.
  • The number of Total Sessions – sum of all sessions above.
Control Panel - Sessions - List

Clicking on any number in the data above opens a full list with the selected sessions with the following actions are available:

  • Search/filter sessions by status, IP address, name of a product, user name, website origin, dates (from-to), order number, operating system, and browser.
    By default the list will include all sessions no matter if the customer has added a product to the shopping cart, or not. For that reason, there is a selection in the filter called No empty sessions and if it is checked, only sessions with added products will appear on the list.
    Control Panel - Sessions - Search
  • View session details containing full information about the data entered by the customer, the products they added to the shopping cart, and thorough information about every step they went through.
    Control Panel - Sessions - View

Catalog

This section consists of several modules for managing categories and attributes which can be initiated with the products, as well as generate HTML snippet codes for products.

Categories

This module will be used for managing the list of categories which can be used for basic categorization of the products.

The customers will not see these categories, but they can be used for adding discounts and future statistical usage when analyzing data from the orders.

The following operations are available:

  • List categories. Control Panel - Categories - List
  • Create categories:
    • Key: the category key which will be used in product snippets.
      It is advisable not to use spaces and special characters in category key as these values will be used in product initialization snippets.
    • Name: the title of the category.
    • Active: yes/no.
    Control Panel - Categories - Edit
  • Edit categories.
    Once a product has been initialized in a category and then purchased in order, the category record can still be edited, but the Key value will remain the same since this would change the record values and thus make impossible future check-up or verification for older activity.
  • Delete categories.
    Once a product has been initialized in a category and then purchased in order, the category record cannot be deleted since this would change the record values and thus make impossible future check-up or verification for older activity.

Parameters

This module will be used for defining custom attributes which can be added to the products and thus create different values in the ordering process. Such attributes can be either a field for adding comments, or for selecting options.

First, you will need to create parameters. The following details will define each parameter:

  • Key: the parameter key which will be used in product snippets.
    It is advisable not to use spaces and special characters in category key as these values will be used in product initialization snippets.
  • Name: The title of the attribute. For example: color, packing.
  • Type:
    • Single value: The attribute will appear as a checkbox.
    • Select box: The attribute will appear as a drop-down list of options.
    • Multiple-select box: The attribute will appear as a drop-down list of options with multiple selection.
    • Free text: The attribute will appear as a free text area. The following options should be defined for this type:
      • Text: The area will be restricted to text only.
      • Digits: The area will be restricted to digits only.
      • All: No restrictions.
  • Required: Defines whether the attribute should be mandatory for customers to add the product to their cart.
  • Active: yes/no.
Control Panel - Parameters - Edit

In case the type of a parameter is Select box, or a Multiple-select box, the specific values/options for this parameter can be created using the action Values in the list with parameters.

Control Panel - Parameters - List Control Panel - Parameters - Values - List

The following values will be managed for each record

  • Name: The public title of the value. For example: red, blue (for parameter "Color") or 2lbs, 5lbs (for parameter "Size").
  • Label: The system amount for this value that will be used for calculations. This is important for parameters like “Size” where a “weight” can be used for calculating delivery service price.
  • Default: Defines whether the value should be selected by default in the product box.
  • Active: yes/no.
Control Panel - Parameters - Values - Edit
For both the parameters and their values available operations are editing and deleting. However, once a product has been initialized then purchased with selected value of parameter, neither the parameter, nor the value records could be deleted since this would change the record values and thus make impossible future check-up or verification for older activity. Editing is also limited in these cases – the field Key (for parameter values - Name) cannot be changed.

Generate product snippets

This module can be used for automatically generating the HTML snippet code which can be used by copy-paste for initializing a product on a public website. Entering data for each parameter field automatically updates the content of the box at the bottom of the page where the final HTML snippet code is generated.

The required attributes are:

  • Product name: This attribute should define the product title that will be used in future orders.
  • Product number: This attribute should define the product number that will be used in future orders. The value of the attribute can include any text except for double quotes.
    The value of this attribute for each product should be unique!
  • Prices: This attribute should define the price of the product. The attribute allows defining different prices for different quantities.
    You can have as many quantity definitions as you need. By leaving only one definition (for example: 1:10.00, you will define that the product will have the same price for every number. If you have set different quantity prices, the last one will be used for all quantities above it. For example: 1:10.00, 2:9.00, 3:8.00 will mean that a single product will cost 10.00, two products will cost 9.00 each, three products (and for more than three) will cost 8.00 each.

The optional attributes are:

  • Category: This attribute can be added to assign the product to a category.
  • Parameters: This attribute can be added to add a new parameter to the product purchase form.
  • Weight: This attribute can be added to specify the weight for a product. The attribute can have decimal values (1; 1.000; 1.250). The measure of weight does not matter since the system is using this value to calculate the overall weight of the ordered products and thus calculate the delivery price.
    If the weight attribute is not present and, at the same time, all delivery methods are based on this attribute, the delivery calculation will always return 0.
  • Button text: This attribute can be added to change the text value on the buy-button. For example: ADD will change the word "buy" with "add".
  • Width: This attribute can be used for modifying the width of the product form. The attribute should only have integer values (in pixels).
  • Comments: The presence of this attribute will add a comment field to the product purchase form.
  • Discounts: The presence of this attribute will add a field for discounts to the product purchase form.
Control Panel - Generate product snippets

Local products

This module is designed to help running affiliate business along with the modules for managing websites and agents. Using this module you can create a database with local products and then let affiliate websites sell those products by only sending them small HTML snippets. Unlike regular products which can be customized for on your own websites, you will need affiliates to sell product through your system without the option to change any parameters, such as prices, product numbers, etc.

Creating a local product is very similar to generating product snippet code (described in the previous module) – you will be filling the same form with the same fields. However, there are a few new things added to this functionality:

  1. Exclude fields on specific domains – an option to remove the fields for discount, comment or parameter on domains/websites where you don’t need them to appear. There are three fields where you can start typing domain/website name and add it to the selection (you can add multiple domains):
    • Remove discount field from the product applet on the following websites.
    • Remove comment field from the product applet on the following websites.
    • Remove parameters from the product applet on the following websites.
    Control Panel - Local products - Add
  2. A “Product container” rich text area where you should put the {$PRODUCTCODE} variable and then add some formatting if you need to enrich the product form.
    Control Panel - Local products - Add

Once a product is created you will see it in the list. You can also search/filter products by ID, name and product number.

Control Panel - Local products - List

When you edit a product, below the regular form you will find the generated “Integration code” along with instructions about how to use it on affiliate website:

  1. In case you already have added the initialization script for the Agile Shopping System at the bottom of your HTML page, you don't need to add anything else.
  2. In case this product will appear on a popup or modal window (asynchronous), you will need to add the following code:
    <script type="text/javascript">AgileShopping.products();</script>
  3. In case you don't have the Agile Shopping System initialized on this page, you will need to add the following code:
    <script type="text/javascript" src="//<agile-shopping-system-server>/init/"></script>
Control Panel - Local products - Edit

This is how the above product would look on a public website when the integration code is applied:

Control Panel - Local products - Public
The layout of the form depends on the chosen skin for the specific website.

Content setup

This section consists of several modules for managing discounts, taxes, countries and provinces, deliveries, and company financial data.

Product discounts

This module will be used for generating product discount codes. The following operations are available:

  • Search/filter discount codes by code value and usage.
    The codes on the list will always be ordered by the number of uses.
    If a code has been used, the number in column Number of uses will be a link showing the list of orders in which the code has been used.
    Control Panel - Product discounts - List
  • Generate discount codes:
    • Website: Defines on which website the code(s) can be used.
    • Discount amount.
    • Amount type:
      • Percent: Of the product price to be subtracted.
      • Sum: To be subtracted from the product price.
    • Valid from: Start date for validity.
    • Valid to: End date for validity.
    • Code: Exact code (characters) to be generated.
      This option only applies if the number of codes is 1.
    • Number of codes: The number of codes to be generated.
      If this number is higher than 1, random and unique codes will be generated, no matter the value of the previous field.
    • Maximum number of uses: Defines how many times each code can be used.
      Leave the field empty for unlimited usage.

    Example for generating 3 random discount codes:

    Control Panel - Product discounts - Add
    Control Panel - Product discounts - List
  • Edit discount codes.
    Once a code has been used in order, it cannot be edited since this would change the record values and thus make impossible future check-up or verification for older activity.
  • Delete discount codes.
    Once a code has been used in order, it cannot be deleted since this would change the record values and thus make impossible future check-up or verification for older activity.

Category discounts

This module will be used for defining product discounts based on category. In other words, when a category discount has been initiated for a product on a website, the price for that product will automatically be changed depending on the discount definition. The following operations are available:

  • Search/filter discounts by category and usage.
    The records on the list will always be ordered by the number of uses.
    If a discount has been used, the number in column Number of uses will be a link showing the list of orders in which the discount has been used.
    Control Panel - Category discounts - Search
  • Create discounts:
    • Website: Defines on which website the discount can be used.
    • Category: The category this discount will apply to.
    • Discount amount.
    • Amount type:
      • Percent: Of the product price to be subtracted.
      • Sum: To be subtracted from the product price.
    • Valid from: Start date for validity.
    • Valid to: End date for validity.
    Control Panel - Category discounts - Add
  • Edit discounts.
    Once a category discount has been used in order, it cannot be edited since this would change the record values and thus make impossible future check-up or verification for older activity.
  • Delete discounts.
    Once a category discount has been used in order, it cannot be deleted since this would change the record values and thus make impossible future check-up or verification for older activity.

Countries

This module will be used for managing the list of countries that can be selected by customers when filling in personal delivery and billing details on checkout.

The Agile Shopping System main license already includes a complete list with all countries in the world.

The following operations are available:

  • Search/filter countries by name.
    The records on the list will always be ordered by the order index defined for each record.
    Control Panel - Countries - Search
  • Add new records:
    • Name: The country name.
    • Country code: The short-code of the country for local usage.
    • Active: yes/no.
    Control Panel - Countries - Add
  • Edit records.
  • Delete records.
    Once a country has been used in order, it cannot be deleted since this would change the record values and thus make impossible future check-up or verification for older activity.
  • Change order by using the arrows in column Sort.
    The countries added in the database included in the Main License already have an order index for each record, corresponding to ascending order for the country names.
    Control Panel - Countries - Sort

States/Provinces

This module will be used for managing the list of states/provinces that can be selected by customers when filling in personal delivery and billing details on checkout.

The Agile Shopping System main license already includes a complete list with states/provinces for all countries in the world.

The following operations are available:

  • Search/filter records by name and country.
    The records on the list will always be ordered by the order index defined for each record.
    Control Panel - States/Provinces - Search
  • Add new records:
    • Name: The state/province name.
    • State/Province code: The short-code of the state/province for local usage.
    • Country: Relation to one of the countries in the database.
    • Active: yes/no.
    Control Panel - States/Provinces - Add
  • Edit records.
  • Delete records.
    Once a state/province has been used in order, it cannot be deleted since this would change the record values and thus make impossible future check-up or verification for older activity.
  • Change order by using the arrows in column Sort.
    The records added in the database included in the Main License already have an order index for each record, corresponding to ascending order for the country names.
    Control Panel - States/Provinces - Sort

Taxes

This module will be used for managing a list of taxes for each country and/or state/province by defining either a direct sum or a percentage to be added to the overall order amount based on the customer address.

The following operations are available:

  • List taxes. Control Panel - Taxes - List
  • Add new taxes:
    • Name: The title of the tax for local usage.
    • Country: The country this tax will apply to.
    • State/Province: The state/province this tax will apply to.
      If you create a tax record for a country without selecting any state/province, the tax will be applied on a country basis (for all states/provinces in the country) within the checkout process.
    • Amount: The tax amount to be added to the order.
    • Amount type:
      • Percent: Percent of the order total amount.
      • Sum: Amount to be added to the order total amount.
    • Active: yes/no.
    Control Panel - Taxes - Add
  • Edit taxes.
  • Delete taxes.
Editing or deleting taxes doesn’t change the data for orders that have already been placed.

Providers

This module will be used for creating the list with companies offering delivery services.

The following operations are available:

  • List records. Control Panel - Providers - List
  • Add new records:
    • Name: The title of the delivery provider company.
    • Active: yes/no.
    Control Panel - Providers - Edit
  • Edit records.
  • Delete records.
    Once a delivery provider has been used in order, the record cannot be deleted since this would change the record values and thus make impossible future check-up or verification for older activity.
  • View delivery services by provider.
    Control Panel - Providers - Deliveries

Deliveries

This module will be used for creating delivery services and defining prices for each service.

The following operations are available:

  • Filter/search deliveries by provider company. Control Panel - Deliveries - Search
  • Add new records:
    • Provider: One of the delivery provider companies on the database.
    • Name: The title of the delivery service.
    • Amount type:
      • Percent: Of the order total amount.
      • Sum: To be added to the order total amount.
      • Parameter: This type is meant to be used when the weight of the products can be selected by the customer (unlike the next type which is based on a single product weight value). To use this amount type you will need to create a parameter of type select box with values. Then you can choose this amount type and specify the delivery amount for a range of values. You can create as many delivery services as needed to cover the full range of values for the chosen parameter.
        The values for the chosen parameter should be digital numbers; otherwise the delivery service cannot be calculated.
      • Weight: Selecting this type will allow creating a matrix of price levels for different overall weight of the products in the order (sum of the weight values defined for all products with attribute data-weight).
        The minimum and the maximum values for the matrix should be equal since the system will be looking up for >= and < between these values. For example: minimum of 1.000 and maximum of 2.000 will mean from 1 (including 1.000) to 1.999 (excluding 2.000).
        In case the total overall products weight in an order is higher than the highest amount in the matrix, the price amount for the latest matrix record will be used for calculating delivery amount.
    • Amount: The delivery service amount to be added to the order.
    • Active: yes/no.
    Control Panel - Deliveries - Edit
  • Edit records.
    Changing the amount type or any values for a delivery service that has already been used in order will not change the amounts for that order.
  • Delete records.
    Once a delivery service has been used in order, the record cannot be deleted since this would change the record values and thus make impossible future check-up or verification for older activity.
In order to have a delivery service appear on a website, you will need to open the website details and check the box for the delivery service in section Websites > Edit > Delivery methods.
Control Panel - Websites - Edit - Deliveries

Financial data

This module will be used for defining specific corporate and financial details of the company owning the Agile Shopping System license. Some fields in this module are currently not being used in the system, and yet are present for future usage. However, the Authorize.net login credentials and PayPal details are required for performing real time payments.

  • Authorize.net:
    • Transaction Key: The key for authorizing payments through the gateway.
    • Login ID: The login ID for authorizing payments through the gateway.
    • Demo: yes/no. Defines whether the system should use the Authorize.net gateway in sandbox mode or for real payments.
  • PayPal:
    • Merchant e-mail: The email of the PayPal merchant.
    • Currency code: The currency code to be used for payments through the gateway.
    • Demo: yes/no. Defines whether the system should use the PayPal gateway in sandbox mode or for real payments.
  • Company name, VAT/CRN, Country, Address, Postal code/ZIP, Financially reliable person: These fields are to be used in the future for invoicing and/or issuing other documents.
  • Bank account details: This information will appear at the last step of the checkout process when the customer has chosen the payment method Bank wire transfer.
  • Delivery details: This information will appear at the last step of the checkout process when the customer has chosen the payment method On delivery.
Control Panel - Financials

Websites

This section consists of several modules for managing the affiliate websites on which the current license of the Agile Shopping System can be initialized.

Websites

This module will be used for defining on which websites the system will be used.

The module only works with a single website if the “Unlimited websites” license is not purchased.

The following operations are available:

  • List records.
    Control Panel - Websites - List
  • Add new records:
    • Name: The name of the website, for local usage.
    • Host: The website host.
      Do not add the protocol, but only the domain name of the website, i.e. www.yahoo.com, instead of http://www.yahoo.com. Having correct data in this field is crucial for proper initialization of the system.
    • Currency: The currency that will be used for products and orders on this website.
    • Commission: The commission amount (in percent) to be calculated with each order placed on this website.
    • Weight unit: The unit that will be used during the checkout process - kg, lbs, etc.
    • Theme: The layout to be applied on product snippets.

      There are currently 4 different layout themes developed with this version of the Agile Shopping System:

      • Boxed
      • Elegant
      • Bold
      • Simple
    • Cart header: Rich text/HTML content that could be added at the top of the shopping cart modal window upon checkout.
    • Cart footer: Rich text/HTML content that could be added at the bottom of the shopping cart modal window upon checkout.
    • Payment methods: The methods that will be available for customers when ordering on this website. The following payment methods are available in this version of the Agile Shopping System:
      • On delivery: This method will not require any additional information from the customer. There will be a note added to the order review screen and the e-mail to the customer, which content can be managed in section Content setup > Financial data > Delivery details.
      • Bank transfer: This method will not require any additional information from the customer. There will be a note added to the order review screen and the e-mail to the customer, which content can be managed in section Content setup > Financial data > Bank account details.
      • Credit/Debit card (Authorize.net): This method activates Authorize.net for processing online payments real-time. NOTE: The merchant authorization credentials are needed to have this method work properly. You can add the credentials in section Content setup > Financial data > Authorize.net.
      • Credit/Debit card: This method will require credit card information to be filled by the customers, without initiating real-time payments. The method can be used for delayed batch-payments.
      • PayPal: This method activates PayPal for processing online payments real-time. NOTE: The PayPal merchant details are needed to have this method work properly. You can add the credentials in section Content setup > Financial data > PayPal.
    • Delivery methods: The delivery methods that will be available for customers when ordering on this website – selection among the records added in section Content setup > Providers/Deliveries.
    • Agents: This option gives access to orders, customers and commissions gathered on this website to any affiliate agents.
      The option will only be available if the "Commissions/Affiliates" license is purchased.
      You will find more about associating agents to websites in section Agents below.
    • Active: yes/no.
    Control Panel - Websites - Edit
  • Edit records.
    Changing website settings will not change the data already stored with any orders placed on that website.
  • Delete records.
    A website cannot be deleted if there are orders placed on that website.

Websites carts

This module can be used for merging several websites into one joint shopping cart. Merging websites into one cart will mean that the customers will be able to browse and add products on different websites, but their shopping cart will include the products from all those websites.

The module is only available if the “Unlimited websites” license is purchased.

The following operations are available:

  • Merge carts.
    In order to merge websites into one shopping cart you will need to select each website and then click on the button Merge carts.
    The button Merge carts becomes clickable when more than one website is selected.
    Control Panel - Websites carts - Merge
  • Unmerge carts.
    If you have merged several websites into one joint shopping cart, you will see that there will be one record with a common Key with all websites listed on the right column for that Key. To unmerge these websites (in order to separate their carts, or to merge other combinations) you need to select the merged record and click on the button Unmerge carts.
    The button Unmerge carts becomes clickable when only one website is selected.
    Control Panel - Websites carts - Unmerge
When you merge or unmerge carts, the records obtain new unique Key. Since all customers’ sessions are based on those keys, when merging or unmerging carts the current Active sessions will not be updated with new actions from the customer.

Agents

This module will be used to create accounts for people who run affiliate websites initialized through the current Agile Shopping System license.

The module is only available if the “Commissions/Affiliates” license is purchased.

The following operations are available:

  • List records. Control Panel - Agents - List
  • Add new records:
    • E-mail: The e-mail address of the Agent.
      This address will be used for logging in to the Control Panel, and also for receiving affiliate reports.
    • Password: The password to access the Control Panel.
    • First name: The first name of the Agent.
    • Last name: The last name of the Agent.
    • Company: The name of the company, if the Agent represents a company.
    • Address, City, Country:Address details of the Agent to be used when issuing affiliate reports.
    • Avatar: An option to upload avatar/account image.
    • Active: yes/no.
    Control Panel - Agents - Edit
  • Edit records.
  • Delete records.

Once the account is created, an e-mail will be sent to the e-mail address used in the registration form and the agent will be able to login to the Control Panel using the account credentials.

Agents only have access to section Sales and modules Orders, Customers and Commissions.
There will be no records available to the Agent unless the account is associated to one or more websites registered in the system. Associating an Agent to a website gives access to orders, customers and commissions gathered on this website to the Agent.
Control Panel - Websites - Edit - Agents

Once the Agent is associated to one or more website there will be real data for orders, customers and commissions.

Control Panel - Agents - Dashboard
Control Panel - Agents - Commissions

Notifications

When editing the content of the e-mail, you can use dynamic variables which will be replaced with real data for the particular order and customer.

Notifications to user

This module will be used for defining the content of the e-mails that will be sent to customers:

  • New order: The e-mail that will be sent to the customer when an order has been successfully stored.
  • Change status: The e-mail that will be sent to the customer when the status of an order has been changed by either an administrator or an agent.
  • Order notification: The e-mail that will be sent to the customer when the administrator has sent a notification associated with order.
Control Panel - Notifications - To user

Notifications to administrators and agents

This module will be used for defining the content of the e-mails which will be sent to administrators and agents:

  • New order – to administrator: The e-mail that will be sent to all Control Panel administrators when new order has been successfully stored.
  • Change order status – to administrator: The e-mail that will be sent to all Control Panel administrators when the status of an order has been changed by an agent.
  • Change order status – to agent: The e-mail that will be sent to any agents associated with the website on which the order has been stored, when the status of the order has been changed by an administrator.
  • Report – to agent: The e-mail that will be sent to any agent who has been set to receive periodical reports.
Control Panel - Notifications - To administrators and agents

All e-mails consist of the following data fields:

  • Name: The title of the e-mail for local usage.
  • Subject: The subject of the e-mail.
  • Sender name: The name of the e-mail sender.
  • Sender email: The e-mail address of the sender.
  • Text: The text body (content) of the e-mail.

    When editing the content of the e-mails, you can use dynamic variables which will be automatically replaced with real data for the particular order and customer. Each e-mail type has its own variables which can be found in a legend below the text field.

    Control Panel - Notifications - Fields
    Control Panel - Notifications - Variables

PDF exports

This module will be used for managing rich text content for header and footer that will be added to the PDF files generated as periodical reports and sent to agents.

Control Panel - PDF exports

System Settings

This module will be used for managing system settings and administrators accounts

Mail settings

This module will be used to define the way e-mails will be sent from the system. There are two generic methods for sending e-mails:

  • PHP Mail: This method is based on using the internal php mail() function for sending e-mails. Usually this is the fastest way to send e-mails from a web server, but since the sender origin will technically represent the hosting server, many e-mail providers (such as Google/Gmail, Outllok/Hotmail, and other web-based services) may consider the e-mails as Junk.
    The following data should be defined if this method is selected:
    • Admin name: The name of the sender for all e-mails.
    • Admin e-mail: The e-mail of the sender for all e-mails.
    The fields for name and e-mail will only be used when sending system e-mails (such as creating a new administrator/agent account, send forgotten password, etc.). The e-mails concerning orders will use the data defined in section Notifications.
  • SMTP Server: We recommend using this method for sending e-mails since there will be authorized technical sender for all messages. The method requires SMTP credentials and server login details:
    • Host: The SMTP server host name.
    • Port: The SMTP server port number.
    • Using Authentication: Whether an authentication is required for using the SMTP server. If this option is turned on, then the following fields should also be defined:
      • Authentication type: If the above option is turned on, one of the following authentication methods should be used:
        • Login.
        • Plain.
        • CRAM-MD5.
      • Use Secure connection: Whether the server connection will be secure, or not:
        • No.
        • TSL (Transport Layer Security).
        • SSL (Secure Socket Layer).
      • Username: The username to login to the SMTP server.
      • Password: The password to login to the SMTP server.
    • Admin name: The name of the sender for all e-mails.
    • Admin e-mail: The e-mail of the sender for all e-mails.
    The fields for name and e-mail will only be used when sending system e-mails (such as creating a new administrator/agent account, send forgotten password, etc.). The e-mails concerning orders will use the data defined in section Notifications.

Administrators

This module will be used to create administrators accounts to access the Control Panel. The following operations are available:

  • List records. Control Panel - Administrators - List
  • Add new records:
    • E-mail: The e-mail address of the administartor.
      This address will be used for logging in to the Control Panel.
    • Password: The password to access the Control Panel.
    • First name: The first name of the administrator.
    • Last name: The last name of the administrator.
    • Avatar: An option to upload avatar/account image.
    • Groups: Associate the new administrator to one or more groups.
      Associating the administrator account to a group is mandatory since the access to any Control Panel modules is granted on a group level (see below in module Administrators groups).
    • Active: yes/no.
    Control Panel - Administrators - Edit
  • Edit records.
    When editing an administrator account the field Password is replaced with New password which can be used for changing the current password. Also, you cannot deactivate the main administrator account that has been created with the installation of the system.
  • Delete records.
    You cannot delete the main administrator account that has been created with the installation of the system.
Although you cannot delete the main administrator account, you will be able to change its settings, including the activity and groups association. This means that you can deactivate the only administrator account or change its access level to restrict the access to the System Settings module. If you end up in a similar case you will need assistance from the Agile Shopping System support team.

Administrator groups

This module will be used to manage administrators groups and define access to all modules in the Control Panel. The following operations are available:

  • List records. Control Panel - Administrators groups - List
  • Add new records:
    • Name: The title of the group.
    • Description: The purpose of this group – optional description.
    • Modules rights: Grant access to one or more modules in the Control Panel.
    Control Panel - Administrators groups - Edit
  • Edit records.
  • Delete records.
    You cannot delete the main administrators group that has been created with the installation of the system.