The FedEx Shipping add-on provides live shipping rates provided by FedEx. The shipping rates are given for most (if not all) of the shipping methods that FedEx offers and are automatically added to the transaction of a customer. You must purchase the add-on from the Shopp Store and upload it to your Shopp install.
- Uncompress the add-on files
- Upload the folder (directory) and all its contents to your Shopp add-ons folder (directory) under:
Additionally, the FedEx shipping module requires the SoapClient to be enabled in PHP 5. Without it, the FedEx shipping module will not work at all and will generate an error in Shopp’s error log. If your web hosting environment does not support the PHP 5 SOAP extension, you may be unable to use the FedEx Shipping Module. We are currently investigating alternative methods to communicate using the SOAP protocol for hosting providers that can not, or will not enable the SoapClient library in PHP 5.
FedEx Account Setup
In order to get the FedEx add-on working, you will need to have a FedEx Account and request access to the production servers from the FedEx Developer Resource Center. Note: The FedEx site is rather difficult to navigate. Be patient.
- Visit the FedEx website and navigate to the New Customer Center
- Select Apply Now
- If you currently have a FedEx.com login (different from a shipping account) you will need to login first and select Open a new FedEx Account. Otherwise select Sign Up Now! and fill out the registration form.
- When setting up the account, you will need to provide a credit/debit card for billing purposes.
- After your account has been setup, use the navigation at the top of the page and select Business Solutions → Access Developer Resource Center
- Select the Developer Solutions link in the first “box”
- Select FedEx Web Services → FedEx Web Services for Shipping
- Under the Announcements find the third “box” and select Move to Production
- Scroll to the bottom of the page and select the Obtain Production Key – Access production environment graphic at the very bottom
- During the application for obtaining production access answer as follows:
- Do you intend to resell your software? No
- Please check the box next to each type of FedEx web services you intend to use in your integration solution: Select FedEx Web Services for Shipping (includes Rate, Track, etc.)
- Please indicate whether you are developing your FedEx integration solution as a Corporate Developer or as a Consultant. Select Consultant
- Click Continue
- Click Accept to the License Agreement
- Fill out the entire Contact Info form and Continue. You will need your FedEx shipping Account Number which you can find by logging in to FedEx.com and navigating to Your Profile.
- Change any relevant information on the Developer Info and click Continue.
- Please save your Authentication Key and Meter Number, you will need them for your Shopp – FedEx settings.
Shopp FedEx Settings
- Login to your WordPress Admin and navigate to Shopp → Settings → Shipping
- For the appropriate shipping method, select FedEx Rates
- Select all of the shipping services you wish to offer your customers and apply to your products
- Enter your Account Number – Your FedEx shipping account number available by logging in to FedEx.com and selecting Your Profile
- Enter your Meter Number – Obtained from applying for production access
- Enter your FedEx web services key – The authentication key obtained from applying for production access
- Enter your FedEx web services password – The production password is emailed to the email address specified under Developer Info when applying for production access
- Enter Your postal code – The postal code you will be shipping from
SoapClient for PHP Requirement
The FedEx rate service uses a technology known as SOAP (Simple Object Access Protocol) that provides remote query access to FedEx shipping rate calculators. In most PHP 5 setups, this module is available and enabled. However, some hosts may not have it enabled (as part of the PHP configuration) or may have it explicitly disabled.
We are currently investigating alternatives to the built-in SoapClient support in PHP 5 for those hosting providers that can not enable this support.
PHP does not support bzip2 decompression of the embedded WSDL file.
If you see this error while setting up FedEx Rates, it means that your PHP installation does not have bzip2 support to decompress the WSDL file that is embedded in the FedEx module.
In order for the FedEx SOAP interface to load properly, FedEx needs access to the web services description file (WSDL) file. The WSDL file is compressed and embedded in the FedEx module. It is made available through a specially formatted web address on your website.
For FedEx to be able to deliver the embedded WSDL through this specialized address, it must be decompressed using the bzdecompress() function of PHP. PHP must have Bzip2 support in order for the bzdecompress() function to exist.
To resolve the situation you can:
- Enable Bzip2 support by recompiling PHP on the server with the –with-bz2[=DIR] flag. You must have direct access to the server binaries to do this.
- Ask your web hosting provider to add Bzip2 support to PHP.
- Configure Shopp to use an uploaded WSDL file (see below).
Configure Shopp to use an uploaded WSDL file
- Download a copy of the FedExRatesWSDL.zip.
- Upload the WSDL file to your WordPress website.
- Edit your WordPress wp-config.php file
- Add the following configuration macro to tell Shopp/FedExRates where to find the WSDL file your filename and path may vary):
Note: Replace /full/path/to/ with your actual path and # in RateService_v#.wsdl with the current version number from the download.