Back

VibeFox FedEx for WooCommerce — Help

Requirements

WordPress: 5.8 or later.

WooCommerce: 7.0 or later, installed and active. The plugin refuses to activate without it.

PHP: 8.0 or later.

FedEx account and API keys (for live rates only): in the FedEx Developer Portal (developer.fedex.com) create a project with the Rate API, link your FedEx shipping account and copy the API Key and Secret Key. You also need your 9-digit FedEx account number. Test keys work only with Sandbox switched on, production keys only with it switched off. The plugin uses the FedEx REST API with OAuth 2.0; it does not need a meter number or a web services password. If you only use fixed prices, you do not need FedEx keys.

VibeFox license key: bought on vibefox.net. One key works on one domain.

Installation

1. In WordPress go to Plugins > Add New > Upload Plugin, choose the plugin ZIP file and click Install Now. You can also upload the vfd_fedex folder to /wp-content/plugins/ by FTP.

2. Click Activate.

3. Open the settings: WooCommerce > Settings > Shipping > VibeFox FedEx, or click Settings under the plugin name on the Plugins page.

4. Enter your VibeFox license key in the license block at the top of the page and click Activate.

5. Enter the API Key, the Secret Key, the 9-digit FedEx account number and the Ship from address (ZIP and, for the US and Canada, the 2-letter state). Switch Sandbox off when you use production keys.

6. Add VibeFox FedEx to a shipping zone in WooCommerce > Settings > Shipping > Shipping zones, or turn on Ignore shipping zones and choose countries.

7. Optionally enter fixed prices as a fallback.

Configuration

All settings are on one page: WooCommerce > Settings > Shipping > VibeFox FedEx. They apply to every shipping zone. When you add the method to a zone, the zone window has only one field:

Title (zone): the name of this option at checkout. Leave it empty to use the global Name.

At the top of the page the plugin shows warnings: only some of the three API credentials are filled in, no API keys and no fixed prices (the method is then never shown), no ship-from ZIP, no ship-from state for the US or Canada, or a store currency that differs from the FedEx account currency without an exchange rate. Every time you save the settings, the cached FedEx token and rates are cleared. Number fields accept a decimal point or comma. An invalid number is not saved and is reported.

General

Enable/Disable: turns FedEx shipping on or off in all zones at once. Default: on.

Name: the shipping method name shown to the customer at checkout. Default: FedEx.

Tax status: Taxable lets WooCommerce add tax to the shipping cost, so the FedEx charge without taxes is used. None uses the FedEx net charge as it is. Default: Taxable.

FedEx API (live rates)

Without keys the fixed prices are used. The section has the link Clear cached FedEx token and rates.

Sandbox: use the FedEx sandbox with test keys. Switch it off for real rates with production keys. Default: on.

API Key: the API Key (client_id) of your FedEx Developer Portal project.

Secret Key: the Secret Key (client_secret) of the same project.

FedEx account number: the 9-digit FedEx shipping account linked to the project.

Rates: Account rates (your negotiated FedEx prices) (default) or List rates (FedEx published prices).

Residential delivery: quote customer addresses as residential (FedEx Home Delivery, residential surcharge). Switch it off if you ship mostly to businesses. Default: on.

Box size: optional box dimensions in your store dimension unit, for example 30x20x15. FedEx then applies dimensional weight. Leave it empty to quote by weight only.

FedEx account currency: the currency of your FedEx account, for example USD for US accounts or CAD for Canada. Default: USD. FedEx is always asked to quote in the store currency too.

Exchange rate: only needed when FedEx returns rates only in the account currency and your store currency is different: the price of 1 unit of the account currency in your store currency, for example 0.92. Without it such rates are not used.

Ship from

The address FedEx picks up from or where you drop off the parcels. Used for live rates.

Country: the country you ship from. Default: United States.

State / province code: the 2-letter code, required for the US and Canada, for example TN, CA or ON.

City: the ship-from city.

ZIP / postal code: the ship-from postal code. FedEx needs it to quote rates.

Fixed prices

Used when no API keys are entered and as a fallback when FedEx returns no rate (API down, wrong keys, no service). Leave both fields empty to hide the method in that case.

Country prices: the price in your store currency per destination country, one per line in the format CC=PRICE, for example US=12.99 or CA=19,99. Use * for any other country, for example *=29.99. Lines in another format are ignored and reported when you save.

Fallback cost: a flat price when no country price matches. Leave it empty to hide the method.

Fixed price is: Per order charges the price once. Per item (price x number of items) multiplies it by the number of items. This applies to fixed prices only. FedEx live rates are always quoted for the whole cart weight.

Conditions

Free shipping from: the cart subtotal from which this method is free. Leave it empty to never give free shipping.

Minimum subtotal: show the method only when the cart subtotal is at least this amount. Leave it empty to always show it.

Min weight (kg): the minimum cart weight for the method to appear. 0 means no limit.

Max weight (kg): the maximum cart weight. The method is hidden if it is exceeded. 0 means no limit.

