Shipping, Taxes, and Processing Orders with WordPress 2.9 eCommerce


Locations and tax setup

There's no doubt that tax law is complicated, but it's a necessity. It's far beyond the scope to discuss tax law in all countries, so be sure to do your own research regarding taxes for your own state, country, and region.

For businesses located in the USA, here are a couple of links to get you started:

Within the USA, most businesses charge state sales tax based on the shipping information that the customer provides. While nine times out of ten a customer's billing and shipping information are the same, the times when the billing and shipping information differ can lead to some interesting scenarios.

For example, if your store is based in Kansas, a customer in Kansas who buys a product and ships it to Texas would not have to pay tax on that order at least not to the state of Kansas. On the other hand, a customer in Georgia who buys your product and ships it to Kansas would have to pay tax on the order. Again, tax law is undoubtedly complicated, so be sure to look up any laws specific to your own state.

On to business—the first thing to do is to verify that your Base Country/Region is correct. You can find this under the General tab of the WP e-Commerce Plugin Settings, as seen in the following screenshot:

WordPress 2.9 eCommerce

Next, verify that the tax percentages are correct for your state or region. This is just underneath the settings for Base Country/Region.

Finally, switch to the Checkout tab at the top to consider one more setting. Just, under Checkout Options there is an option to Lock Tax to Billing Country. This is shown in the following screenshot:

WordPress 2.9 eCommerce

What this option does, once selected, is lock the billing country to the shipping country. For stores in the USA, it also has the effect of locking the billing state to the shipping state. This certainly simplifies matters, but it doesn't quite solve the tax scenarios outlined earlier in this section.

Shipping Options and Calculators

Configuring a store's shipping options is potentially one of the most complicated tasks that new store owners face, but it doesn't have to be. Much of it depends on the type of products that you are planning to sell. The absolute simplest scenario involves selling digital downloads only, in which case you don't need to worry about shipping at all.

When dealing with tangible goods, one's shipping needs grow increasingly complicated depending on the diversity of the products involved and anticipated location of the customers. For instance, selling books as well as clothing will create different shipping needs than selling only books or clothing. Also, planning to sell to customers worldwide will necessitate more complicated shipping needs than limiting one's customer base to only one or two countries.

Unlike creating and modifying a product catalog, configuring shipping settings is a task that only needs to be done once.

General Shipping Settings

To view and modify your shipping settings, switch to the Shipping tab at the top of the Settings page, as seen in the following screenshot:

WordPress 2.9 eCommerce

Under the General Settings, you have the option to globally enable or disable shipping. If your shop is comprised of digital downloads only, then you can safely switch the Use Shipping option to No and rejoice! You no longer have to worry about any shipping confi guration. The following screenshot shows the relevant panel:

WordPress 2.9 eCommerce

Those, who do sell tangible items should leave it set to Yes, as shown above. If your store is located in the USA, add the Zipcode for the area from where you will be shipping items. This is really only necessary if you plan to use one of the external shipping calculators (UPS or USPS), but it doesn't hurt to add it anyway.

