You are here

README.txt in FedEx Shipping 6.2

Same filename and directory in other branches
  1. 5 README.txt
  2. 6 README.txt
  3. 7.2 README.txt
  4. 7 README.txt
Non-displayable characters.

File

README.txt
View source
  1. About
  2. =====
  3. This module allows Ubercart to obtain shipping quotes from FedEx. It
  4. provides quotes of FedEx shipping costs to your customers during checkout,
  5. and lets your customers select FedEx services from among the shipping choices.
  6. Advanced, optional functions implemented by this module include verification
  7. of a customer's shipping address by FedEx and generation of FedEx barcoded
  8. shipping labels.
  9. Administrators may specify which FedEx services to quote, and may choose
  10. various options regarding packaging, pickup/dropoff, insurance coverage,
  11. etc. The module will contact the FedEx server and submit, retrieve, then
  12. display quotes on the checkout page when the customer clicks on "Calculate
  13. Shipping Rates" or when a shipping address is entered.
  14. A function that lets you track packages and display the tracking information
  15. is included in the source code - this function is not interfaced into the
  16. store menus, it is provided merely for reference. A completely integrated
  17. tracking solution for FedEx, UPS, and USPS may be found at
  18. http://drupal.org/project/uc_tracking.
  19. Quick Start
  20. ===========
  21. Check requirements: PHP 5 built with --enable-soap and --with-openssl
  22. Obtain developer's credentials from FedEx. See "Before You Begin" below
  23. for more details how.
  24. Disable any previous version of uc_fedex. Copy this tarball into your
  25. sites/all/modules directory and unzip/untar it.
  26. In your web browser, navigate to admin/build/modules and enable the FedEx
  27. module. Run update.php. Go to admin/store/settings/quotes/methods/fedex
  28. and enter the required information. Finally, enable FedEx quotes at
  29. admin/store/settings/quotes/methods
  30. If this doesn't work, read the rest of this document (which you really
  31. should have done first, anyway!).
  32. Features
  33. ========
  34. The quotes returned from the FedEx server are based on the store ZIP code
  35. for the origination address and customer ZIP code (or country and zone, in
  36. the case of non-US customers) for the destination address. THE STORE ADDRESS
  37. MUST BE SET! Check that now, I'll wait... (See admin/store/settings/quotes/edit
  38. for store address settings). Products are divided into packages in order to
  39. keep the total package weight below the FedEx weight limit (150lbs). Quotes
  40. presented to the customer reflect the total shipping cost for all the packages
  41. in an order.
  42. An admin menu option lets you chose a "Weight Markup" to be applied to every
  43. order - this can adjust the order total weight based on a percentage, a
  44. multiplier, or an addition, and is meant to account for the additional weight
  45. of your packing materials. A rate markup is also provided, to adjust the
  46. shipping rate based on a percentage, a multiplier, or an addition. The rate
  47. markup is used to compensate for handling and other expenses you may incur
  48. that you want to lump in with the shipping cost.
  49. The admin has the option of specifying Residential or Commercial quotes.
  50. Shipping using the FedEx residential service costs a little more. Shipping
  51. to a residential address using the *commercial* service costs more plus
  52. there's an added penalty. So if you ship mainly to residences (whether
  53. there is a business at that residence or not), use the Residential quotes
  54. (default). If your customers are mostly or entirely commercial addresses,
  55. you may want to use the commercial quotes to present a slightly lower rate to
  56. your customer. Note that this selection does not actually affect the amount
  57. you pay to FedEx for the package, but it DOES affect how much you collect
  58. from your customer for shipping charges. Optionally, the FedEx Address
  59. Validation service may be used to automatically determine the Residential/
  60. Commercial status of the customer's shipping address. Address Validation
  61. is classified by FedEx as an "advanced" service, which requires additional
  62. permission from FedEx, over and above the normal permissions granted when
  63. you obtain web service credentials.
  64. Tracking information may be obtained using the uc_fedex_tracking_request()
  65. function. An example of how to use this function is in the code comments.
  66. A completely integrated tracking solution for FedEx, UPS, and USPS is
  67. provided by the uc_tracking module, which may be found at
  68. http://drupal.org/project/uc_tracking.
  69. Requirements
  70. ============
  71. PHP 5 built with --enable-soap and --with-openssl is REQUIRED for this
  72. module to work.
  73. The FedEx Web Services API uses SOAP over HTTPS for communication with the
  74. FedEx Server. SOAP is a standard extension to PHP 5, but is only poorly
  75. supported via a contributed library for PHP 4. Because of this, and because
  76. Drupal is already planning on requiring PHP 5.2 (in version 7.0), and because
  77. PHP 5 is widely available and several years old already, I have decided that
  78. it doesn't make sense to try to force things to work with PHP 4. So if you
  79. need to use this module, you'll have to be running PHP 5.
  80. Before You Begin
  81. ================
  82. Rate quotes won't work until you obtain FedEx developer credentials. These
  83. credentials are easy (and free!) to obtain - you simply have to register on
  84. the FedEx web site and you will have them in minutes. FedEx credentials
  85. consist of a Key, Password, Account Number, and Meter Number, and need to be
  86. entered in the admin form at admin/store/settings/quotes/methods/fedex once
  87. you have installed the module. There are two types of credentials - Test and
  88. Production. You will need to get your Test credentials first, before you
  89. will be issued Production credentials.
  90. Test credentials allow you to make transactions on the FedEx Test Server.
  91. I strongly suggest you do all your development on the Test server and move to
  92. the Production server only when ready to go live. While this module does NOT
  93. make any transactions that will incur charges to your FedEx account, testing
  94. can generate a lot of bogus and perhaps invalid transactions that are best
  95. kept off the production machine. Remember, YOU are responsible for your
  96. FedEx developer credentials - if this module causes problems on the production
  97. server YOU will be the one contacted. I think we would both prefer that the
  98. bugs were worked out on the Test Server!
  99. Your Test credential Account Number is *not* the same as your normal FedEx
  100. Shipper Account Number; because of this, any discount rates associated with
  101. your Shipper Account will not be reflected in the rate quotes returned by the
  102. Test server. (The Production server, however, uses your normal Account Number
  103. and *will* provide both list rates and discount rates.)
  104. To obtain your FedEx Test Credentials, first register at:
  105. http://www.fedex.com/us/developer/ Then navigate to:
  106. https://www.fedex.com/us/developer/wss/develop.html and
  107. fill in the form. Your credentials should be presented to you immediately
  108. followed by the same information split into two separate e-mails. Also
  109. included will be instructions for obtaining your Production credentials,
  110. when you need them.
  111. Address Validation and Label Printing (Ship Service) are both considered
  112. advanced services that require additional permissions. If you want to
  113. use one or both of these services you will need to call FedEx Technical
  114. Support after obtaining your credentials to have them enable permissions
  115. for these services. The phone number may be found on the FedEx site at
  116. https://www.fedex.com/wpor/web/jsp/drclinks.jsp?links=techresources/support.html
  117. These permissions are granted separately for the Test and Production servers.
  118. Installation
  119. ============
  120. Before you use this module, disable any previous version of uc_fedex,
  121. then remove that code from your machine.
  122. Copy the tar.gz archive for this module into your sites/all/modules directory
  123. and unzip/untar it.
  124. In your web browser, navigate to admin/build/modules and enable the FedEx
  125. module. Run update.php. Go to admin/store/settings/quotes/methods/fedex
  126. and enter the required information. Finally, enable FedEx quotes
  127. admin/store/settings/quotes/methods
  128. You should now be receiving FedEx quotes on your checkout page. If you still
  129. have problems see the "Troubleshooting" section below.
  130. Limitations
  131. ===========
  132. All packages are hardwired to be 1"x1"x1" - this is the size FedEx uses
  133. on their own web page to deliver a "quick quote". A more detailed quote
  134. requires actual package dimensions. FedEx defines the "dimensional weight"
  135. (in pounds) of a package as length x width x height in inches, divided by 194
  136. for shipments within US (for international shipments divide by 166). For
  137. the hardwired box size of 1"x1"x1", the "dimensional weight" is less than
  138. 1 ounce. Because FedEx will charge based on the greater of the actual weight
  139. and the dimensional weight, this hardwired box size ensures that the quote
  140. presented to the customer ignores the dimensional weight and just returns
  141. the rate based on your package weight. For large but light objects, where
  142. the dimensional weight should be used instead, you'll have to enter the
  143. product weight a bit higher than actual - i.e. enter the dimensional weight
  144. on the product page rather than the actual weight in order to receive
  145. accurate quotes.
  146. Drop-shipping will be included eventually, but for now everything is assumed
  147. to ship from the store address.
  148. This module works for sending packages from US to other countries. Quote
  149. type MUST be set to ACCOUNT for international quotes to work.
  150. I still have to decide how to handle the shipping date for the quote - it's
  151. not as simple as entering the current day because, say, your customer chooses
  152. "Next Day" delivery, but it's already after the shipping cutoff time - then
  153. the ship date is NOT "today". You don't want to be obligated to ship under
  154. those conditions - I plan to add an admin config for the module that lets
  155. you specify cutoff times and closed days for your store.
  156. Address Validation
  157. ==================
  158. The FedEx Address Validation Web Service can be used to determine whether a
  159. U.S., Puerto Rico or Canada delivery addresses is Commercial or Residential.
  160. FedEx does not support validation for any other location. Address Validation
  161. is a FedEx "advanced" service, which requires you to call FedEx and have your
  162. developer access upgraded to allow you to use this service. You will have
  163. to do this even for both the Test server and the Development server separately.
  164. If the checkbox "Let FedEx determine if an address is Commercial or Residential"
  165. is selected at admins/store/settings/quotes/methods/fedex/edit, this module
  166. will use the Address Validation Web Service to make the determination, and
  167. default to your selection of Commercial or Residential if the Web Service
  168. fails or times out. Additionally, JavaScript validation of the address
  169. entered by the customer on the checkout page can be performed if the
  170. "Enable JavaScript validation of customer destination address at checkout"
  171. checkbox is selected.
  172. Label Printing
  173. ==============
  174. This module currently supports created barcoded shipping labels only
  175. for FedEx domestic (within the USA) shipping.
  176. The Ship Service is used to generate FedEx barcoded labels that can be
  177. used for shipping. Label printing is a FedEx "advanced" service, which
  178. requires you to call FedEx and have your developer access upgraded to allow
  179. you to use this API. Additionally, you will have to generate test labels
  180. and physically mail these labels to FedEx for certification before you will
  181. be allowed to access the Production server to print real labels. FedEx
  182. needs to ensure that your software (this module) AND your hardware (printer)
  183. work together to generate labels that can be properly scanned by FedEx.
  184. FedEx supports LASER printer labels and THERMAL printer labels. LABELS
  185. PRINTED ON INKJET PRINTERS ARE NOT SUPPORTED AND WILL NOT BE APPROVED.
  186. Color laser printers may be used, but in "black and white" mode only.
  187. In order to generate labels, Ubercart must be configured to require
  188. customers to enter their phone number at checkout. You may set this
  189. field as required at admin/store/settings/checkout/edit/fields
  190. Labels that are generated in PDF format and printed with a laser printer
  191. must not be scaled or resized. You must ensure that you print the document
  192. at "actual size" from within your PDF viewer application instead of
  193. "scaled to fit page".
  194. When you generate labels in PNG image format, the image is rasterized at
  195. 200 DPI, which is the minimum resolution required by FedEx. When you
  196. view the image on your screen, most applications degrade the DPI to your
  197. screen resolution. Typically, this is 96 DPI, which is far less than the
  198. required minimum of 200. To produce the label and barcodes in the required
  199. DPI, you must scale (or resize) the image before printing. How you scale
  200. the image depends on the application you are using to view and print the label.
  201. In the usual case of viewing/printing from a web brower, you may scale
  202. the printed image from the "Page Setup..." menu.
  203. Scaling Instructions for PNG Labels:
  204. * If your screen resolution is 96 DPI:
  205. Scale Factor = 96 ÷ 200 = 48%
  206. * If your screen resolution is 72 DPI:
  207. Scale Factor = 72 ÷ 200 = 36%
  208. * If your screen resolution is not 96 or 72 DPI
  209. Scale Factor = (screen resolution in DPI) ÷ 200
  210. Troubleshooting
  211. ===============
  212. Does your site have PHP 5 built with --enable-soap? Execute
  213. to see the details of your PHP installation. If SOAP has been enabled, you
  214. should see a section of this report which lists the SOAP configuration
  215. parameters.
  216. Does your site have PHP 5 built with --with-openssl? Go to
  217. admin/reports/status/php or execute to see the details
  218. of your PHP installation. If PHP has been built with OpenSSL, then you
  219. should see SSL listed under "Registered Stream Socket Transports".
  220. You did set your store address at both admin/store/settings/store/edit and
  221. admin/store/settings/quotes/edit, didn't you?
  222. Check to see that you have entered the correct developer credentials - Test
  223. credentials for the Test server, Production credentials for the Production
  224. server. If you're trying to use Address Validation or Label Printing, make
  225. sure you've taken the additional step of contacting FedEx to upgrade your
  226. permissions. If you receive an "Authentication Failed" message, you have
  227. the wrong credentials or you don't have permission to use the service on
  228. that server. This is true even if you're "positive" you entered everything
  229. correctly.
  230. Check the box "Display debug information to administrators" on the form at
  231. admin/store/settings/quotes/edit . This will print debug information on the
  232. checkout page, including the full request sent to the FedEx server and the
  233. complete response. Examine these lines carefully for any hints of what is
  234. going wrong.
  235. Read the comments in the code - there are some debugging print statements left
  236. in that can be uncommented if you have problems, and there is a menu option in
  237. the shipping quotes admin pane which lets you enable some other debug info.