Skip to Content
Account
Enter the email address on your account.
Forgot Your Username?
Enter your password.
Forgot Your Password?

Or continue with

J2Commerce 6

UPS Shipping

10 Min Read
On This Page

The UPS Shipping plugin fetches live carrier rates from UPS and shows them to customers at checkout. Rates are calculated in real time based on the customer's destination, your origin address, and the weight and size of the items in the cart.

UPS requires OAuth 2.0 credentials. The plugin handles token caching automatically — you just need a Client ID and Client Secret from the UPS Developer portal.

Prerequisites

  • J2Commerce is installed and configured
  • At least one shipping zone set up in J2Commerce -> Shipping -> Shipping Methods
  • Products must have weight values set (dimensions are optional but recommended)
  • An active UPS account with API access

Requirements

  • with PHP 8.3.0 +
  • Joomla! 6.x
  • J2Commerce 6.x

Purchase and Download

You can install this USP shipping plugin using the Joomla installer. The following steps help you with a successful installation.

‌Step 1: Go to our J2Commerce website -> Extensions -> Shipping Plugin

Step 2: Locate the UPS Plugin -> click View Details -> Add to cart -> Checkout.

Step 3: Go to your My Downloads under your profile button at the top right corner and search for the app. Click Available Versions -> View Files -> Download Now

Install the Plugin

You can install this UPS shipping plugin using Joomla installer. The following steps help you with a successful installation.

In the Joomla admin, go to System -> Install -> Extensions

Upload the plugin ZIP file or use the Install from URL option.

Install extensions

Enable the Plugin

Once you have installed the extension, you will need to enable it. There are two ways you can access the extension.

Option A: Go to the J2Commerce icon at the top right corner -> Setup -> Shipping Methods

Option B: Go to Components on the left sidebar -> J2Commerce -> Dashboard -> Setup -> Shipping Methods

shipping method

Look for UPS Shipping, click the X, and it will turn into a green checkmark. It is now enabled and ready for setup.

Shipping Methods list with the UPS Shipping plugin's enabled status check mark highlighted, below Free Shipping and Standard Shipping

Info

NOTE: Before you can start configuring the plugin, you will need your API Credentials from UPS.

Getting Your UPS API Credentials

UPS uses OAuth 2.0 for all API access. You need a Client ID and Client Secret from the UPS Developer portal. Follow these steps to get them.

Step 1: Create a UPS Developer Account

  1. Go to developer.ups.com and click Sign Up (or Log In if you already have a UPS account).
  2. Complete registration using your business email address.
  3. Once logged in, you land on the My Apps dashboard.

Add apps

Step 2: Create a New App

Click Add Apps (or Create App) on the My Apps page.

Enter an App Name — for example, J2Commerce Shipping.

Under I want to integrate UPS technology into my business, select Get Rates and Service Commitments (or similar — the wording may vary, but you need access to the Rating API).

Accept the UPS Developer Kit Agreement and click Save.

UPS developer portal create-app form: My Apps link, the I want to integrate UPS technology into my business option, and the account selector highlighted (account hidden)

Complete the contact info

Then select the Rating, Tracking, and Time In Transit API's (I believe the Authorization(OAuth) is automatically added when you save)

UPS developer portal app page: Client ID and Secret hidden, with Authorization (OAuth), Rating, Time In Transit and Tracking APIs highlighted, all Approved

(Right now, we aren't using the Tracking API, but we do plan on incorporating that in later versions, so better to add it now so you don't need to worry about adding it later...)

API's

After saving, you should be able to see the Client ID and client Secret under the App Info/Credentials page

Step 3: Copy Your Credentials

After saving, UPS displays your app credentials:

  • Client ID — a long alphanumeric string
  • Client Secret — click the eye icon to reveal it

Copy both values. You will paste them into the plugin settings in the next section.

Info

NOTE: Keep your Client Secret safe. Treat it like a password — do not share it or commit it to version control.

Your UPS shipper number (account number) appears on your UPS invoices and in your UPS.com profile. It is only required if you want negotiated (discounted) rates. You can find it by:

  1. Logging in to ups.com.
  2. Go to your Account Summary or Payment page.
  3. Your account number appears in the My Accounts section — it is a six-character alphanumeric code.

