The goal of this article is to help better understand how 'payments' operate within the Exponent eCommerce system. 'Payments' are used to virtualize an online cash transaction for goods (products) or services (event registration or donation). There are basically two (2) types of payment systems called 'billing calculators' within Exponent:
- Those which handle the entire transaction online through a 3rd party which charges for their service (such as Authorize.net, WorldPay, and PayPal)
- Those which record a payment due where the transaction must be accomplished outside of Exponent...which may or may not charge for their service (such as cash/check, credit card, and bill me)
In most cases, we would only want to offer one (1) online payment option if we conduct all our business online, or perhaps a 2nd option if we also handle business directly with a customer at a brick-and-mortar location where the customer can pay when they arrive at the location for the event or to pick up the product.
Though no explanation should be necessary for handling and processing cash or checks, the 'cash/check' and 'pass-thru' payment options are designed for 'point of sale' type transactions by an employee of the merchant. Perhaps the best method to allow customers to pay by cash or check possibly by mail, or to use a credit card when they show up is to use the 'bill me later' payment option. If we wish to allow payment online by credit card and already have a service for processing credit card transactions, we could use the 'credit card' payment option.
If we want to have the entire payment not only recorded but processed online, we'd need to use one of the other payment options. All of those options charge a fee for their services, though PayPal Express only charges per transaction instead of a monthly fee like the others. ALL types of credit card or bank debit payments are transacted using several steps:
- Authorization - places a hold on a specified amount of funds, usually the total cost of the order (+- 15%) for 3 days. However, the money is not transferred from the customer to the merchant. You may have seen this occur when you make a purchase which initially appears as a $1 charge, but later changes to the full amount.
- Void - cancels out the remainder of a funds 'authorization'. If the authorization has already be partially 'captured' (or paid out), the 'void' action will simply close the authorization out.
- Capture - moves a specified amount of funds from the customer to the merchant. This amount may or may not be the total of the entire order, such as a segmented shipment of an order due to some items being out of stock requiring two shipments. Each 'capture' must usually be specifically authorized, and in most cases, the amount captured may or may not equal the amount originally authorized. E.g., the shipping cost of the order was slightly more/less than what appeared at checkout and the exact cost was charged to the customer.
- Refund - transfers previously 'captured' funds from the merchant back to the customer
- Others - there are some other actions which can take place such as:
- Order - simply earmarks a future 'Authorization' by collecting the customer information, no 'hold' is placed on the funds and they may not exists.
- Reauthorization - allows extending an 'Authorization' by 3 days (to a maximum of 30 days) or allowing a 2nd 'Capture' against the 'Authorization.
We'll primarily use the PayPal Express (PPE) payment option as an example here since it's the easiest full-featured one to use, which offers a good place to start. PPE offers three (3) 'Processing Modes'. 1) Sale, 2) Authorization, and 3) Order.
The recommended mode is 'Sale' which automatically authorizes and immediately captures the entire amount of the order when it is submitted. This works well since it doesn't require additional actions or monitoring on the part of the merchant, but it also implies the merchandise is 'in stock' and will be shipped very quickly. However in larger companies, it might be more prudent to only charge the customer (capture funds) once the merchandise is shipped, and then only for those items actually shipped. The 'Sale' mode doesn't allow for this although you could simulate it by issuing a partial refund. When managing the order, you'll note the 'Refund' button with an area to enter the amount on the invoice 'Billing' area.
A better approach might be to use the 'Authorization' or 'Order' modes where the funds are manually 'captured' when the items are shipped. Since we can't initiate an 'Authorization' from within Exponent (in the current release), we don't currently recommend using the 'Order' mode (Though this can be accomplished on the PayPal site). In 'Authorization' mode, the amount is 'authorized' when the order is submitted. If you pull up the order, you note a 'Capture' button with an area to enter the amount and 'Void' button on the invoice 'Billing' area. The order processing sequence would work like:
- new order submitted/received (funds are 'authorized' and placed on hold for 3 day)
- order review begins (status set to 'processing' with a optional email sent to the customer)
- order is sent to 'warehouse' for packaging, order items are retrieved and boxed, and the box weighed (status set to 'sent to warehouse')
- package data used to create/purchase shipping label and get a shipment tracking id
- shipping label applied to package, then picked up by carrier
- total cost of the order is 'captured' from the order invoice, since the funds were previously authorized (placed on hold)
- shipping date & tracking id entered into the invoice (status set to 'order has been shipped' with an optional email set to the customer)
- the order has been 'fulfilled' at this point
- if a 'return' is required, a full or partial 'refund' can be issued from the order invoice (once the returned item is received?)
Though perhaps not a full-fledged 'how to conduct e-commerce article, this information may help you better understand how ecommerce billing works and encourage you to 'take the plunge' into the icy waters of e-commerce.
About the author
Exponent CMS Developer