Last updated 27 February 2011. Created on 7 June 2006.
Edited by aspilicious, nedjo. Log in to edit this page.

In version 4.7, the contributed Shipcalc module has been rewritten to support multiple shipping services. Initial support is for UPS and United States Postal Service (USPS).

Follow these steps to enable real-time shipping quotes for UPS. (The steps are directly parellel for USPS.)


You will need the following:

  • shipping.module
  • shipcalc.module
  • a shippable product type module, e.g., tangible
  • the various other ecommerce dependencies, e.g., product.module,


  1. Enable shipping, shipcalc, and a shippable product type, e.g., tangible.
  2. Add a fulfillment center
    • Navigate to administer >> store >> settings >> shipping
    • Create and submit a fulfillment centre. This is the address from which items will be shipped, and is used in shipcalc as the 'origination' or from address.
  3. Configure shipcalc

    Before setup, you need to apply for and receive a UPS access key.

    Once you have your key:

    • Navigate to administer >> store >> settings >> shipcalc
    • Click on the 'configure' link for 'ups'
    • Fill in and submit the UPS settings form
    • Test your setup.
      • For USPS: When the form reloads, expand the 'testing' fieldset, ensure the testing URL is correct, and click the 'testing' button. You should get message returned with the shipping options and prices of a sample item. If no such messages are returned, or if
      • For UPS, testing requires live data, so you must first complete both of the following steps: configure your product type, and create at least one sample product. Then return to the UPS configuration page and try testing as per USPS.
  4. Configure your product type

    We set a set of available shipping methods for each shippable product type.

    • Navigate to administer >> settings >> content types >> product
    • From the 'configure product types' fieldset (likely at the top), select a shippable product type, e.g., tangible
    • For the particular product type, select which shipping methods you wish to enable. Note that, although USPS options appear here, they are only functional if you are using the git version.
  5. Set shipping methods and associated data for each product

    For each product, we select from the shipping methods available
    for its product type.

    • Navigate to e.g. create content >> product >> shippable product
    • Complete required fields
    • Under the 'shipping methods' fieldset, select which methods to make available for this product. The options are those registered to the shipping type.
    • Also under 'shipping methods', enter required product attribute information. For UPS, this is the product weight.

Now, when you add an item with shipping to your cart, you should get a checkout screen with dynamically-fetched UPS shipping price information.

Looking for support? Visit the forums, or join #drupal-support in IRC.


jpsalter’s picture

The USPS will send you a "Web Tools User ID". You will not receive a password - and you do not need one.
Currently, the CVS version of shipcalc.module has a testing button to test your User ID.

If your test works (and it should) you are not finished with the setup of shipcalc.module.

Before you can get shipping prices for your products... you will need to:
1) convert your USPS account to a "production account" and
2) update the URL for the production server

The easiest way to "convert" your account is to call the USPS (the number is provided with your email from them). It took me two minutes and I was up and running.

floretan’s picture

I'm trying to have a shipping method that would charge the same amount no matter what the customer buys, let's say $5. Do I need to create my own shipping module or is there a simple way to do that?

Edit: I found a solution here

Kevin Hankens’s picture

I have just configured my shipcalc module, signed up for a USPS API account. When I click the 'Test usps configuration' button in Admin >> Store >> Settings >> Shipcalc >> USPS, it simply does nothing.

I have enabled USPS shipping for the product content type, and enabled it for a couple of individual products. Is there anything that I'm missing? I've tried to follow these instructions to a 'T' but I still can't seem to get a response from the testing server.

I hope that someone can help :)



heiNey’s picture

Hey Kevin,

Did you ever find a solution to your problem? I'm experiencing the same issue, with both UPS and USPS. I click on the 'Test settings' button and nothing happens.

But if i try checking out, I get these errors:

Home » Shopping cart
Choose shipping method
The requested service is unavailable between the selected locations. (Hard error 111210)
ups configuration error. Please notify the site administrator.

If someone can help me, it would be appreciated!

mimetic2’s picture

Is there any solutions? I have followed the instructions perfectly, but still, the shipping apis arent working...anyone know why?

lewislp’s picture

Similar experience here. I didn't have the address module enabled, which is why UPS was complaining about location. Enabling the address module and placing it before shipping in the screen order fixed it.

biohabit’s picture

I'm rather shocked this isn't included in the documentation but you have to call USPS and get your account upgraded to be a production account. The entire call took maybe 7 minute.

Ron Collins’s picture

you will get an error if you test shipcalc (as directed in step 3) before configuring your product type (as in step 4).