Difference between revisions of "Checkout & Payment"

From Spiffy Stores Knowledge Base

 
(52 intermediate revisions by 2 users not shown)
Line 1: Line 1:
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.
+
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.  
 
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.  
Line 7: Line 7:
 
== Accept payments through PayPal  ==
 
== 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.  
+
The advantage of using PayPal is that you don't need a bank 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.  
 
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;  ====
+
Spiffy Stores now supports the new PayPal Commerce Platform. Using PayPal Checkout, you get access to a streamline checkout experience for your customers, together with added Fraud Prevention tools, if you activate the Advanced Credit and Debit Card payments option.
  
Please click on the name of the service to link through to instructions on how to set it up.
+
''For legacy accounts only, if PayPal is the only payment method you accept in your store, that you will need to enable both PayPal Express and PayPal Website Payments Standard. This does not apply to PayPal Checkout.''
 +
 
 +
==== 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.  
  
 
{| width="100%" border="0" class="wikitable"
 
{| width="100%" border="0" class="wikitable"
Line 20: Line 24:
 
| '''United Kingdom'''
 
| '''United Kingdom'''
 
|-
 
|-
|  
+
| style="vertical-align:top"; |
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard ]]  
+
*[[Enabling PayPal Checkout|PayPal Checkout]]
*[[Enabling PayPal Website Payment Pro|PayPal Website Payments Pro ]]  
+
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard (Legacy)]]  
*[[Enabling PayPal Express Checkout|PayPal Express Checkout ]]  
+
*[[Enabling PayPal Website Payments Pro|PayPal Website Payments Pro (Legacy)]]  
*[[Enabling PayPal Payflow Pro|Paypal Payflow Pro ]]
+
*[[Enabling PayPal Express Checkout|PayPal Express Checkout (Legacy)]]  
 
+
*[[Enabling PayPal Payflow Pro|Paypal Payflow Pro (Legacy)]]
|  
+
| style="vertical-align:top"; |
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard ]]  
+
*[[Enabling PayPal Checkout|PayPal Checkout]]
*PayPal Website Payments Pro (UK)  
+
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard (Legacy)]]  
*[[Enabling PayPal Express Checkout|PayPal Express Checkout]]  
+
*[[Enabling PayPal Website Payments Pro|PayPal Website Payments Pro (Legacy)]]
*Paypal Payflow Pro (UK)
+
*[[Enabling PayPal Express Checkout|PayPal Express Checkout (Legacy)]]  
 
+
*Paypal Payflow Pro (UK) (Legacy)
 
|}
 
|}
 
 
<br>  
 
<br>  
 
 
{| width="100%" border="0" class="wikitable"
 
{| width="100%" border="0" class="wikitable"
 
|-
 
|-
Line 41: Line 43:
 
| '''Canada'''
 
| '''Canada'''
 
|-
 
|-
|  
+
| style="vertical-align:top"; |
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard ]]  
+
*[[Enabling PayPal Checkout|PayPal Checkout]]
*PayPal Website Payments Pro (AU)  
+
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard (Legacy)]]  
*[[Enabling PayPal Express Checkout|PayPal Express Checkout]]
+
*[[Enabling PayPal Website Payments Pro|PayPal Website Payments Pro (Legacy)]]
 
+
*[[Enabling PayPal Express Checkout|PayPal Express Checkout (Legacy)]]
|  
+
| style="vertical-align:top"; |
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard ]]  
+
*[[Enabling PayPal Checkout|PayPal Checkout]]
*PayPal Website Payments Pro (CA)  
+
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard (Legacy)]]  
*[[Enabling PayPal Express Checkout|PayPal Express Checkout ]]  
+
*[[Enabling PayPal Website Payments Pro|PayPal Website Payments Pro (Legacy)]]
*Paypal Payflow Pro
+
*[[Enabling PayPal Express Checkout|PayPal Express Checkout (Legacy)]]  
 
+
*Paypal Payflow Pro (Legacy)
 
|}
 
|}
 
 
<br>  
 
