Checkout & Payment

From Spiffy Stores Knowledge Base

Before you can accept orders from your customers, you will need to choose one or more methods for accepting payments. All of the payment methods that your store can accept are listed on this page, and they can all be set up in the "Preferences -> Checkout & payment" section of your store's Toolbox.

Each of the methods have varying fees and costs associated with them, so you should shop around to see which one is right for you.

Spiffy Stores supports many external credit card payment gateways. These allow your customers to use their credit card directly in your store. You will need to set up a separate account with one of these gateways in order to use them for sales.

Accept payments through PayPal

The advantage of Using PayPal is that you don't need a merchant account to accept credit cards, and it is an ideal way to start out a new online store.

They are also an internationally trusted payment processor, as your customers can place orders without the merchant (you) ever seeing their credit card number.

Spiffy Stores supports the following PayPal services;

Please click on the name of the service to link through to instructions on how to set it up.

United States United Kingdom


Australia Canada


New Zealand Europe

Please refer to the PayPal site in your country for details of PayPal services available to other countries.

Click here to sign up for a PayPal account

Accept credit card payments

Direct Payment Gateways allow you to accept credit or debit card payments without leaving the Spiffy Stores checkout.

All Direct Payment Gateways will require you to have a merchant account with your bank. In addition, gateway fees will also apply unless you choose to select "Manual processing", in which case you will need to process the payments manually using your EFTPOS machine or virtual terminal supplied to you by your bank.

Manual processing

Spiffy Stores allows you to accept credit card payments without a payment gateway. To do this, you just select "Manual processing" in the "Accept Credit Card Payments" section that appears in the "Preferences -> Checkout & payment" section of your store's Toolbox. You then select what cards you can accept, and click that "Activate" button.

When a customer places an order using the "Manual processing" option, their credit card details are shown to you on the page where you view their order. You can then process their payment manually using your own EFTPOS facilities.

Supported gateways

Gateway suppliers each have their own fee structure and eligibility requirements.

Spiffy Stores currently supports the following gateways:

Advam (Australia) NELiX TransaX
ANZ eGate (Australia) NETbilling
Authorize.Net NetRegistry (Australia)
BBS Netaxept Nochex
Barclays ePDQ (MPI) Ogone
Beanstream.com PSL Payment Solutions
Bendigo Bank (Australia) PayJunction
Braintree PayPal Express Checkout
Camtech (Australia) PayPal Payflow Pro
Card Access Services (Australia) PayPal Website Payments Pro (US, CA, UK)
CardStream PayPal Website Payments Standard (Worldwide)
Chronopay PaySecure (Australia)
Commonwealth Bank CommWeb (Australia) Paybox Direct
CyberSource PaymentExpress (Australia & New Zealand)
DataCash Plug'n Pay
E-xact Psigate
Efsnet QuickBooks Merchant Services
Elavon MyVirtualMerchant Quickpay
ePay Realex
eWay (Australia) Sage Payment Solutions
Fat Zebra (Australia) SagePay
First Pay Sallie Mae
FirstData US SecureNet
Flo2Cash Web2Pay (NZ) SecurePay
Garanti Sanal POS SecurePay (Australia)
GestPay SecurePayTech
HiTRUST SkipJack
Inspire Commerce Stripe
InstaPay Suncorp Bank (Australia)
Iridium TransFirst
JetPay TrustCommerce
Merchant e-Solutions USA ePay
MerchantWARE Verifi
Modern Payments Westpac PayWay (Australia)
Moneris Wirecard
NAB Transact (Australia) WorldPay (Direct)

Configuring the gateway

Once you have obtained your account details, you will need to select the gateway and enter your credentials into the provided fields.

You will also need to indicate which credit cards you are able to accept.

If you want to provide any special instructions to a customer who chooses to pay by credit card, click on the Show details link and enter the text of your message in the provided text box.

Finally, if your credit card gateway supports the feature, you may choose to Authorize payments, and then Capture the funds at a later date when the order is finalized. This is useful if the exact amount of the order cannot be determined at checkout time, and you can process an authorization for a larger amount, and then capture the final amount before shipping the order.

Manual Payments

The final form of payment consists of manual payments such as

  • Cheque
  • Bank Deposit
  • Money Order

You can select from one of the default options, or create your own manual payment descriptions.

For each manual payment, you can add some custom text that will be displayed to the customer when they choose this payment method. For example, you will need to provide your bank account details if you choose to accept payments by Bank Deposit.

