Our site www.viart.com site is operated by latest Viart Shop 5 with default Clear design
ViArt User's Guide (Version 3.6)
Please, see the list of all new features and fixed bugs that were made to all ViArt PHP Shopping Cart releases from version 2.1.1 up to the latest 3.5 version.
14.7. Recurring billing module
14.7. Recurring billing module
Prev Index Next

This tutorial covers the following sections:

Back to top

Overview

Recurring billing module provides you with the ability to charge your customer's credit card a pre-determined amount at pre-defined periods of time. Recurring billing is very useful if you provide web hosting services, different kinds of membership or subscriptions, or just want your customers to make installments on a periodic basis.

Back to top

Setting recurring payments for products

If you want a certain product to be paid on a regular basis (i.e. once a month) you should enable recurring options for this product. To do this please navigate to Administration > Products > Products&Categories > Edit Product > Recurring tab and fill the fields as shown on the image:



where

Activate recurring payments - if this option is selected, a product will be paid in installments.

Recurring Price - this is optional. Specify amount you want to add to the basic product price. This amount will be added for the second recurrring payment.

Example: if a basic product price is $10 and you add $5 in the recurring price field then a customer's credit card will be charged $15 for the second and subsequent payments.

You can also add a minus value to this field.

Example: you have a product that costs $200 upfront and will cost $20 a month every month after. In this case set the value '-180' in the 'Recurring Price' field. Hence, the initial cost of the product will be 200 and all subsequent recurring payments will be calculated as 200 - 180 = $20 (per a month).

Recurring Period - specify the frequency of recurring payments, i.e 1 per month. You are welcome to select daily, weekly, monthly or yearly installments.

Payments Total - enter a total number of installments a customer should submit for this product.

Payments Start Date and Payments End Date - are the dates when the first and the last payment are to be done. You can enter the dates manually or choose the dates from the available java calendar.

Press 'Update' to save the changes.

Back to top

Enable recurring billing for a payment system

Once you're finished with recurring products, next step is to set a payment gateway to be used for processing recurring payments. For this navigate to Administration > Orders > Payment Systems > Edit System > General tab > Recurring options section. You will be presented with three options:



Not Allowed is set by default and means that this payment system won't be used for recurring billing.

Automatically create order for next payment - select this option if you want to use this payment system for creating recurring orders. Please, note that the system will only create a recurring order in your Administrative panel (not process the payment).

Automatically create and bill recurring orders - enable this option if you want to use this payment system for processing recurring orders. Note that this option can be only used with advanced payment systems, like Authorize.net, LinkPoint API, etc.

Once selected press 'Update' to save the changes.

There are also some additional options for recurring billing you may wish to set. They can be found at Administration > Orders > Payment Systems > Recurring Settings link. You will be presented with the following screen:



where

Recurring Orders Status - optional. Select a status (from the drop down list) which recurring orders will get once they are generated in your Administrative panel.

Attempts after order will be cancelled in case of failure - optional. Enter a preferred number of attempts after which the order is marked as cancelled.

Next attempt if order failed - optional. Indicate a number of days when to make a new attempt for processing a recurring order.

Preserve Product Options - optional. Enable if you want to transfer product options from a parent order to a new recurring order. These options can be viewed in the Options Values tab (when editing a certain order).

Preserve Cart Custom Fields - optional. Enable if you want to transfer custom cart fields from the parent order to a new recurring order.

Preserve Shipping Method - optional. Enable if you want to transfer a shipping method from the parent order to a new generated recurring order.

’On creation’, ‘On success’, ‘On Pending’, ‘On failure’, tabs allow you to notify customers or administrators about the status of the recurring payments. You have the option to choose between e-mail and sms notifications. For more information on how to set the notifications, please see details

Once done, press 'Update' to save the changes and make a test purchase of the recurring product from the site.

Back to top

Editing recurring options for a certain order

To check a recurring order please navigate to Administration > Orders > Sales/Orders and press View/Edit to check the order. You will be presented with the following screen:



To change recurring options for this particular order, press the product name hyperlink and select the Recurring Options tab. You will be presented with the following screen:



where

Activate recurring payments - if this option is selected, a product will be paid on a recurring basis. Unselect the option if for any reason a client refuses to make recurring payments in future. In this case a new recurring order for this client won't be generated.

Recurring Price - this is optional. Specify amount you want to add to the basic product price. This amount will be added for the second recurrring payment. For example, if a basic product price is $10 and you add $5 in the recurring price field then a customer's credit card will be charged $15 for the second and subsequent payments..

Recurring Period - specify the frequency of installments, i.e 1 a month. You are welcome to select daily, weekly, monthly or yearly payments.

Payments Total - enter a total number of installments a customer should submit for this product.

Payments Made - shows the total number of recurring payments already done.

Payments Failed - shows the total number of failed transactions which were not processed succesfully (i.e. due to expired credit card).

Last payment date - the date when a previous recurring order has been processed.

Planning payment date - is the date when the next recurring order should be processed.

Next payment date - is the date when the next recurring order should be processed.

Payments End Date - is the date set in the recurring product settings and indicates the date when the last payment should be made.

Press 'Update' to save the changes.

Back to top

Manual recurring billing processing

Once a recurring product is purchased, you will have to generate and process the next recurring order. The billing can be done either manually or automatically. To manually process recurring orders please navigate to Administration > Orders > Sales/Orders screen, scroll down the page and press the 'Proceed current recurring orders'. If there are any recurring orders for this date, they will be added to your system (with the status you've set on recurring settings for a payment system) and you'll receive such a notice (for example):

1 recurring orders were added.

If no recurring orders are to be processed now you'll get:

No recurring orders are available at present time.
Back to top

Automatic processing of recurring payments

If you do not want to bother yourself with the manual processing of recurring payments you can make the automatic configuration for recurring payments. For this you are to add an appropriate command in you crontab -e file which contains the schedule of cron entries to be run at specified times.

The command line is to be as follows:

30 9 * * * /path/to/php -f /home/rg1/public_html/admin/admin_orders_recurring.php -l ted -p readfast

where

30 9 * * * is the command which will run daily at 9:30 AM

l ted -p readfast are the admin login/password.

You can ask your system administrator or your host about the correct path to your php interpetator on your server.

Once the command is added, save it in your cron file and the script will run regularly at the time you specified in the crontab file.

Back to top

Frequently asked questions

Is it possible to identify recurring orders from standard orders?

It is possible. Please navigate to Administration > System > DB management and run the following query:

select order_id from va_orders where is_recurring=1

Are all payment systems can automatically generate and process recurring payments?

No, not all payment systems allow immediate recurring charges so even if you set "Automatically create and bill recurring orders" system might only create an order with invoice. But in case system does allow recurring billing, stores cc and "Automatically create and bill recurring orders" option is checked then on clicking "Proceed current recurring orders" system will automatically charge customers. These are direct API systems such as Authorize.net, LinkPoint API, etc.

Is there any payment gateway supported such that the CC numbers are stored, for recurring billing, in the payment gateway site, and NOT on my website?

There are a couple of payment gateways that can store CC numbers on their sites. However, please note that currently we do not support recurring payments to be generated and processed on the payment system's site. In other words, there is no way to identify and send recurring orders and their parameters to the payment system's site so the payment gateway knows that these are recurring payments and they are to be charged on a regular basis. At present, a recurring order is generated in our system, a client gets a notification that a new recurring order has been generated and he should pay for it.

How does the customer pay for his recurring order?

Once a new recurring order is generated in the system, ViArt Shop sends an e-mail notification to the customer with the order No and instructions on how to make the payment from his user area.

Prev Index Next