<br>  
 
 
{| width="100%" border="0" class="wikitable"
 
{| width="100%" border="0" class="wikitable"
 
|-
 
|-
Line 61: Line 61:
 
| '''Europe'''
 
| '''Europe'''
 
|-
 
|-
|  
+
| style="vertical-align:top"; |
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard ]]  
+
*[[Enabling PayPal Checkout|PayPal Checkout]]
*PayPal Website Payments Pro  
+
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard (Legacy)]]  
*[[Enabling PayPal Express Checkout|PayPal Express Checkout]]
+
*[[Enabling PayPal Website Payments Pro|PayPal Website Payments Pro (Legacy)]]
 
+
*[[Enabling PayPal Express Checkout|PayPal Express Checkout (Legacy)]]
|  
+
| style="vertical-align:top"; |
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard ]]  
+
*[[Enabling PayPal Checkout|PayPal Checkout]]
*PayPal Website Payments Pro  
+
*[[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard (Legacy)]]  
*[[Enabling PayPal Express Checkout|PayPal Express Checkout ]]  
+
*[[Enabling PayPal Website Payments Pro|PayPal Website Payments Pro (Legacy)]]
*Paypal Payflow Pro
+
*[[Enabling PayPal Express Checkout|PayPal Express Checkout (Legacy)]]  
 
+
*Paypal Payflow Pro (Legacy)
 
|}
 
|}
  
 
Please refer to the PayPal site in your country for details of PayPal services available to other countries.  
 
Please refer to the PayPal site in your country for details of PayPal services available to other countries.  
  