For all manual payments, you will need to mark the order as paid manually once the payment for the order has been received.

Additional Checkout Comments

You can enable this option to allow the customer to add comments to the order. This allows a customer to make special requests or to inform you of some special delivery details.

You can also customize the prompt that is displayed on the checkout page, if the default is not sufficient.

Customer Account Number

The Customer Account Number field is generally used for wholesalers, who want to allow customers to make purchases using a pre-existing account number.

When enabled, the customer account number is collected in a new field that appears on the first page of the checkout. If the customer enters their account number, the number is then optionally validated and will be displayed under the customer's contact details on the "view order" page in your toolbox once the order has been completed.

Validating a Customer Account Number

The Customer Account Number can be validated using a script hosted on an external server. This is done by sending the customer number in a specific URL address to a server, which then validates the number and returns an XML response indicating whether the number is valid or invalid.

The XML response should be in the following format;

 <response>
    <customer>
       <id>123456789</id>
       <valid>valid</valid>
    </customer>
 </response>

You can also return an error or confirmation message if you wish. The example below shows this as well as an invalid response.

 <response>
    <customer>
       <id>1234567890</id>
       <valid>invalid</valid>
       <msg>must be 11 digits</msg>
    </customer>
 </response>

Validating using a Database

You may wish to validate the account number against a customer database located on your server at "http://yourdomain.com"

To validate that the account number is correct, you will need to create a script at "http://yourdomain.com/customer.php", for example, and pass the account number as a parameter to this URL.

Thus, "http://yourdomain.com/customer.php?id=1234567890" will attempt to validate that the account number "1234567890" is valid.

The URL entered into the "Provide a URL to validate the Customer Account Number" field in your checkout preferences in this instance would be http://yourdomain.com/customer.php?id={id} which passes the {id} parameter from your store checkout to the customer.php script on your server.

When a customer enters a customer account number in the checkout, the checkout posts the query to your external script, and your script would check the customer number and then return an XML response saying whether the customer number is valid.

Validating using an Algorithm

Another use for this function is to validate the customer number using an algorithm, which many larger companies may use to create their customer numbers.

To validate that a customer number is correct, you could create a script at "http://yourdomain.com/customer.php" that we pass information to, which then checks against the algorithm to see if the customer number is valid.

The URL entered into the "Provide a URL to validate the Customer Account Number" field in your checkout preferences in this instance would also be http://yourdomain.com/customer.php?id={id} which passes the {id} parameter from your store checkout to the customer.php script on your server.

When a customer enters a customer number in the checkout, the checkout posts the query to your external script, and your script checks the customer number against the algorithm, and returns an XML response saying whether the customer number is valid.

Sample Code

The following is a sample validation script written in PHP. You may use any web language to write the validation routines, from PHP, Python, Perl, Ruby on Linux platforms, to ASP and .NET on Windows platforms.

<?php
error_reporting(E_ALL);
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-type: text/xml");

function validation_routine($number) {
  // Enter your validation code here....

  // Set result to TRUE or FALSE
  return result;
}

$customer_id_valid = 'invalid';

if (isset($_GET['id']))
{
  $customer_id = trim($_GET['id']);
  
  if (preg_match('/^\d{8}$/', $customer_id) == 1) // This validates the number of digits (e.g. 8)
  {
    if (validation_routine($customer_id))
    {
      $customer_id_valid = 'valid';
      $message = 'is valid';
    }
    else
    {
      $message = 'is invalid';
    }
  }
  else
  {
    $message = 'must be 8 digits';
  }
}
else
{
  $message = 'not supplied';
}  

/* Dom document */
$dom = new DOMDocument("1.0","iso-8859-1");

/* Create all elements */
$response = $dom->createElement("response"); //root element
$customer = $dom->createElement("customer");
$id = $dom->createElement("id", $customer_id);
$valid = $dom->createElement("valid", $customer_id_valid);
$msg = $dom->createElement("msg", $message);

/* Now place them in the correct place in the tree */

$response->appendChild($customer);
$customer->appendChild($id);
$customer->appendChild($valid);
$customer->appendChild($msg);

$dom->appendChild($response);

echo $dom->saveXML();
?>

Additional Content & Scripts

You can include custom html, tracking pixels and even scripts on the last page of the checkout. See Conversion Tracking for more information.