If you subscribe to the third-party Shipwire order fulfillment service (, set the Shipwire option to Yes and enter your relevant login information. Shipwire is a service that collects and stores your products for you, shipping them to customers when necessary. While convenient, Shipwire comes with a cost, currently starting at $30 per month.

One neat aspect of the e-Commerce plugin is that you can opt to allow for free shipping, provided that the order price is above a certain threshold. At the bottom of the general shipping options is a toggle to Enable Free Shipping Discount, as seen in the following screenshot:

WordPress 2.9 eCommerce

Enter a threshold amount of your choice, such as $50, like seen above. Any orders that customers place with a value equal to or higher than that price will automatically qualify for free shipping.


Shipping Modules

The WP e-Commerce plugin with five different shipping modules (three internal and two external) to help calculate shipping. Altogether, they give you a lot of variety with regards to controlling shipping charges. They include:

  • Flat Rate
  • Table Rate
  • Weight Rate
  • UPS (external)
  • USPS (external)

So, what is the difference between these modules? The first thing you must do when deciding how to calculate shipping is sit back and consider the nature of the items you are selling. How heavy is each item? Are all of your products approximately the same weight? Will you likely be shipping to the same geographical area, or are your planned shipping distances more diverse? Once you have considered shipping weights and distance, you can decide upon a shipping strategy that suits your needs.

No matter which shipping module you ultimately choose, you can edit the settings for that particular module by hovering your mouse over it. An Edit link will appear to the right-hand side of the module, as shown in the following screenshot:

WordPress 2.9 eCommerce

Keep in mind that you are by no means limited to one shipping module. You can offer several different modules if you like, but more does not necessarily equate better in this case. Offering many different ways to calculate shipping has the potential to confuse the customer, who will opt for the cheapest shipping method in most cases.

Flat Rate

Setting a at rate for shipping is the simplest option, but will not work for all situations. A at rate is exactly what it sounds like—customers pay one predetermined fee for shipping, based upon their location, regardless of the number of items purchased and the total price of the order. A customer in the United States might pay one set shipping charge, whereas a customer in Europe will pay a different set price. As the store owner, you have control over the shipping charges you set for each region.

The Flat Rate itself has a Base price, which you can set as high or low as you like, as well as an optional per-item charge. For your home country, you can set a Base Local price. Customers within your home country will automatically have that Base Local fee added to their entire order, whether they purchase a single item or a hundred. Most countries will only have a single entry for the Base Local price, but some countries may have multiple spaces. For instance, if your home country is set to the USA, you will have local options for the Continental 48 States as well as All 50 States, as seen in the following screenshot:

WordPress 2.9 eCommerce

If you plan to ship internationally, you can set base prices for international customers. Keep in mind that the Base International prices are independent from the Base Local prices, not added on top of them. With the flat rates shown in the previous screenshot, customers in Hawaii would have $2 added to their entire order, while customers in Greece would have $4 added to the exact same order.

While setting a Flat Rate is a simple option overall, there are ways to get more advanced usage. You can also set a per-item fee on top of that   at rate. Imagine this scenario: Maria visits your shop to buy a few things. Your shop has a base shipping rate of $5, so Maria will be charged at least $5 for shipping no matter what, even if she buys fi  fty items from you. Let's also say that each of your items has a per-item shipping fee of $1. In this case, the formula for calculating shipping is now:


[base fee] + [per-item fee * number of items]

If Maria adds a single item to her cart, the total shipping fee will be $6($5 + $1). If she adds four items to her cart, the new shipping fee will be $9($5 + $4).

This is a straightforward example involving a universal fee per item, but you can set a wide variety of fees per item if you want.

You can set per-item shipping fees for each item back on the Products page. While editing the details for that particular product, scroll down to the Shipping Details, as seen below:

WordPress 2.9 eCommerce

In this example, we set a $1 fee per item shipped within the home country, and a $1.75 fee per item shipped internationally. Keep in mind that this is on top of the base fee per order.

If you opt for Flat Rate shipping, feel free to use your imagination. Any combination of base rate plus item fees is possible. You may fi  nd that having a base rate of $0 and relying solely upon per-item fees works best for you. Or, you may find that only a handful of heavy items should have individual fees. The possibilities are practically limitless.

Table Rate

Using Table Rate for shipping provides a handy way to set various tiers for the total shipping cost. Essentially, it allows you to set price ranges that have a predetermined shipping cost, no matter what the type or number of items involved. Total cost of the products in the shopping cart determines the shipping amount.

When configuring your Table Rate, you create multiple layers to form a shipping cost hierarchy. The following is an example:

WordPress 2.9 eCommerce

Each layer has a required value relating to the Total Price for the order and the resulting Shipping Price. In this example, we are going to reward our customers for making larger purchases by consistently reducing the shipping cost as the price of the total order increases. We do this in layers: the most expensive shipping ($6) is for orders under $20. As the order price increases, the shipping decreases, ultimately resulting in free shipping for orders above $50.

This is only one possible use of layers in your rate table. One simplified version of this solution is to have only two layers, granting free shipping over a specified price. There are many possibilities, and you can create as many layers as you like.

Weight Rate

Similar to Table Rate, specifying Weight Rate as your shipping module allows you to create layers to form a hierarchy of shipping costs. The difference is that instead of being based on total order cost, the hierarchy is based on the weight of the items, with the general idea that the heavier the order, the more it will cost to ship:

WordPress 2.9 eCommerce

In this example, orders with total weights under three pounds will have a shipping charge of $3.50. As the weight increases, the price increases accordingly, with the heaviest orders (over fifteen pounds) weighing in at a hefty shipping price of $18.

In order for Weight Rate to work as a viable shipping option, you must specify a weight for each individual item. You can do this back on the Products page. Just like when adding a per-item fee for the Flat Rate module, view the details for a specific product and scroll down to the Shipping Details, as seen in the following screenshot:

WordPress 2.9 eCommerce

Here you can add a weight for each item. In this example, we have set a weight of 0.75 Pounds for this item. If a customer adds multiples of this same item to his cart, the weight will increase accordingly and will be combined with the differing weights of other products in the customer's cart.

Of course, if you would rather not deal with pounds, you could always click on the drop-down menu to switch to another unit of mass, such as Ounces, Grams, or Kilograms, as shown in the following screenshot:

WordPress 2.9 eCommerce

Unfortunately, this unit change will not be redirected back on the Weight Rate layer configuration page. As of this writing, the various layers must be constructed using only Pounds as the unit of mass.

Using an external Shipping Calculator

The WP e-Commerce plugin supports integration with UPS and USPS. As these are both third-party services, you should create an account with one or the other before you can offer them as valid shipping options.

Using one of these services relieves you of some of the burden of determining how much shipping to charge. UPS or USPS will calculate it exactly for you and present the cost to the customer during checkout.

UPS Calculator

The UPS Shipping Calculator differs from USPS in that it does not actually require you to create an account with them. Plugging into the UPS system is as easy as selecting the appropriate checkbox and editing the settings for this module, as seen in the following screenshot:

WordPress 2.9 eCommerce

To have UPS calculate shipping for you, you have to give them a couple of default values. Specifically, you must inform them of whether your intended destinations will be Residential or Commercial addresses. You must also indicate the default size of your shipping materials, such as a letter or a medium-sized box.

UPS calculations are partly based on weight, so in order to accurately calculate shipping costs, your products must have an associated weight. If you are using variations for your products, be sure to add a weight to each individual variation. Otherwise, you will see a red exclamation point next to each product in the WordPress Dashboard.

Let's see this in action: assuming that our store is based in the USA, here is what would happen when a customer from elsewhere in the world visits your store. Instead of you having to worry about how much it will cost to ship a product abroad, UPS handles it for you. This is demonstrated in the following screenshot:

WordPress 2.9 eCommerce

Even though the customer might recoil in horror at the cost of shipping, at least you, as the store owner, know that it is covered and that you will not lose a boatload of money on shipping costs. Assuming the customer selects UPS and makes the purchase, all that is left for you to do is to make contact with UPS and confirm the shipping details. If you plan to offer UPS, you should create an account with them in order to enjoy other benefi ts, such as automated pick-up service. Create your account at

While convenient, one disadvantage is that UPS shipping can be expensive, sometimes painfully so. Be sure to do your research before committing—you may find that another service suits your needs better.

USPS Calculator

Integrating USPS shipping requires that you register for their Web Tools service. Start here:

Once you register, you will receive an automated e-mail with your account user ID and password that describes how to start using their service. It will include detailed information on how to communicate with their servers, but fortunately, the WP e-Commerce plugin already handles this integration.

The critical part of integrating USPS is as follows:
When you have completed your testing, email the USPS
Internet Customer Care Center (ICCC)
They will switch your profile to allow you access to the production server and will provide you with the production URLs.
The ICCC is staffed from 7:00AM to 11:00PM Eastern Time.
Telephone: 1-800-344-7779

As you can see, completing your shop's integration with USPS takes a little time. After you first create your account, you will receive your account information by e-mail. You must then contact them again to request permission to access the production server instead of the testing server. If you contact USPS by e-mail, be sure to mention your account username, and also that you are using the WP e-Commerce plugin as your shopping cart script. Otherwise, they are likely to cause a further delay by asking you to verify one or the other. Once they grant permission, you can successfully start using USPS on your site.

The actual integration process is simple—all you have to do is add your unique user ID and password to the USPS settings, as follows:

WordPress 2.9 eCommerce

The WP e-Commerce plugin will handle the rest.

Processing a test order

Now that you have set up a payment gateway, added your tax settings, and configured one or more shipping modules, it's time to put the entire collective together and verify that everything works! You can do this by walking through the entire process from a customer's perspective and seeing what happens (or what should happen) from the store owner's point of view.

Before you begin the testing process, it's important to emphasize that you should use multiple web browsers when testing your site. Not all browsers render websites in the same manner, and since we are planning to cater to customers worldwide, we must verify that our site works with a variety of browsers.

Testing that your site works involves much more than adding a single product to your shopping cart—you need to verify that all cart actions work, such as adding dozens of products, emptying the cart, verifying tax and shipping settings, and ensuring that all the correct information is sent to the selected payment gateway.

This is a big task, one that you must take very seriously. Don't assume anything works correctly unless you have verified it yourself. There could be an undiscovered bug in the software, or your WordPress theme might do something wacky. You need to view each page and product yourself to ensure that it works. There's no substitute for a methodical testing progression.

Tempting though it may be to try to immediately fi x a bug or an inappropriate setting with your store, it's better to simply make a note of it and continue the testing process. Multiple problems may have the same related cause, and you can be more efficient with your fixes if you have already seen the big picture.

Here is a checklist of actions that you should try at this point:

Store testing checklist

Check all WordPress pages:

  • Any broken links?
  • Do pages render properly in multiple browsers?
  • If you have a Contact Form, does it work?

Check all Product links:

  • Any broken links?
  • Do Categories or Tags work properly?
  • Do Variations work (if needed)?
  • Do Breadcrumbs work (if enabled)?
  • Do image thumbnails display on Products or Groups?
  • Does Pagination work?
  • Is your Permalink structure appropriate?

Check the Shopping Cart:

  • Can you add items to the cart?
  • Does Sliding Cart work (if enabled)?
  • Can you empty the cart?
  • Can you proceed to Checkout?
  • If required, can customers register for an account on your store?
  • Is tax automatically added?
  • If you switch states or countries, are tax settings still appropriate?
  • Are shipping settings calculated correctly?
  • What about shipping for international orders?
  • Is your payment gateway functioning?
  • Is the payment gateway also receiving tax + shipping information?

Try to break the store:

  • Can you check out without paying?
  • Can you access a digital download without paying?
  • Add an exorbitant amount of items to the cart. Does it still work?
  • Try to gain access to an administrator's account. Can you?

If you do not try to break the store, rest assured that someone else will. Even though you're still operating on the testing server, it is imperative to know that everything works as planned. If all of the items in this checklist work as expected, without any problems, then you can feel fairly certain that everything will work when the site goes live. Once we release your site to the public, you must remember to go through this checklist again.

E-mails sent to the customer

Now is a good time to visit the E-mail Settings. In light of all the development that you have made on your site, does the information that you are sending to the customer after each purchase still make sense? More importantly, are the e-mails actually being sent, or at least displayed to the customer on the Transaction Results page?

Depending on which payment gateway is used, the customer will likely also receive a payment notification directly from that gateway. If you are using a sandbox testing environment for your payment gateway (and you should), you can see how those e-mails will look by logging into the testing sandbox account. For example, you can check e-mail in the PayPal sandbox environment by clicking on the Test Email link once you have logged in:

WordPress 2.9 eCommerce

When you complete a test purchase in the sandbox, your customer account should receive an e-mail similar to the one shown in the following screenshot:

WordPress 2.9 eCommerce

E-mails sent to you

After each purchase, you, as the store owner, should also receive a notification detailing the information about the order. The title of the e-mail will be Purchase Report, and it will be sent to the e-mail address that you designate next to Purchase Log Email in the Admin settings for your store. Once your store goes live, it's a good idea to log into your payment gateway to verify the accuracy of orders, at least for the first few months.

Sales log

Back on the Sales page for the WP e-Commerce plugin, you will find a sales log with details about purchases made so far. The sales log does not distinguish between test purchases made via a payment gateway sandbox and real transactions in which money was exchanged, so even if you have not made any legitimate sales on your site, you can still see how they will appear in your sales log, as shown in the following screenshot:

WordPress 2.9 eCommerce

Here we have two sample transactions. The sales log displays for us the transaction date, the contact information for the buyer, the total amount, the number of items included, and the status of the order. To see the full information about the order, including the customer address, click on the link underneath the word Details.

Notice that the status is different for the two orders in this example. One has a status of Order Received, and the other reads Closed Order.

If you use Manual Payment as one of your payment gateway options, all incoming orders will default to a status of Order Received. This is because the Manual Payment gateway lacks the ability to automatically record a customer's payment and cannot know whether or not the transaction is actually complete. Therefore, it puts the responsibility on your shoulders to determine when to complete the order.

Manual Payment is useful if you offer the ability to accept personal checks or money orders. When the customer sends in the payment, it is up to you to ship the product and manually change the status of the order. You can do this by clicking on the drop-down menu under Status:

WordPress 2.9 eCommerce

Payment gateways such as PayPal (with IPN) will automatically verify that a payment is complete and record the order in the sales log with a status of closed. If you somehow receive an order using a payment gateway that lacks closed status, be sure to verify that you have actually received payment before shipping the order.


Having a solid grasp of how you want to handle taxes and shipping is a major step toward the successful launch of your online store. After completing this article, you should know exactly how to implement a broad number of shipping modules and be able to determine which one(s) to integrate.

The following topics were covered in this article:

  • Locations and tax setup—setting your correct home base location and charging appropriate taxes
  • Shipping Options and Calculators—an overview of all five included shipping modules and how to use them
  • Processing a test order—a detailed checklist of tasks to complete to gauge whether or not your sites works as expected
  • E-mails sent to you and the customer—a revisit of some critical information regarding communication about purchases
  • Sales log—a centralized location for tracking orders and their statuses

At this point, your store checkout process should include a functioning payment gateway that automatically includes and receives any additional costs for taxes and shipping. Your work is not yet complete, however. You still have to shift from the testing server to a production site and test some more before you know everything works thoroughly.

Remember that it is imperative to test every aspect of the checkout process before you can rest assured that it works. Use the checklist from this article to help guide you, but remember to go through it again and again once you upload your site to a production server.

If you have read this article you may be interested to view :

You've been reading an excerpt of:

WordPress 2.9 E-Commerce

Explore Title