Ecommerce Overview

by Justin Bodeutsch | Last edited: 10/31/2014


The E Commerce system has the following features:

  • Products, Event Registration, Automatic Recurring Payments.
  • Customization.  Products can be customized precisely to the description of a website's products, families and SKU's.  This means that product catalogs, searching and reporting are specific to a website's needs.
  • Cart. A fully functional cart can be integrated into a website with the ability to add, remove and updated quantities.
  • Credit Card Processing.  The system is compatible with and Paypal Web Payments Pro.  Once the credentials have been received from either of these processors, it can be integrated into the CMS for credit card processing.  Other solutions that are supports: Manual processing of credit cards as well as Paypal Web Payments Standard.
  • Shipping. Shipping can be configured to use UPS or Fedex or a manual shipping schedule.
  • Supplier Management.
  • Taxes. Taxes can be set up by ZIP code range in order to add a tax percentage to all product purchases being shipped to certain ZIP codes.
  • Discount Codes. Discount codes can be set up to be triggered by a coupon code or by quantity.  This can also be set up to be active within a date range.  Discount Codes module can also be used to facilitate early bird event registration.
  • Reporting.  All sales reports can be exported securely to CSV.

Other features include:

  • No need to set up an SSL certicate as all communications happen via a secure iframe that can be styled.
  • Additional Customer information can be gathered during checkout through configuring a form that will be displayed during checkout or event registration.

Here is a more hardcore list of what our E Commerce system does and does not do.

How are families and products related?

Products are found on sites as  As such, each product needs to be assigned to at least one family.

For example, if you have a family named 'Manuals' and a product in that family named 'Desk Assembly Instructions', the product can be found at

Products are assigned to families on the product list page. For more information on this check out the article on 'context menus'.

How do I add a cart?

Main Cart 

1. Create a new template (typically mcms_cart.php). This will most likely be based off of the mcms_page.php template.

2. After the usuall page getContent, add the following:

<a href=<?=$REF?>>Continue Shopping</a>

<? getContent(


       The link at the top is optional, it will take the user back to the last page they visited. This could be set to a specific page as well. The labels in all three getContents could be text as well as images. The cart could also be created with monklets on an existing template, but the 'Continue Shopping' link could not be created.

3. Add a page in the backend titled 'Cart' using the template you just created. The template will have to have to be added to the template manager before you can select it. The name 'Cart' isn't required, but the rest of this howto will assume it has that name.

Proceed to Checkout

1. Create a monklet with the following contents:


And another with:

label="Submit Order"

2. Include both of the monklets on a new page titles 'Checkout'. 


The following images can be used with a cart:

  • Add to Cart
  • Update Cart
  • Remove from Cart
  • Checkout
  • Empty Cart
Order History

On the me page, a history of orders can be shown. Simply add the following getContents below to mcms_me.php.

For more on me pages, please review this article. For the purposes of displaying order history, you only will need the following getContents.

Make sure to include a login link elsewhere on the site so users can come back and view their orders.

Order History Code (zip)

ecommerce order history code screenshot

How do I setup Shipping & Handling?

Fixed Shipping by Product

Shipping can be added to any single product by editing that product (or sku) and selecting  'Set Price' for the shipping group. Then just enter the price you would like to charge.

Shipping by Schedule

If you would like to set the shipping prices on a broader scale, you should use the Shipping Schedule.  On the Product list page, click the Shipping link at the top of the list.

On the Shipping Schedule page, click add or edit.  There are a variety of choices and we will go through them here:


  1.  Pick a name for this schedule entry.  It would be good to use a descriptive name like 'International Fixed' or 'US & Canada Only' or 'All Shipping'.
  2. Pick or add a Delivery Method.  This is purely descriptive and is meant to convey to your customer which delivery method will be used for this entry.  Good examples include 'Ground' or 'Slow' or 'Speedy Delivery'.
  3. Pick a type of shipping.  You may either specify a fixed price, or a price based on the range of the order sub total or simply provide an Action which prompts the customer to 'Call for pricing' or 'We ship this product manually'
  4. Specify destinations.  This is very important and the Shipping Schedule uses this to compare where the product is being shipped to with the countries specified in this entry.  One could for instance specify that shipping is free to any destination within the US but $10 will be added for order outside the US.


Some examples would include:

Free shipping to the US and $10 shipping charge to all countries outside the US:


Shipping Example of International Fixed Shipping



Free shipping to the US & Canada and shipping charge of $25 to orders placed in the United Kingdom:


Shipping Example of free to US and Canada


1. Add Suppliers

On the site's ecommerce edit screen (under Admin < Account) check 'Manager Suppliers'. Save, then go to the product list page. A new link for 'suppliers' should appear. Click that link and add a new supplier. The supplier is the address from which the products will be shipped. If there are multiple places that products will be shipped from, add additional suppliers.

2. Edit Products

Edit each product that you will be shipping with UPS or Fedex.  Choose either UPS or Fedex from the 'Shipping Group' drop dow, enter the dimensions and weight of the package and choose the shipping group. If the suppliers drop down does not appear above the weight field then you will need to add a supplier.  Weight and dimensions are not required but will help make sure that shipping charges are most accurate. 

When the customer checks out they will be given a few shipping options with the price auto calculated based on the supplier and dimensions entered. 

Price Range

You can specify shipping based on the price of the product(s). An example, if the total cost of the order is between $0-10, $1 is charged. If between $11-30, $3 is charged, etc.

On the products list page click 'shipping'. Then add a new shipping option. Under 'Select Type' choose 'price range'. To charge $1 for an order of $0-10, enter 0 for 'From', 10 for 'To' and 1 for 'Shipping Cost'. You can also have the shipping be a percentage of the total order. To do this, under shipping cost, change the drop down from 'USD ($)' to Percent.

Multiple sets of prices can be created with delivery methods.

Delivery Methods

You can use multiple sets of price ranges with delivery methods. For example you could make two delivery methods, one for standard delivery and one for rush. Then make a set of price ranges that use standard and another that uses rush. When the customer is checking out they will choose which method to use and shipping will based on that.


Additional handling charge can be added to all sales on the ecommerce edit page. Simply add price in the 'Handling Charge' field and all products will include the additional cost.

Other Actions

If you would like the customer to arrange shipping for a product you can specify and action for the customer to take.

On the products list page click 'shipping'. Then add a new shipping option. Under 'Select Type' choose 'Action'. Then enter the action you would like them to take. For example 'Call 555-5555' or 'Email'

How do I add a list a featured prodcuts?

Here is an example monklet that pulls in three featured products from all families in a random order


show_productlist="<div class='item'>"
show_productlist="<a href='__producttitlelink__'><img src='__productimageURL__' alt='__producttitle__' width='64' /></a>"
show_productlist="<h4><a href='__producttitlelink__'>__producttitle__</a></h4>"
show_productlist="<p class='price'>$__productprice__ - <span class='light' style='color:#aaa;'>__format__</span></p>"
show_productlist="<p class='cart'>__buy label='/images/bg_add-to-cart.gif'__</p>"

How do purchased downloads work?


Downloadable products are entered the same way as other products. You will need to contact Monk to have this configured. The only difference is the presence of an option to upload a file or select an existing media item to attach to it. 

The files are placed in a secured directory on your server. When a customer purchases the product, they are redirected to a page that contains a special link them giving them access to that particular file. In the event the customer doesn't download it, they also receive an email with a username, password and link to get the download at a later time.

 We do not limit the number of downloads or cut off access after a certain time frame.  We also do not add any DRM or other restrictions to the file.