====== TEST, TEST, then TEST SOME MORE!!! ====== ===== Why test? ===== Because you owe it to yourself (and your client, if applicable). Things don't always work as they should with ecommerce. There are //lots// of moving pieces. Think for a moment about a "simple" transaction. These are //some// of the systems involved: * Your website (and your links, forms, javascript, etc.) * FoxyCart, our code (the stuff you can't change) * FoxyCart, your code (the stuff you can change like templates) * FoxyCart, your decisions (shipping, tax, categories, emails, etc.) * The shipping carrier(s) you selected * Your Payment Gateway * Your Customer's Bank * Your Merchant Account * Emails (receipts, spam filters, 100 different mail clients) * Your configured [[:integration|3rd party integrations]] * The store admin (who's actually fulfilling orders) Lots of different pieces that you need to test to make sure everything's working properly. ===== How to test ===== The more people you have testing, the better off you'll be. Here's a quick checklist of people to help you test: * You and your employees, co-workers, and bosses. * Your client, store owner, etc., and their employees and bosses. * Your parents, or other "average" or "below average" internet users. * Anybody else that will do it. ===== What to test ===== The following list is not exhaustive, but should get you started. If you have more ideas please add them. === ADD-TO-CART LINKS and FORMS (on //all// pages) === * Make sure your input is validated. For example, if you're using a CMS, what happens to your links/forms if the user enters a single quote or double quote or line break or other special character? === CART and CHECKOUT Templates === * All the browsers your customers are likely to use. * With separate shipping addresses. * From different countries. In different parts of your country. === RECEIPT Template === People always forget this one. === RECEIPT EMAILS === Do a reality check. Make sure they're going out to the expected recipients. === SHIPPING === * Make sure the options you offer are available in all states/provinces of your country. (ie. Some express shipping methods aren't available in all places in the US.) * Make sure the prices returned are accurate. * Make sure handling fees are appropriate and accurate. === TAXES === Consult a tax professional for the state/country you're in. === PAYMENT GATEWAY === * Test Visa, MasterCard, American Express, Discover, and whatever other cards you might be able to accept (Maestro, debit, Diners' Club, etc.) * Test with a real card (your own). You can void the transactions so you don't get charged. * Check your gateway's fraud controls. * Check your gateway's defaults. * Turn off your gateway's CSC (CVV2, CSC2, CID, etc.) requirement, if necessary. Since the CSCs aren't allowed to be stored, those are not sent on subscriptions and when a customer uses a saved card. === MERCHANT ACCOUNT === * Run a few live transactions. Make sure the money goes from your gateway to your merchant account without any problems. * Make sure you're aware of any default settings and fraud controls on that end. * Make sure you know how to refund a transaction. === DOWNLOADABLE PRODUCTS (if applicable) === * Make sure your files can actually be uncompressed on both Windows and Mac (and Linux) computers. * Make sure the files are usable/playable, and not corrupted or anything. === SUBSCRIPTIONS === * If you're using subscriptions, run a real one on your LIVE gateway with your REAL credit card. Set it for a 1 day cycle so you don't have to wait. Make sure it goes through. * **Turn off any CSC requirements **on your gateway. THIS IS IMPORTANT, since the CSCs do not get sent on subscriptions (other than the first (unless it's set to a future date)). * Watch your error log in your FoxyCart admin just to be sure. === 3rd Party / XML Integrations === * Use the [[..:transaction_xml_datafeed#testing|XML test scripts]] to help you figure things out. * Test 10 times more than you think you need to. === FULFILLMENT / BUSINESS PROCESSES === * What happens when an order comes in? Who's notified? What if they're on vacation? What if their computer crashes? (Hint: Set up a distribution list rather than sending stuff to a single person.) * What's the process from order to shipment to followup? Map it out, delegate, set goals and expectations. * What if there's a problem with an order? Who's calling the customer? Who has access to void a transaction? * Who has passwords for the gateway, the merchant account, the bank account, FoxyCart, any 3rd party services, etc.? (Keep your passwords safe, please.) * What verification is done on orders prior to shipping them? What fraud controls do you have on your end?