Creating a UPS Shipping Method

Go to the J2Commerce icon at the top right corner -> Setup -> Shipping Methods

Select UPS Shipping from the shipping method list

Click on the UPS Shipping title to start the configuration

Joomla admin navigation to Shipping Methods: Components, then the J2Commerce menu button with Setup and Shipping Methods highlighted, above a list including UPS Shipping

Configuration Reference

Tip

Tip: Click on the Toggle Inline Help button on any app/plugin you install and it will show a description below each section. See image below

Plugins: UPS Shipping with Toggle Inline Help and the Checkout Image help text highlighted; logo-UPS.webp selected, Status Enabled, Access Public

The settings are grouped into logical sections below.

API Credentials

Plugins: UPS Shipping settings: Checkout Image logo-UPS.webp, Status Enabled, Access Public, and Production Client ID, Client Secret and Shipper Number fields (values hidden)

Production Client ID: Enter the Client Key provided by the UPS Developer Portal (https://developer.ups.com/).

Production Client Secret: Enter the Client Secret provided by the UPS Developer Portal (https://developer.ups.com/).

‌Shipper Number: Your UPS shipper number (account number). Required for negotiated rates.

Services

UPS plugin service settings: Rating Request Type Shop (all available services) and Enabled Services UPS Next Day Air, 2nd Day Air, Ground and Standard

Rating Request Type:

  • Shop asks UPS for rates on all available services at once.

  • Rate requests a rate for one specific service only. Use Shop for most stores.

Enabled Services: Select which UPS services to show at checkout. Only services that UPS returns as available for the shipment will appear.

Select multiple services using the dropdown — customers will see all available services at checkout, each with its own rate.

Package Settings

UPS plugin package settings: UPS Packaging Box Small Express Box, Packing Mode Per Item, Pound, Inch, Send Package Dimensions Yes, defaults weight 1 and 10 by 10 by 10

UPS Packaging Box: The UPS packaging type code sent in rate requests. Use Customer Supplied Package for your own boxes or mailers.

Packing Mode:

  • Per Item sends one package to UPS for each item in the cart.

  • Box Packing uses a 3D bin-packing algorithm to fit items into configured boxes before requesting rates. Box Packing gives more accurate rates for multi-item orders.

Weight Unit: Weight unit your products use (lb or kg). Must match the unit set on your products

Dimension Unit: Dimension unit your products use (in or cm). Must match the unit set on your products.

Send Package Dimensions: Include length, width, and height in rate requests. Disable only if none of your products have dimensions set

Default Weight: Fallback weight when a product has no weight configured

Default Length: Fallback length when a product has no length configured

Default Width: Fallback width when a product has no width configured

Default Height: Fallback height when a product has no height configured

Origin Address

UPS plugin origin address settings: Shipping Postal Code, Shipping Country United States, Shipping State Tennessee, Shipping City, and Shipping Origin Address Type Yes

These fields tell UPS where your shipments originate. The postal code is required — city and state improve accuracy.

Shipping Postal Code: ZIP or postal code of your warehouse or dispatch location

Shipping Country: Country where your shipments originate

Shipping State: State or province of your shipping location. Populated automatically when you select a country

Shipping City: City name of your shipping location

Shipping Origin Address Type: Set to Yes if UPS delivers to a residential address. UPS applies a residential surcharge. Set to No for commercial addresses

Rate Options

UPS plugin rate options: Negotiated Rate No, Pickup Type Daily Pickup, Delivery Confirmation (No Signature), Handling Cost 0 Flat Amount, Show Delivery Date Yes, Debug No

Enable Negotiated Rate: Request your account's negotiated (discounted) rates. Requires a valid Shipper Number and negotiated rates enabled on your UPS account.

Pickup Type: How UPS collects packages from you. Most stores use Daily Pickup

Delivery Confirmation Option: Require proof of delivery. Signature options add a surcharge per package.

Handling Cost: A fixed amount or percentage added to every UPS rate. Set to 0 for no handling cost.

Handling Cost Type: Whether the Handling Cost is a Flat Amount or a Percentage of the shipping rate.

Tax Profile: Apply a tax profile to shipping costs. Select None for no shipping tax.

Geozone Restriction: Restrict this shipping method to customers in a specific geozone. Leave as None to make it available to all customers.

Show Delivery Date: Display estimated business days in transit next to each UPS option at checkout.

Debug Mode: Write API requests and responses to administrator/logs/shipping_ups.php. Disable in production.

UPS Services Reference

The following UPS service codes are supported. Select any combination in the Enabled Services field.

Service CodeService NameTypical Use
01UPS Next Day AirOvernight domestic delivery
02UPS 2nd Day AirTwo-day domestic delivery
03UPS GroundStandard domestic ground
07UPS Worldwide ExpressInternational express
08UPS Worldwide ExpeditedInternational economy express
11UPS StandardStandard cross-border (US/CA/MX)
12UPS 3 Day SelectThree-day domestic delivery
13UPS Next Day Air SaverOvernight, end-of-day delivery
14UPS Next Day Air EarlyOvernight, early morning delivery
54UPS Worldwide Express PlusInternational, very early morning
59UPS 2nd Day Air A.M.Two-day, morning delivery
65UPS Worldwide SaverInternational, end-of-day express
72UPS Worldwide Economy DDPInternational economy, duties paid
96UPS Worldwide Express FreightInternational freight, palletized

Tip

Tip: Not all services are available for every origin-destination pair. UPS returns only the eligible services for each shipment, so customers will only ever see rates for services that UPS can actually provide.

Tips

  • Start in sandbox mode. Enable Debug Mode and place a test order to confirm rates appear correctly before switching to production credentials.
  • Set weight on all products. The plugin uses your Default Weight as a fallback, but this gives less accurate rates. Set real weight values on every product.
  • Use Box Packing for multi-item stores. Per Item mode can over-estimate shipping costs when customers buy several small items that would fit in one box.
  • Negotiated rates require your Shipper Number. If you have a UPS account with volume discounts, fill in the Shipper Number field and enable Enable Negotiated Rate to pass your discounts to customers.
  • Geozone restrictions. If you only ship domestically, create a domestic geozone in J2Commerce -> Shipping -> Geo Zones and select it in the Geozone Restriction field. This prevents the plugin from trying to fetch rates for unsupported destinations.
  • The checkout image. A UPS logo ships with the plugin and is set as the default. You can replace it with a custom image using the Checkout Image field.

Troubleshooting

No UPS rates appear at checkout

Cause: There are several common reasons rates do not show.

Solution: Work through this checklist:

  1. Enable Debug Mode and place a test order. Check administrator/logs/shipping_ups.php for error messages.
  2. Confirm Sandbox Mode is set to match the credentials you entered. Sandbox credentials do not work against the production endpoint.
  3. Verify your Client ID and Client Secret are correct — copy and paste them directly from the UPS Developer portal rather than typing them.
  4. Make sure at least one Enabled Service is selected. If the field is empty, no rates will be shown even if UPS returns them.
  5. Check that your Origin Postal Code and Origin Country are filled in — both are required.
  6. Confirm the products in the test cart have a weight set. UPS will not return rates for zero-weight packages.

UPS returns an authentication error (401)

Cause: The Client ID or Client Secret is wrong, or the app on the UPS Developer portal does not have access to the Rating API.

Solution:

  1. Log in to developer.ups.com and open your app.
  2. Confirm the app includes the Rating API product. If it does not, edit the app and add it.
  3. Re-copy the Client ID and Client Secret — regenerating the secret invalidates the old one.
  4. Paste the fresh credentials into the plugin and save.

Negotiated rates are not showing

Cause: Negotiated rates require a Shipper Number and must be activated on your UPS account.

Solution:

  1. Make sure your Shipper Number (UPS account number) is entered in the plugin.
  2. Confirm Enable Negotiated Rate is set to Yes.
  3. Contact UPS to verify that your account has negotiated rates enabled — not all accounts have this feature.

Box Packing produces unexpected package counts

Cause: Some items may be larger than all configured boxes and fall back to per-item packing.

Solution:

  1. Enable Debug Mode — the log file reports when items cannot be packed and which method was used.
  2. Add larger custom box sizes in the Custom Box Sizes field to accommodate oversized items.
  3. If certain items should never be combined with others, consider setting them as individual products with their own shipping class.

Related Products

Related Products

Still stuck? Our team can help.

Back to Top