[https://www.paypal.com/au/mrb/pal=LQDCZM9MFJBLQ Click here to sign up for a PayPal account]
+
[https://www.paypal.com/au/business Click here to sign up for a PayPal account]
  
 
== Accept credit card payments  ==
 
== Accept credit card payments  ==
Line 84: Line 84:
 
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.
 
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  ====
+
Depending upon local regulations, you may be able to add an additional credit card surcharge to the total cost of the transaction. You can specify an individual credit card surcharge percentage for each of the credit cards you choose to support. Further details on this feature are available below.
  
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 the "Activate" button.
+
==== Manual processing ====
  
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.
+
Spiffy Stores allows you to accept credit card payments without a payment gateway. To do this, you just select "Manual Processing" in the "Credit Card Gateways" section that appears in the "Preferences -&gt; Checkout &amp; payment" section of your store's Toolbox. You then select what cards you can accept, and click the "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.  The CVV number is sent to you in your order notification email, as we're not able to store the number in the system.
  
 
==== Supported gateways ====
 
==== Supported gateways ====
  
Gateway suppliers each have their own fee structure and eligibility requirements.  
+
Gateway suppliers each have their own fee structure and eligibility requirements.
  
 
Spiffy Stores currently supports the following gateways:
 
Spiffy Stores currently supports the following gateways:
  
 +
<div class="row">
 +
<div class="columns small-12 medium-6">
 
{| width="100%" border="0" class="wikitable"
 
{| width="100%" border="0" class="wikitable"
 
|-
 
|-
|[[Advam Payment Gateway| Advam (Australia) ]]
+
| [[Advam Payment Gateway|Advam (Australia) ]]
|NELiX TransaX
+
|-
 +
| [[ANZ eGate Payment Gateway|ANZ eGate (Australia) ]]
 +
|-
 +
| Authorize.Net
 
|-
 
|-
|ANZ eGate (Australia)
+
| BBS Netaxept
|NETbilling
 
 
|-
 
|-
|Authorize.Net
+
| Barclays ePDQ (MPI)
|NetRegistry (Australia)
 
 
|-
 
|-
|BBS Netaxept
+
| Beanstream.com
|Nochex
 
 
|-
 
|-
|Barclays ePDQ (MPI)
+
| [[Bendigo Bank Payment Gateway|Bendigo Bank (Australia) ]]
|Ogone
 
 
|-
 
|-
|Beanstream.com
+
| [[BPoint Checkout Payment Gateway|BPoint - Commonwealth Bank (Australia)]]
|PSL Payment Solutions
 
 
|-
 
|-
|Bendigo Bank (Australia)
+
| Braintree
|PayJunction
 
 
|-
 
|-
|Braintree
+
| Camtech (Australia)
|PayPal Express Checkout
 
 
|-
 
|-
|Camtech (Australia)
+
| [[Card Access Services payment gateway|Card Access Services (Australia) ]]
|PayPal Payflow Pro
 
 
|-
 
|-
|[[Card Access Services payment gateway | Card Access Services (Australia) ]]
+
| CardStream
|PayPal Website Payments Pro (US, CA, UK)
 
 
|-
 
|-
|CardStream
+
| Chronopay
|PayPal Website Payments Standard (Worldwide)
 
 
|-
 
|-
|Chronopay
+
| [[Commonwealth Bank CommWeb|Commonwealth Bank CommWeb (Australia) ]]
|PaySecure (Australia)
 
 
|-
 
|-
|[[Commonwealth Bank CommWeb | Commonwealth Bank CommWeb (Australia) ]]
+
| CyberSource
|Paybox Direct
 
 
|-
 
|-
|CyberSource
+
| DataCash
|[[PaymentExpress Payment Gateway (Australia & New Zealand)|PaymentExpress (Australia & New Zealand)]]
 
 
|-
 
|-
|DataCash
+
| E-xact
|Plug'n Pay
 
 
|-
 
|-
|E-xact
+
| Efsnet
|Psigate
 
 
|-
 
|-
|Efsnet
+
| Elavon MyVirtualMerchant
|QuickBooks Merchant Services
 
 
|-
 
|-
|Elavon MyVirtualMerchant
+
| ePay
|Quickpay
 
 
|-
 
|-
|ePay
+
| [[eWAY Payment Gateway|eWay (Australia) ]]
|Realex
 
 
|-
 
|-
|eWay (Australia)
+
| [[Fat Zebra Payment Gateway|Fat Zebra (Australia) ]]
|Sage Payment Solutions
 
 
|-
 
|-
|[[Fat Zebra Payment Gateway| Fat Zebra (Australia) ]]
+
| First Pay
|SagePay
 
 
|-
 
|-
|First Pay
+
| FirstData US
|Sallie Mae
 
 
|-
 
|-
|FirstData US
+
| Flo2Cash Web2Pay (NZ)
|SecureNet
 
 
|-
 
|-
|Flo2Cash Web2Pay (NZ)
+
| Garanti Sanal POS
|SecurePay
 
 
|-
 
|-
|Garanti Sanal POS
+
| GestPay
|SecurePay (Australia)
 
 
|-
 
|-
|GestPay
+
| HiTRUST
|SecurePayTech
 
 
|-
 
|-
|HiTRUST
+
| Inspire Commerce
|SkipJack
 
 
|-
 
|-
|Inspire Commerce
+
| InstaPay
|Stripe
 
 
|-
 
|-
|InstaPay
+
| Iridium
|Suncorp Bank (Australia)
 
 
|-
 
|-
|Iridium
+
| JetPay
|TransFirst
 
 
|-
 
|-
|JetPay
+
| Merchant e-Solutions
|[[TrustCommerce Payment Gateway| TrustCommerce ]]
 
 
|-
 
|-
|Merchant e-Solutions
+
| MerchantWARE
|USA ePay
 
 
|-
 
|-
|MerchantWARE
+
| [[Merchant Warrior Payment Gateway|Merchant Warrior (Australia) ]]
|Verifi
 
 
|-
 
|-
|Modern Payments
+
| Modern Payments
|Westpac PayWay (Australia)
 
 
|-
 
|-
|Moneris
+
| Moneris
|Wirecard
 
 
|-
 
|-
|NAB Transact (Australia)
+
| NAB Transact (Australia)
|WorldPay (Direct)
 
 
|}
 
|}
 +
</div>
 +
<div class="columns small-12 medium-6">
 +
{| width="100%" border="0" class="wikitable"
 +
|-
 +
| NELiX TransaX
 +
|-
 +
| NETbilling
 +
|-
 +
| Nochex
 +
|-
 +
| Ogone
 +
|-
 +
| PSL Payment Solutions
 +
|-
 +
| PayJunction
 +
|-
 +
| [[Enabling PayPal Express Checkout|PayPal Express Checkout ]]
 +
|-
 +
| PayPal Payflow Pro
 +
|-
 +
| [[Enabling PayPal Website Payments Pro|PayPal Website Payments Pro ]]
 +
|-
 +
| [[Enabling PayPal Website Payments Standard|PayPal Website Payments Standard ]]
 +
|-
 +
| PaySecure (Australia)
 +
|-
 +
| Paybox Direct
 +
|-
 +
| [[PaymentExpress Payment Gateway (Australia & New Zealand)|PaymentExpress (Australia &amp; New Zealand)]]
 +
|-
 +
| [[Pin Payments Payment Gateway|Pin Payments (Australia) ]]
 +
|-
 +
| Plug'n Pay
 +
|-
 +
| Psigate
 +
|-
 +
| QuickBooks Merchant Services
 +
|-
 +
| Quickpay
 +
|-
 +
| Realex
 +
|-
 +
| Sage Payment Solutions
 +
|-
 +
| SagePay
 +
|-
 +
| Sallie Mae
 +
|-
 +
| SecureNet
 +
|-
 +
| SecurePay
 +
|-
 +
| [[SecurePay Payment Gateway|SecurePay (Australia)]]
 +
|-
 +
| SecurePayTech
 +
|-
 +
| SkipJack
 +
|-
 +
| [[Square Payment Gateway|Square (Australia)]]
 +
|-
 +
| [[Stripe Payment Gateway|Stripe (Australia, United States, Canada)]]
 +
|-
 +
| [[Suncorp Bank Payment Gateway|Suncorp Bank (Australia)]]
 +
|-
 +
| [[SwipeHQ Checkout Payment Gateway|SwipeHQ Checkout (New Zealand)]]
 +
|-
 +
| TransFirst
 +
|-
 +
| [[TrustCommerce Payment Gateway|TrustCommerce ]]
 +
|-
 +
| USA ePay
 +
|-
 +
| Verifi
 +
|-
 +
| [[Westpac PayWay Payment Gateway|Westpac PayWay (Australia)]]
 +
|-
 +
| Wirecard
 +
|-
 +
| WorldPay (Direct)
 +
|}
 +
</div>
 +
</div>
  
 
==== Configuring the gateway ====
 
==== Configuring the gateway ====
Line 217: Line 271:
 
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.
 
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 ==
+
==== Credit Card Surcharges ====
 +
 
 +
<gallery heights="200px" widths="200px" class="right">
 +
File:Credit Card Surcharge1.jpg|Credit Card Surcharges
 +
</gallery>
 +
 
 +
A credit card surcharge, expressed as an additional percentage that is applied to the total transaction, can be configured for each of the credit card brands you choose to support. The surcharge applies individually to each brand and applies to both credit and debit cards.
 +
 
 +
When adding a new credit card payment gateway, or updating an existing gateway, simply click on the '''edit''' link next to the credit card brand that you want to change, and then enter the desired credit card surcharge as a percentage amount.
 +
 
 +
Once you've finished setting all the required surcharge amounts, just click on the '''Activate''' or '''Save''' buttons to save your changes.
 +
 
 +
The credit card surcharge percentage can be updated at any time without the need to deactivate and reactivate the credit card gateway.
 +
 
 +
Once a credit card surcharge has been created for a particular credit card brand, then when the customer chooses this form of payment, the cart totals are updated to include the correct surcharge and a popup warning message is displayed to the customer. Also, the various surcharge percentages are displayed for each credit card brand, so the customer is fully informed as to the costs associated with using a particular credit card brand.
 +
 
 +
Once the order has been processed, the order notification sent to the customer will also include the amount of the surcharge that has been applied to the transaction. All system email templates have been updated to include the additional surcharge line, but you may need to update any customized order notification templates that have been created in the past.
 +
 
 +
Here is an example of the code that will need to be added to an order confirmation template.
 +
 
 +
<pre>
 +
{% if surcharge_amount > 0 %}
 +
  <tr>
 +
    <td class="item_subtotal" colspan="4">
 +
      {{ surcharge_description | default: 'Payment Surcharge' }}
 +
    </td>
 +
    <td class="item_subtotal">
 +
      {{ surcharge_amount | money }}
 +
    </td>
 +
  </tr>
 +
{% endif %}
 +
</pre>
 +
 
 +
If you need assistance in updating your email templates, please contact us for support.
 +
 
 +
== Alternative Payment Methods ==
  
The final form of payment consists of manual payments such as  
+
You can also accept payments using bitcoin or layby.  Details of supported payment methods can be found below.
 +
 
 +
{| width="100%" border="0" class="wikitable"
 +
|-
 +
| [[Accepting payments using Afterpay|Afterpay (Australia) ]]
 +
| [[Accepting_Bitcoin_Payments#Accept_Bitcoins_with_the_BitPay_payment_gateway|BitPay ]]
 +
|-
 +
| [[Accepting_Bitcoin_Payments#Accept_Bitcoins_with_the_Coinbase_payment_gateway|Coinbase ]]
 +
| [[Accepting payments using Zip|Zip ]]
 +
|}
 +
 
 +
== Custom Payment Methods  ==
 +
 
 +
The final form of payment consists of Custom Payment Methods such as  
  
 
*Cheque  
 
*Cheque  
 
*Bank Deposit  
 
*Bank Deposit  
 
*Money Order
 
*Money Order
 +
*Lay-by payments
  
 
You can select from one of the default options, or create your own manual payment descriptions.  
 
You can select from one of the default options, or create your own manual payment descriptions.  
Line 231: Line 334:
 
For all manual payments, you will need to mark the order as paid manually once the payment for the order has been received.
 
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 ==
+
== 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 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.
 
You can also customize the prompt that is displayed on the checkout page, if the default is not sufficient.
  
== Customer Account Number ==
+
==Checkout reservations==
  
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 items are added to the cart, they are reserved for 15 minutes to allow customers to complete payment for the order.  After this period, the items are released for purchase to other customers.  
  
When enabled, the customer account number is collected in a new field that appears on the first page of the checkoutIf 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.
+
You can update the default reservation times in minutes in the Preferences -> Checkout & Payment -> Checkout reservations section of your store's adminSettings can be configured here for both the standard checkout and for draft orders.
  
=== Validating a Customer Account Number ===
+
==Address Autocompletion==
 +
Some competitors offer their own address autocompletion features, but you may not know that these services are generally based upon Google’s own mapping services. The problem with this is that the data provided is not always of the highest quality. For example, we checked out our own office address and to our surprise Google located us in the wrong suburb!
  
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.
+
Spiffy Stores has been able to leverage Geoscape G-NAF, which is Australia’s authoritative geocoded address file. It is built and maintained by Geoscape Australia using authoritative government data, such as State and Federal authorities and other semi-government bodies such as Australia Post.
  
The XML response should be in the following format;
+
To enable address autocompletion, simply tick the '''''Enable Address Autocompletion''''' box in the '''''Preferences -> Checkout & Payment -> Enable Address Autocompletion''''' section of your store's admin, and apply the settings.
  
<pre>
+
== Customer Account Number ==
  <response>
+
 
    <customer>
+
The Customer Account Number field is generally used for wholesalers, who want to allow customers to make purchases using a pre-existing account number.
      <id>123456789</id>
+
 
      <valid>valid</valid>
+
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.
    </customer>
 
</response>
 
</pre>
 
  
You can also return an error or confirmation message if you wish. The example below shows this as well as an invalid response.
+
=== Validating a Customer Account Number ===
  
<pre>
+
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.
<response>
 
    <customer>
 
      <id>1234567890</id>
 
      <valid>invalid</valid>
 
      <msg>must be 11 digits</msg>
 
    </customer>
 
</response>
 
</pre>
 
  
==== Validating using a Database ====
+
The XML response should be in the following format;
 +
<pre> &lt;response&gt;
 +
    &lt;customer&gt;
 +
      &lt;id&gt;123456789&lt;/id&gt;
 +
      &lt;valid&gt;valid&lt;/valid&gt;
 +
    &lt;/customer&gt;
 +
&lt;/response&gt;
 +
</pre>
 +
You can also return an error or confirmation message if you wish. The example below shows this as well as an invalid response.
 +
<pre> &lt;response&gt;
 +
    &lt;customer&gt;
 +
      &lt;id&gt;1234567890&lt;/id&gt;
 +
      &lt;valid&gt;invalid&lt;/valid&gt;
 +
      &lt;msg&gt;must be 11 digits&lt;/msg&gt;
 +
    &lt;/customer&gt;
 +
&lt;/response&gt;
 +
</pre>
 +
==== Validating using a Database ====
  
 
You may wish to validate the account number against a customer database located on your server at <nowiki>"http://yourdomain.com"</nowiki>  
 
You may wish to validate the account number against a customer database located on your server at <nowiki>"http://yourdomain.com"</nowiki>  
  
To validate that the account number is correct, you will need to create a script at <nowiki>"http://yourdomain.com/customer.php"</nowiki>, for example, and pass the account number as a parameter to this URL.
+
To validate that the account number is correct, you will need to create a script at <nowiki>"http://yourdomain.com/customer.php"</nowiki>, for example, and pass the account number as a parameter to this URL.  
  
Thus, <nowiki>"http://yourdomain.com/customer.php?id=1234567890"</nowiki> will attempt to validate that the account number "1234567890" is valid.
+
Thus, <nowiki>"http://yourdomain.com/customer.php?id=1234567890"</nowiki> 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 <nowiki>http://yourdomain.com/customer.php?id={id}</nowiki> which passes the {id} parameter from your store checkout to the customer.php script on your server.
+
The URL entered into the "Provide a URL to validate the Customer Account Number" field in your checkout preferences in this instance would be <nowiki>http://yourdomain.com/customer.php?id={id}</nowiki> 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.
+
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 ====
+
==== 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.  
 
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 <nowiki>"http://yourdomain.com/customer.php"</nowiki> that we pass information to, which then checks against the algorithm to see if the customer number is valid.
+
To validate that a customer number is correct, you could create a script at <nowiki>"http://yourdomain.com/customer.php"</nowiki> 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 <nowiki>http://yourdomain.com/customer.php?id={id}</nowiki> which passes the {id} parameter from your store checkout to the customer.php script on your server.
+
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 <nowiki>http://yourdomain.com/customer.php?id={id}</nowiki> 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.
+
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 ====
+
==== 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.
+
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.  
 
+
<pre>&lt;?php
<pre>
 
<?php
 
 
error_reporting(E_ALL);
 
error_reporting(E_ALL);
 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
Line 342: Line 450:
  
 
/* Create all elements */
 
/* Create all elements */
$response = $dom->createElement("response"); //root element
+
$response = $dom-&gt;createElement("response"); //root element
$customer = $dom->createElement("customer");
+
$customer = $dom-&gt;createElement("customer");
$id = $dom->createElement("id", $customer_id);
+
$id = $dom-&gt;createElement("id", $customer_id);
$valid = $dom->createElement("valid", $customer_id_valid);
+
$valid = $dom-&gt;createElement("valid", $customer_id_valid);
$msg = $dom->createElement("msg", $message);
+
$msg = $dom-&gt;createElement("msg", $message);
  
 
/* Now place them in the correct place in the tree */
 
/* Now place them in the correct place in the tree */
  
$response->appendChild($customer);
+
$response-&gt;appendChild($customer);
$customer->appendChild($id);
+
$customer-&gt;appendChild($id);
$customer->appendChild($valid);
+
$customer-&gt;appendChild($valid);
$customer->appendChild($msg);
+
$customer-&gt;appendChild($msg);
  
$dom->appendChild($response);
+
$dom-&gt;appendChild($response);
 
 
echo $dom->saveXML();
 
?>
 
</pre>
 
  
== Additional Content & Scripts ==
+
echo $dom-&gt;saveXML();
 +
?&gt;
 +
</pre>
 +
== Additional Content &amp; Scripts ==
  
 
You can include custom html, tracking pixels and even scripts on the last page of the checkout. See [[Conversion Tracking]] for more information.
 
You can include custom html, tracking pixels and even scripts on the last page of the checkout. See [[Conversion Tracking]] for more information.

Latest revision as of 11:06, 28 June 2023

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 bank 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 now supports the new PayPal Commerce Platform. Using PayPal Checkout, you get access to a streamline checkout experience for your customers, together with added Fraud Prevention tools, if you activate the Advanced Credit and Debit Card payments option.

For legacy accounts only, if PayPal is the only payment method you accept in your store, that you will need to enable both PayPal Express and PayPal Website Payments Standard. This does not apply to PayPal Checkout.

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.

Depending upon local regulations, you may be able to add an additional credit card surcharge to the total cost of the transaction. You can specify an individual credit card surcharge percentage for each of the credit cards you choose to support. Further details on this feature are available below.

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 "Credit Card Gateways" section that appears in the "Preferences -> Checkout & payment" section of your store's Toolbox. You then select what cards you can accept, and click the "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. The CVV number is sent to you in your order notification email, as we're not able to store the number in the system.

Supported gateways

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

Spiffy Stores currently supports the following gateways:

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

Credit Card Surcharges

A credit card surcharge, expressed as an additional percentage that is applied to the total transaction, can be configured for each of the credit card brands you choose to support. The surcharge applies individually to each brand and applies to both credit and debit cards.

When adding a new credit card payment gateway, or updating an existing gateway, simply click on the edit link next to the credit card brand that you want to change, and then enter the desired credit card surcharge as a percentage amount.

Once you've finished setting all the required surcharge amounts, just click on the Activate or Save buttons to save your changes.

The credit card surcharge percentage can be updated at any time without the need to deactivate and reactivate the credit card gateway.

Once a credit card surcharge has been created for a particular credit card brand, then when the customer chooses this form of payment, the cart totals are updated to include the correct surcharge and a popup warning message is displayed to the customer. Also, the various surcharge percentages are displayed for each credit card brand, so the customer is fully informed as to the costs associated with using a particular credit card brand.

Once the order has been processed, the order notification sent to the customer will also include the amount of the surcharge that has been applied to the transaction. All system email templates have been updated to include the additional surcharge line, but you may need to update any customized order notification templates that have been created in the past.

Here is an example of the code that will need to be added to an order confirmation template.

{% if surcharge_amount > 0 %}
  <tr>
    <td class="item_subtotal" colspan="4">
      {{ surcharge_description | default: 'Payment Surcharge' }}
    </td>
    <td class="item_subtotal">
      {{ surcharge_amount | money }}
    </td>
  </tr>
{% endif %}

If you need assistance in updating your email templates, please contact us for support.

Alternative Payment Methods

You can also accept payments using bitcoin or layby. Details of supported payment methods can be found below.

Afterpay (Australia) BitPay
Coinbase Zip

Custom Payment Methods

The final form of payment consists of Custom Payment Methods such as

  • Cheque
  • Bank Deposit
  • Money Order
  • Lay-by payments

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.

Checkout reservations

When items are added to the cart, they are reserved for 15 minutes to allow customers to complete payment for the order. After this period, the items are released for purchase to other customers.

You can update the default reservation times in minutes in the Preferences -> Checkout & Payment -> Checkout reservations section of your store's admin. Settings can be configured here for both the standard checkout and for draft orders.

Address Autocompletion

Some competitors offer their own address autocompletion features, but you may not know that these services are generally based upon Google’s own mapping services. The problem with this is that the data provided is not always of the highest quality. For example, we checked out our own office address and to our surprise Google located us in the wrong suburb!

Spiffy Stores has been able to leverage Geoscape G-NAF, which is Australia’s authoritative geocoded address file. It is built and maintained by Geoscape Australia using authoritative government data, such as State and Federal authorities and other semi-government bodies such as Australia Post.

To enable address autocompletion, simply tick the Enable Address Autocompletion box in the Preferences -> Checkout & Payment -> Enable Address Autocompletion section of your store's admin, and apply the settings.

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.