FedEx Shipping

FedEx is a premium shipping method which let you get shipping rates from the FedEx API. It requires that your store uses US or Canadian Dollars for it’s currency and that your server has Soap installed. Please contact your hosting provider for more information on SOAP installation on your server. The extension primarily works with in and lbs, but other units can be converted automatically.

FedEx works with a base country of United States or Canada.

FedEx can calculate quotes worldwide as it handles both domestic and international parcels.

The API, and the built in box-packer, require that your non-virtual products have weights and dimensions set. See here if you need to know how to do this.

Installation ↑ Back to Top

  1. Upload the plugin folder to the ‘/wp-content/plugins/’ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Thats it – you can now configure the plugin.

Configuration ↑ Back to Top

  1. Once the plugin has been activated, go to WooCommerce > Settings > Shipping Methods.
  2. The method will be listed at the top of the screen, underneath the tabs. Click on ‘FedEx’.
  3. You can now configure the method.
    1. Enable/Disable – Choose whether to enable the shipping method of not.
    2. Method Title - Name the shipping method. This will be visibile by customers.
    3. Origin Postcode – This should be set to the postcode from which you  will ship. It is sent to the FedEx API.
    4. Method Availability –  This setting lets you narrow down the countries which can get quotes. Leave set to All Countries to have it available for all customers.
    5. API Settings – Your API access details are obtained from the FedEx website. After signup, get a developer key here. After testing you can get a production key here.
      1. FedEx Account Number * - Provided by FedEx after signup.
      2. Fedex Meter Number - Provided by FedEx after signup.
      3. Web Services Key - Provided by FedEx after signup.
      4. Web Services Password - Provided by FedEx after signup.
      5. Production Key - Check this box depending on your type of account (developer or production).
      6. Debug Mode - Enable debug mode to show debugging information on your cart/checkout.
    6. Rates and Services - These settings control the services and rates you offer customers.
      1. Residential – Enables the residential flag. If you account has Address Validation enabled, this will be turned off/on automatically.
      2. Insurance – Check the box to get rates + insurance.
      3. Request Type – Choose account (to get rates for your specific account) or list to get standard FedEx rates.
      4. Fedex SmartPost Hub – If using Smart Post, define your ID here.
      5. Parcel Packing Method - See below.
      6. Offer Rates – Choose to return all rates (user will get the choice) or just return a single rate.
      7. Service – Here you can rename, and re-order, FedEx shipping rates.
    7. FedEx LTL Freight – Settings for FEDEX Freight rates. To enable freight, enable this option and fill out your full shipping address. Note: Fedex Freight rates will only appear on the checkout page as they require the recipients CITY.

* required fields

Parcel Packing Method ↑ Back to Top

There are 2 packing methods with FedEx; each affects the parcels you send to the API.


Each item in your cart (non virtual) will be sent to the FedEx API. Quotes for all items will be combined for the final cost.

Pack into boxes

Items will be packed into pre-defined boxes and sent to the API. We recommend this option. See box-packing below for more information on this.

Box-Packing ↑ Back to Top

The box packer included with this shipping method lets you group items into packages of which you define the height, width, length, weight and max-weight. The packing is mainly volume based, but does also consider item sizes too.

The box packer is volume based. This will in most cases provide good results, but will never be as accurate as a real person packing a box (see BIN Packing Problem) therefore it is important you understand that packing results are as accurate as they can be and any anomalies should be accepted.

Setting up box sizes

Go to WooCommerce > Settings > Shipping > FedEx. For the ‘Parcel Packing Method’, select ‘Recommended: Pack into boxes with weight and dimensions’ to set up the boxes specifications. Select ‘Add box.’ to add your own.

Screen Shot on 2015-01-09 at 15-11-10

Dimensions are used for the parcel dimensions and are passed to the API and also used for packing.

Box weight is the weight of the actual box, and will be added to the weight of the contents.

Max weight is the maximum weight your box can hold. This includes contents weight and box weight.

Enabled can be turned off and on depending on whether or not you want to use the box.

You’ll notice the boxes are pre-filled with FedEx standard boxes – you may disable them if you want just custom box sizes.

Rearrange Shipping Options

You can manually rearrange the FedEx services into any order you wish by selecting the icon here:

Screen Shot 2015-01-09 at 15.22.19


And then drag the item to wherever you want it to display:

Screen Shot 2015-01-09 at 15.23.26


From here you can also add a price adjustment (either $ or %) positively or negatively to any method using the price adjustment columns (as seen above). For example, if you wanted to discount the ground shipping method by 10% you would add -10 to the Price Adjustment % column for the ground option.

Save your settings and it will appear on the front end:


How the calculation works

The packer does the following:

  1. Finds boxes which fit the items being packed (uses H x W x D).
  2. Packs all fitting items into boxes (using volume).
  3. The largest box which fits 100% of items is used *or* use the highest % packed box, and then pass unpacked items back (and repeat the process)
  4. Unpackable items are packed alone, using the item dimensions.
  5. All packed boxes are returned.

Handling Fees ↑ Back to Top

To add handling fees to the shipping calculations you can use one of the Price Adjustment columns in the Services section.  Each UPS service can be increased separately using the price adjustment columns on the row.

Use the Price Adjustment ($)  column to add a flat amount to the shipping quote.  In this example the 3 Day Select and Ground shipping methods will be increased by $3.50.

Screen Shot on 2015-01-09 at 15-25-05


Use the Price Adjustment (%) to increase the shipping quote by a percentage. In this example the 3 Day Select and Ground shipping methods will be increased by 1% of the quote returned from UPS.

Screen Shot on 2015-01-09 at 15-25-52


Customer Usage ↑ Back to Top

Customers will get quotes (after inputting their address) from two places;

  1. The cart page – by using the shipping calculator
  2. The checkout page – by filling in the shipping and billing forms
Rates can be selected by customers as normal.

Troubleshooting ↑ Back to Top

No rates returned/no rates available

  1. Enable debug mode to see debugging information on the cart page. This will often reveal the problem.
  2. Check your products have sizes and weights set – without this the calculation cannot be performed.
  3. Check your store’s base country is United States or Canada and that your using US Dollars or Canadian Dollars (from WooCommerce > Settings > General).
  4. The plugin needs to be able to talk to FedEx API. For this it uses the SoapClient.

I have enabled Smart Post, but no rates are being returned

For SmartPost rates to work you:

  1. Need a fedex account and meter number which supports SmartPost
  2. Your package or item needs to weight greater than 1lb (otherwise the rate is not valid)
Back to the top