Default product weight (kg): the weight used for products without a weight, for FedEx rates and for the weight limits above. Default: 0.5.

Excluded shipping classes: hide the method if the cart contains a product from any of these WooCommerce shipping classes.

Availability without shipping zones

Ignore shipping zones: offer the method for the countries below even without adding it to a shipping zone. A zone method switched off in its zone stays off.

Countries: the destination countries for that mode. Leave empty for all shipping countries of the store. Used only when Ignore shipping zones is on.

Advanced

Debug log: logs API requests and rate calculation to WooCommerce > Status > Logs, source vfd-fedex. API errors are always logged. Keys, tokens and customer addresses are never logged.

Remove data on uninstall: when on, deleting the plugin removes all plugin settings and zone methods. Deactivating never deletes settings.

How it works at checkout

When the customer enters a delivery address, WooCommerce asks the plugin for a rate. The plugin first checks the cart weight, the minimum subtotal and the excluded shipping classes. If free shipping applies, the customer sees the method as FedEx (Free) and no request goes to FedEx.

Otherwise the plugin gets an OAuth token and sends the FedEx Rate API the ship-from address, the delivery address, the cart weight (in kg, or in lb for stores that use lb or oz), the box size if set and your store currency as the preferred currency. For countries that use postcodes, the request is made only after the customer has entered one. For international shipments the customs value of the cart is sent. State codes are sent only for the US and Canada.

FedEx returns the available services. For each service the plugin takes the account or list rate you chose, prefers a rate in your store currency, converts a rate in the FedEx account currency with your exchange rate and drops rates it cannot convert. The cheapest service is shown under your method name, and its name is saved with the shipping line of the order.

The token is cached per environment and key and requested again automatically when FedEx rejects it. Quotes are cached for 1 hour. A failed rate request is remembered for 10 minutes and a failed token request for 5 minutes, so an outage does not slow down every checkout update. The API timeout is 15 seconds. If FedEx does not answer, the customer sees no error: the fixed price is used, or the method is hidden.

The method works on the classic checkout and on the block checkout. It is compatible with WooCommerce High-Performance Order Storage (HPOS).

The plugin calculates rates only. It does not create FedEx shipments, print labels, book pickups, track parcels or let customers choose a FedEx location. It shows one option (the cheapest service), not several, and there is no box packing: the cart is quoted as one package.

License key

The plugin works with a VibeFox license key from vibefox.net. The license block is at the top of WooCommerce > Settings > Shipping > VibeFox FedEx. Paste the key into License key and click Activate. The block shows the status, for example the date the license is active until and your domain. Use Check now to check the status again, Change key to enter another key and Remove key to remove it from this site. The link Manage licenses and domains in your account opens your vibefox.net account.

One key works on one domain. Removing the key from a site does not free its domain slot. Free the slot in your vibefox.net account.

Without an active key, FedEx is not shown to customers at checkout. Logged-in store managers still see it, marked (unlicensed — visible to admins only), so you can set up and test the plugin before you buy a key. A reminder appears on the Plugins page and on WooCommerce pages. Existing orders are not affected.

When a license expires, the plugin keeps working, but updates and support need a renewal. The status is checked again automatically in the background.

Troubleshooting

FedEx does not appear at checkout: check that the license is active, Enable/Disable is on, and the method is added to the zone of the customer's country (or Ignore shipping zones is on and the country is allowed). Check the warnings at the top of the settings page, the weight limits, Minimum subtotal and Excluded shipping classes. Without a live rate the method needs a country price, a * line or a Fallback cost.

Live rates do not appear: turn on Debug log, reload the checkout and open WooCommerce > Status > Logs, source vfd-fedex. Wrong keys, the wrong environment (test keys with Sandbox off, or production keys with it on) and FedEx error codes are logged there.

My store is not in USD: FedEx is asked for the rate in the store currency. If your account returns only its own currency, set FedEx account currency and Exchange rate. Without an exchange rate such rates are ignored and the fixed price is used, so a USD amount is never shown as euros.

Does "per item" multiply the FedEx rate? No. Per item applies to fixed prices only.

Rates look outdated after a change: after changing keys the cache is cleared automatically. You can also click Clear cached FedEx token and rates.

Only some services should be offered: developers can restrict services with the vfd_fdx_allowed_services filter.

The license block shows an error: follow the message in the block. For example, if the key is already used on another domain, free a slot in your vibefox.net account and click Check now. If the site address changed, click Check now to activate the key for the new domain. If the license server cannot be reached, the plugin keeps working on the last known status.

Uninstall

Deactivating the plugin keeps all settings and only clears cached tokens and rates. To remove it, deactivate and delete it on the Plugins page. The license key and license status of this plugin, cached tokens and rates and old log files are always removed. Settings and zone methods are removed only if Remove data on uninstall was on. Otherwise they stay for a later re-install. Existing orders keep their shipping lines.

FedEx is a trademark of its respective owner. This plugin is not affiliated with or endorsed by FedEx.